users = { 'navidrome': { 'home': '/opt/navidrome', }, } directories = { '/opt/navidrome': {}, '/var/opt/navidrome': { 'owner': 'navidrome', }, } svc_systemd = { 'navidrome': { 'needs': { 'file:/etc/systemd/system/navidrome.service', 'file:/opt/navidrome/config.toml', 'action:navidrome_install', }, }, } actions['navidrome_install'] = { 'command': ' && '.join([ 'tar -C /opt/navidrome -xf /opt/navidrome/navidrome.tar.gz', ]), 'after': { 'pkg_apt:', }, 'triggered': True, 'triggers': { 'svc_systemd:navidrome:restart', }, } files = { '/opt/navidrome/config.toml': { 'content': repo.libs.faults.dict_as_toml(node.metadata.get('navidrome/config')), 'triggers': { 'svc_systemd:navidrome:restart', }, }, '/etc/systemd/system/navidrome.service': { 'triggers': { 'action:systemd-reload', 'svc_systemd:navidrome:restart', }, }, '/opt/navidrome/navidrome.tar.gz': { 'content_hash': node.metadata.get('navidrome/sha1', None), 'content_type': 'download', 'mode': '0755', 'source': f'https://github.com/navidrome/navidrome/releases/download/v{node.metadata.get('navidrome/version')}/navidrome_{node.metadata.get('navidrome/version')}_linux_amd64.tar.gz', 'triggers': { 'action:navidrome_install', 'svc_systemd:navidrome:restart', }, }, }