129 lines
3.6 KiB
Python
129 lines
3.6 KiB
Python
defaults = {
|
|
'backups': {
|
|
'paths': {
|
|
'/var/opt/hedgedoc',
|
|
},
|
|
},
|
|
'hedgedoc': {
|
|
'config': {
|
|
'production': {
|
|
'loglevel': 'info',
|
|
'hsts': {
|
|
'enable': False,
|
|
},
|
|
'csp': {
|
|
'enable': True,
|
|
'directives': {},
|
|
'upgradeInsecureRequests': 'auto',
|
|
'addDefaults': True,
|
|
'addDisqus': False,
|
|
'addGoogleAnalytics': False
|
|
},
|
|
'cookiePolicy': 'lax',
|
|
'db': {
|
|
'username': 'hedgedoc',
|
|
'password': repo.vault.password_for('{} postgresql hedgedoc'.format(node.name)),
|
|
'database': 'hedgedoc',
|
|
'host': 'localhost',
|
|
'port': '5432',
|
|
'dialect': 'postgres'
|
|
},
|
|
'imageUploadType': 'filesystem',
|
|
'uploadsPath': '/var/opt/hedgedoc',
|
|
'allowAnonymous': False,
|
|
'allowFreeURL': True,
|
|
'requireFreeURLAuthentication': True,
|
|
'sessionSecret': repo.vault.password_for('{} hedgedoc sessionSecret'.format(node.name)),
|
|
'allowEmailRegister': False,
|
|
'protocolUseSSL': True,
|
|
},
|
|
},
|
|
},
|
|
'postgresql': {
|
|
'roles': {
|
|
'hedgedoc': {
|
|
'password': repo.vault.password_for('{} postgresql hedgedoc'.format(node.name)),
|
|
},
|
|
},
|
|
'databases': {
|
|
'hedgedoc': {
|
|
'owner': 'hedgedoc',
|
|
},
|
|
},
|
|
},
|
|
'zfs': {
|
|
'datasets': {
|
|
'tank/hedgedoc': {},
|
|
'tank/hedgedoc/install': {
|
|
'mountpoint': '/opt/hedgedoc',
|
|
'needed_by': {
|
|
'directory:/opt/hedgedoc',
|
|
},
|
|
},
|
|
'tank/hedgedoc/uploads': {
|
|
'mountpoint': '/var/opt/hedgedoc',
|
|
'needed_by': {
|
|
'directory:/var/opt/hedgedoc',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'icinga2_api/hedgedoc/services',
|
|
)
|
|
def icinga_check_for_new_release(metadata):
|
|
return {
|
|
'icinga2_api': {
|
|
'hedgedoc': {
|
|
'services': {
|
|
'HEDGEDOC UPDATE': {
|
|
'command_on_monitored_host': '/usr/local/share/icinga/plugins/check_github_for_new_release hedgedoc/hedgedoc {}'.format(metadata.get('hedgedoc/version')),
|
|
'vars.notification.mail': True,
|
|
'check_interval': '60m',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
}
|
|
|
|
|
|
@metadata_reactor.provides(
|
|
'nginx/vhosts',
|
|
)
|
|
def nginx(metadata):
|
|
if not node.has_bundle('nginx'):
|
|
raise DoNotRunAgain
|
|
|
|
locations = {
|
|
'/': {
|
|
'target': 'http://127.0.0.1:3000',
|
|
'proxy_set_header': {
|
|
'X-Real-IP': '$remote_addr',
|
|
},
|
|
},
|
|
'/socket.io/': {
|
|
'target': 'http://127.0.0.1:3000',
|
|
'websockets': True,
|
|
'proxy_set_header': {
|
|
'X-Real-IP': '$remote_addr',
|
|
},
|
|
},
|
|
}
|
|
|
|
vhosts = {
|
|
'hedgedoc': {
|
|
'domain': metadata.get('hedgedoc/config/production/domain'),
|
|
'locations': locations,
|
|
'website_check_path': '/',
|
|
'website_check_string': 'HedgeDoc',
|
|
},
|
|
}
|
|
|
|
return {
|
|
'nginx': {
|
|
'vhosts': vhosts
|
|
},
|
|
}
|