This commit is contained in:
cronekorkn 2022-12-05 09:40:24 +01:00
parent 801a8bcf5f
commit e0e66094af
Signed by: cronekorkn
SSH key fingerprint: SHA256:v0410ZKfuO1QHdgKBsdQNF64xmTxOF8osF1LIqwTcVw
6 changed files with 83 additions and 12 deletions

View file

@ -1,6 +1,6 @@
https://github.com/dehydrated-io/dehydrated/wiki/example-dns-01-nsupdate-script
```
```sh
printf "server 127.0.0.1
zone acme.resolver.name.
update add _acme-challenge.ckn.li.acme.resolver.name. 600 IN TXT "hello"

View file

@ -2,6 +2,8 @@ pid /var/run/nginx.pid;
user www-data;
worker_processes 10;
include /etc/nginx/modules-enabled/*;
events {
worker_connections 768;
}
@ -15,12 +17,14 @@ http {
server_names_hash_bucket_size 128;
tcp_nopush on;
client_max_body_size 32G;
% if node.has_bundle('php'):
upstream php-handler {
server unix:/var/run/php/php${node.metadata.get('php/version')}-fpm.sock;
}
% endif
include /etc/nginx/sites/*;
include /etc/nginx/sites-http/*;
}
include /etc/nginx/sites/*;

View file

@ -9,6 +9,12 @@ directories = {
'svc_systemd:nginx:restart',
},
},
'/etc/nginx/sites-http': {
'purge': True,
'triggers': {
'svc_systemd:nginx:restart',
},
},
'/etc/nginx/ssl': {
'purge': True,
'triggers': {
@ -26,22 +32,22 @@ files = {
'triggers': {
'svc_systemd:nginx:restart',
},
},
},
'/etc/nginx/fastcgi.conf': {
'triggers': {
'svc_systemd:nginx:restart',
},
},
'/etc/nginx/sites/80.conf': {
},
'/etc/nginx/sites-http/80.conf': {
'triggers': {
'svc_systemd:nginx:restart',
},
},
'/etc/nginx/sites/stub_status.conf': {
},
'/etc/nginx/sites-http/stub_status.conf': {
'triggers': {
'svc_systemd:nginx:restart',
},
},
},
'/etc/nginx/sites-available': {
'delete': True,
'needs': {
@ -74,7 +80,12 @@ svc_systemd = {
for name, config in node.metadata.get('nginx/vhosts').items():
files[f'/etc/nginx/sites/{name}'] = {
if config.get('http', True):
sites = 'sites-http'
else:
sites = 'sites'
files[f'/etc/nginx/{sites}/{name}'] = {
'content': Template(filename=join(repo.path, 'data', config['content'])).render(
server_name=name,
**config.get('context', {}),
@ -88,8 +99,8 @@ for name, config in node.metadata.get('nginx/vhosts').items():
'svc_systemd:nginx:restart',
},
}
if name in node.metadata.get('letsencrypt/domains'):
files[f'/etc/nginx/sites/{name}']['needs'].append(
files[f'/etc/nginx/{sites}/{name}']['needs'].append(
f'action:letsencrypt_ensure-some-certificate_{name}',
)

View file

@ -6,6 +6,8 @@ defaults = {
'apt': {
'packages': {
'nginx': {},
'libnginx-mod-stream': {},
'libnginx-mod-rtmp': {},
},
},
'nftables': {

37
data/nginx/rtmp.conf Normal file
View file

@ -0,0 +1,37 @@
stream {
upstream backend {
server 127.0.0.1:${rtmp_port};
}
server {
listen ${rtmps_port} ssl;
listen [::]:${rtmps_port} ssl;
ssl_certificate /var/lib/dehydrated/certs/${server_name}/fullchain.pem;
ssl_certificate_key /var/lib/dehydrated/certs/${server_name}/privkey.pem;
proxy_pass backend;
}
}
rtmp {
server {
listen 127.0.0.1:${rtmp_port};
chunk_size 4096;
application ${streaming_key} {
live on;
record off;
allow publish 127.0.0.1; # for streaming through nginx
allow play 127.0.0.1; # for the pull from /live
}
application live {
live on;
record off;
deny publish all; # no need to publish on /live
allow play all; # playing allowed
pull rtmp://127.0.0.1:${rtmp_port}/${streaming_key};
}
}
}

View file

@ -107,6 +107,7 @@
'ckn.li': {},
'sublimity.de': {},
'freibrief.net': {},
'rtmp.sublimity.de': {},
},
},
'mailserver': {
@ -126,8 +127,24 @@
'rspamd': {
'hostname': 'rspamd.sublimity.de',
},
'nftables': {
'input': {
'tcp dport 1937 accept',
},
},
'nginx': {
'vhosts': {
'rtmp.sublimity.de': {
'http': False,
'content': 'nginx/rtmp.conf',
'context': {
'rtmp_port': 1936,
'rtmps_port': 1937,
'streaming_key': 'testtest',
#'streaming_key': '!decrypt:encrypt$gAAAAABjjSrmEUVBLIWnPDxKmd3VFmof3SGI-icr2tJZUeuZkXGYJ9IG5C_3R0oDT8CUoqVv74mxGyJQ9wj9EzQm8DNLuSaxqlMZbn4qvKMDYRlK2B0D0is=',
},
'internal_dns': False,
},
'cloud.sublimity.de': {
'content': 'nginx/proxy_pass.conf',
'context': {