bundles/matrix-synapse: add option to automatically provision other nginx vhosts with wellknown data
All checks were successful
kunsi/bundlewrap/pipeline/head This commit looks good

This commit is contained in:
Franzi 2021-07-29 17:33:48 +02:00
parent 2f79f55da5
commit 407d84a8c6
Signed by: kunsi
GPG key ID: 12E3D2136B818350
2 changed files with 33 additions and 47 deletions

View file

@ -67,19 +67,13 @@ defaults = {
@metadata_reactor.provides( @metadata_reactor.provides(
'nginx/vhosts/matrix-synapse', 'nginx/vhosts',
) )
def nginx(metadata): def nginx(metadata):
if not node.has_bundle('nginx'): if not node.has_bundle('nginx'):
raise DoNotRunAgain raise DoNotRunAgain
locations = { wellknown = {
'/_matrix': {
'target': 'http://[::1]:20080',
},
'/_synapse': {
'target': 'http://[::1]:20080',
},
'/.well-known/matrix/client': { '/.well-known/matrix/client': {
'return': dumps({ 'return': dumps({
'm.homeserver': { 'm.homeserver': {
@ -106,6 +100,16 @@ def nginx(metadata):
}, },
} }
locations = {
'/_matrix': {
'target': 'http://[::1]:20080',
},
'/_synapse': {
'target': 'http://[::1]:20080',
},
**wellknown,
}
if node.has_bundle('matrix-media-repo'): if node.has_bundle('matrix-media-repo'):
locations['/_matrix/media'] = { locations['/_matrix/media'] = {
'target': 'http://localhost:20090', 'target': 'http://localhost:20090',
@ -115,15 +119,22 @@ def nginx(metadata):
'x_forwarded_host': metadata.get('matrix-synapse/server_name'), 'x_forwarded_host': metadata.get('matrix-synapse/server_name'),
} }
return { vhosts = {
'nginx': { 'matrix-synapse': {
'vhosts': { 'domain': metadata.get('matrix-synapse/baseurl'),
'matrix-synapse': { 'locations': locations,
'domain': metadata.get('matrix-synapse/baseurl'), 'website_check_path': '/_matrix/static/',
'locations': locations, 'website_check_string': 'Synapse is running',
'website_check_path': '/_matrix/static/', },
'website_check_string': 'Synapse is running', }
},
}, for vname in metadata.get('matrix-synapse/wellknown_also_on_vhosts', set()):
vhosts[vname] = {
'locations': wellknown,
}
return {
'nginx': {
'vhosts': vhosts
}, },
} }

View file

@ -104,7 +104,7 @@ nodes['rx300'] = {
}, },
}, },
'cron': { 'cron': {
'cleanup-paste.franzi.business': '0 0 * * * kunsi /usr/bin/find /var/www/paste.franzi.business/ -maxdepth 1 -type d -mtime +60 -exec rm -r {} \;', 'cleanup-paste.franzi.business': '0 0 * * * kunsi /usr/bin/find /var/www/paste.franzi.business/ -maxdepth 1 -type d -mtime +60 -exec rm -r {} \;',
}, },
'check-mail-received': { 'check-mail-received': {
't-online': { 't-online': {
@ -224,6 +224,9 @@ nodes['rx300'] = {
'preferredDomain': 'meet.ffmuc.net', 'preferredDomain': 'meet.ffmuc.net',
}, },
}, },
'wellknown_also_on_vhosts': {
'franzi.business',
},
}, },
'mautrix-telegram': { 'mautrix-telegram': {
'version': 'v0.10.0', 'version': 'v0.10.0',
@ -306,34 +309,6 @@ nodes['rx300'] = {
'franzi.business': { 'franzi.business': {
'webroot': '/var/www/franzi.business/_site/', 'webroot': '/var/www/franzi.business/_site/',
'ssl': '_.franzi.business', 'ssl': '_.franzi.business',
'locations': {
'/.well-known/matrix/client': {
'return': json_dumps({
'm.homeserver': {
'base_url': 'https://matrix.franzi.business',
},
'm.identity_server': {
'base_url': 'https://matrix.org',
},
'im.vector.riot.jitsi': {
'preferredDomain': 'meet.ffmuc.net',
},
}, sort_keys=True),
'additional_config': {
'default_type application/json',
'add_header Access-Control-Allow-Origin *',
},
},
'/.well-known/matrix/server': {
'return': json_dumps({
'm.server': 'matrix.franzi.business:443',
}, sort_keys=True),
'additional_config': {
'default_type application/json',
'add_header Access-Control-Allow-Origin *',
},
},
},
}, },
'kunbox.net': {}, 'kunbox.net': {},
'kunsmann.eu': { 'kunsmann.eu': {