bundlewrap/bundles/snapserver/metadata.py

58 lines
1.3 KiB
Python

from bundlewrap.metadata import atomic
defaults = {
'apt': {
'packages': {
'snapserver': {},
},
},
'snapserver': {
'sources': set(),
},
'sysctl': {
'options': {
'fs.protected_fifos': '0',
},
},
}
@metadata_reactor.provides(
'nginx/vhosts/snapserver',
)
def nginx(metadata):
if not node.has_bundle('nginx'):
raise DoNotRunAgain
return {
'nginx': {
'vhosts': {
'snapserver': {
'domain': metadata.get('snapserver/domain'),
'locations': {
'/': {
'target': f'http://127.0.0.1:1780',
'websockets': True,
},
},
'website_check_path': '/',
'website_check_string': 'Snapweb',
},
},
},
}
@metadata_reactor.provides(
'firewall/port_rules',
'firewall/port_rules',
)
def firewall(metadata):
return {
'firewall': {
'port_rules': {
'1704/tcp': atomic(metadata.get('snapserver/restrict-to', set())),
'1705/tcp': atomic(metadata.get('snapserver/restrict-to', set())),
},
},
}