58 lines
1.3 KiB
Python
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())),
|
|
},
|
|
},
|
|
}
|