102 lines
2.7 KiB
Python
102 lines
2.7 KiB
Python
defaults = {
|
|
'apt': {
|
|
'packages': {
|
|
'ffmpeg': {},
|
|
'mpv': {},
|
|
|
|
},
|
|
},
|
|
'backups': {
|
|
'paths': {
|
|
'/var/opt/navidrome',
|
|
},
|
|
},
|
|
'navidrome': {
|
|
'config': {
|
|
'Address': '127.0.0.1',
|
|
'DataFolder': '/var/opt/navidrome',
|
|
'EnableExternalServices': False,
|
|
'EnableInsightsCollector': False,
|
|
'LastFM.Enabled': False,
|
|
'ListenBrainz.Enabled': False,
|
|
'PasswordEncryptionKey': repo.vault.password_for('{} encryption navidrome'.format(node.name)),
|
|
'Port': 4533,
|
|
'Scanner.Schedule': '@every 72h',
|
|
},
|
|
},
|
|
'zfs': {
|
|
'datasets': {
|
|
'tank/navidrome': {},
|
|
'tank/navidrome/install': {
|
|
'mountpoint': '/opt/navidrome',
|
|
'needed_by': {
|
|
'directory:/opt/navidrome',
|
|
},
|
|
},
|
|
'tank/navidrome/home': {
|
|
'mountpoint': '/var/opt/navidrome',
|
|
'needed_by': {
|
|
'directory:/var/opt/navidrome',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'navidrome/config/baseurl',
|
|
)
|
|
def baseurl(metadata):
|
|
return {
|
|
'navidrome': {
|
|
'config': {
|
|
'BaseUrl': f'https://{metadata.get('navidrome/domain')}',
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'nginx/vhosts/navidrome',
|
|
)
|
|
def nginx(metadata):
|
|
if not node.has_bundle('nginx'):
|
|
raise DoNotRunAgain
|
|
|
|
return {
|
|
'nginx': {
|
|
'vhosts': {
|
|
'navidrome': {
|
|
'domain': metadata.get('navidrome/domain'),
|
|
'locations': {
|
|
'/': {
|
|
'target': f'http://127.0.0.1:{metadata.get('navidrome/config/Port')}',
|
|
},
|
|
},
|
|
'website_check_path': '/user/login',
|
|
'website_check_string': 'Sign in',
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'icinga2_api/navidrome/services',
|
|
)
|
|
def icinga_check_for_new_release(metadata):
|
|
version = metadata.get('navidrome/version')
|
|
return {
|
|
'icinga2_api': {
|
|
'pretalx': {
|
|
'services': {
|
|
'NAVIDROME UPDATE': {
|
|
'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_github_for_new_release navidrome/navidrome {}'.format(version),
|
|
'vars.notification.mail': True,
|
|
'check_interval': '60m',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|