defaults = { 'apt': { 'packages': { 'gunicorn': {}, 'python3-gevent': {}, 'python3-flask': {}, 'python3-jinja2': {}, 'python3-redis': {}, 'python3-oauth2client': {}, 'python3-virtualenv': {}, 'python3-requests': {}, 'python3-iso8601': {}, }, }, 'infobeamer-cms': { 'config': { 'GITHUB_CLIENT_ID': repo.vault.decrypt('encrypt$gAAAAABhxJT3JG3Qb1X-gjtBxwOXZmF-GVPjNbDkYo0Eke5Ly4CAKiussQ8Lld-4zoIWnIVBgndfPPGFDV2RlAHgb-_RY5r7jQcAlgsR0RUw4as0jEhiKlQ='), 'GITHUB_CLIENT_SECRET': repo.vault.decrypt('encrypt$gAAAAABhxJUgYzLIm5Efbn9-sEPpQRRiskHKa7fSqNoUxgonpcn7b9e6S_WbNHH_CLGrkKi7oE3pYUticDaLLLSM0bv74lswwElNvkhUuOM-RSeEuyKEhPP-fX-NXIa_AkRkFPVVBLnw'), 'SESSION_COOKIE_NAME': '__Host-sess', 'PREFERRED_URL_SCHEME': 'https', 'HOSTED_API_KEY': repo.vault.decrypt('encrypt$gAAAAABhxJPH2sIGMAibU2Us1HoCVlNfF0SQQnVl0eiod48Zu8webL_-xk3wDw3yXw1Hkglj-2usl-D3Yd095yTSq0vZMCv2fh-JWwSPdJewQ45x9Ai4vXVD4CNz5vuJBESKS9xQWXTc'), 'MAX_UPLOADS': 5, 'SETUP_IDS': '[212947]', 'URL_KEY': repo.vault.password_for(f'{node.name} infobeamer-cms url key'), 'PUSHOVER_TARGET': repo.vault.decrypt('encrypt$gAAAAABhxKJJrjd-wBezp1Bl8Lu_8BrMm4jiZvOub_XBnPTXE6mAHCTDCRGqH2-Z---hhuJh50MXroNzzIuA_9uAtwXhtkXkrsR344bcZh-idG6V0tDgzds='), 'PUSHOVER_APP_KEY': repo.vault.decrypt('encrypt$gAAAAABhxJFqFafr8pZhQPn3HXGx0plLNQpnTDtJhM4PnlWYDBKjMZxUVh0Ol4631ZBTO5Sj8SIq79O2-Lx2eu0cGIZuzPQsZIBFuxv-30d81r6ljmLh8RQ='), 'TIME_MIN': 1640039559, 'TIME_MAX': 1640905200, 'VERSION': 1, 'ROOMS': [ { 'name': 'Chaos-West TV', 'device_id': 4157489434, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'Chaosstudio Hamburg', 'device_id': 157382517, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'ChaosZone TV', 'device_id': 3, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'r3s - Monheim/Rhein', 'device_id': 3987908073, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'franconian.net Livestream', 'device_id': 246100657, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'about:future stage', 'device_id': 246100658, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'Sendezentrum Bühne', 'device_id': 246100659, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'Haecksen Stream', 'device_id': 246100660, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'xHain Mainhall', 'device_id': 246100661, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'xHain Workshop-Area', 'device_id': 246100662, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'c-base', 'device_id': 246100663, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'about:future Kitchen', 'device_id': 246100664, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'Haecksen Zur schönen Mary', 'device_id': 246100665, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, { 'name': 'Haecksen Zur magischen Margaret', 'device_id': 246100666, 'interrupts': [ { 'name': 'Signal', 'data': 'signal', }, ], }, ], 'PORT': 8000, 'WORKERS': 4, 'unused': 'foobar', }, }, } @metadata_reactor.provides( 'nginx/vhosts', ) def nginx(metadata): if not node.has_bundle('nginx'): raise DoNotRunAgain locations = { '/': { 'target': 'http://127.0.0.1:8000', }, '/sync': { 'return': 'forbidden', 'mode': 403, }, '/static': { 'alias': '/opt/infobeamer-cms/static', }, } vhosts = { 'infobeamer-cms': { 'locations': locations, 'website_check_path': '/', 'website_check_string': '', }, } return { 'nginx': { 'vhosts': vhosts }, }