add bundle:snapserver
This commit is contained in:
parent
575474af83
commit
a4d4b0b8e0
4 changed files with 106 additions and 0 deletions
|
@ -31,6 +31,17 @@ defaults = {
|
|||
},
|
||||
}
|
||||
|
||||
if node.has_bundle('snapserver'):
|
||||
defaults['navidrome']['config']['Jukebox'] = {
|
||||
'Enabled': True,
|
||||
}
|
||||
defaults['navidrome']['config']['MPVCmdTemplate'] = 'mpv --no-audio-display --pause %f --input-ipc-server=%s --audio-channels=stereo --audio-samplerate=48000 --audio-format=s16 --ao=pcm --ao-pcm-file=/tmp/snapserver_navidrome_fifo'
|
||||
defaults['snapserver'] = {
|
||||
'sources': {
|
||||
'pipe:///tmp/snapserver_navidrome_fifo?name=Navidrome',
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@metadata_reactor.provides(
|
||||
'zfs/datasets',
|
||||
|
|
24
bundles/snapserver/files/snapserver.conf
Normal file
24
bundles/snapserver/files/snapserver.conf
Normal file
|
@ -0,0 +1,24 @@
|
|||
[server]
|
||||
threads = -1
|
||||
|
||||
[stream]
|
||||
bind_to_address = 0.0.0.0
|
||||
port = 1704
|
||||
|
||||
% for source in sorted(node.metadata.get('snapserver/sources')):
|
||||
source = ${source}
|
||||
% endfor
|
||||
|
||||
[streaming_client]
|
||||
initial_volume = 100
|
||||
|
||||
[http]
|
||||
enabled = true
|
||||
port = 1780
|
||||
hostname = ${node.metadata.get('snapserver/domain')}
|
||||
doc_root = /usr/share/snapweb/
|
||||
|
||||
[tcp]
|
||||
enabled = true
|
||||
bind_to_address = 0.0.0.0
|
||||
port = 1705
|
13
bundles/snapserver/items.py
Normal file
13
bundles/snapserver/items.py
Normal file
|
@ -0,0 +1,13 @@
|
|||
files['/etc/snapserver.conf'] = {
|
||||
'content_type': 'mako',
|
||||
'triggers': {
|
||||
'svc_systemd:snapserver:restart',
|
||||
},
|
||||
}
|
||||
|
||||
svc_systemd['snapserver'] = {
|
||||
'needs': {
|
||||
'file:/etc/snapserver.conf',
|
||||
'pkg_apt:snapserver',
|
||||
},
|
||||
}
|
58
bundles/snapserver/metadata.py
Normal file
58
bundles/snapserver/metadata.py
Normal file
|
@ -0,0 +1,58 @@
|
|||
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())),
|
||||
},
|
||||
},
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue