56 lines
1.1 KiB
Python
56 lines
1.1 KiB
Python
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'},
|
|
},
|
|
},
|
|
},
|
|
}
|