defaults = { 'apt': { 'packages': { 'libnginx-mod-stream': {}, 'libnginx-mod-rtmp': {}, }, }, 'nftables': { 'input': { 'tcp dport 1936 accept', }, }, 'nginx': { 'modules': { 'rtmp', 'stream', }, }, } @metadata_reactor.provides( 'nginx-rtmps/stream_key', ) def stream_key(metadata): return { 'nginx-rtmps': { 'stream_key': repo.vault.password_for(f"{metadata.get('id')} nginx-rtmps stream_key", length=24) }, } @metadata_reactor.provides( 'dns', ) def dns(metadata): return { 'dns': { metadata.get('nginx-rtmps/hostname'): repo.libs.ip.get_a_records(metadata), } } @metadata_reactor.provides( 'letsencrypt/domains', ) def letsencrypt(metadata): return { 'letsencrypt': { 'domains': { metadata.get('nginx-rtmps/hostname'): { 'reload': {'nginx'}, }, }, }, }