diff --git a/hosts/server/natsu/services/caddy.nix b/hosts/server/natsu/services/caddy.nix index eaae874..41007ce 100644 --- a/hosts/server/natsu/services/caddy.nix +++ b/hosts/server/natsu/services/caddy.nix @@ -1,8 +1,5 @@ { pkgs, ... }: -let - streamPlayer = pkgs.writeTextDir "index.html" (builtins.readFile ./stream.html); -in { services.caddy = { enable = true; @@ -96,22 +93,7 @@ in ''; virtualHosts."stream.mizuki.guru".extraConfig = '' - handle_path /hls/* { - root * /var/lib/nginx-rtmp/hls - header Cache-Control "no-store" - file_server - } - - handle /live/* { - root * ${streamPlayer} - rewrite * /index.html - file_server - } - - handle { - root * ${streamPlayer} - file_server - } + reverse_proxy 127.0.0.1:10023 ''; virtualHosts."netbird.mizuki.guru".extraConfig = '' diff --git a/hosts/server/natsu/services/stream.html b/hosts/server/natsu/services/stream.html deleted file mode 100644 index a772227..0000000 --- a/hosts/server/natsu/services/stream.html +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - stream.mizuki.guru - - - -
- -

-
- - - - - diff --git a/hosts/server/natsu/services/stream.nix b/hosts/server/natsu/services/stream.nix index 376f77f..889ca8f 100644 --- a/hosts/server/natsu/services/stream.nix +++ b/hosts/server/natsu/services/stream.nix @@ -1,78 +1,12 @@ -{ pkgs, ... }: +{ ... }: -let - domain = "stream.mizuki.guru"; - hlsDir = "/var/lib/nginx-rtmp/hls"; - caddyCertDir = "/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/${domain}"; -in { - services.nginx = { + services.owncast = { enable = true; - package = pkgs.nginx.override { - modules = [ pkgs.nginxModules.rtmp ]; - }; - - appendConfig = '' - rtmp { - server { - listen 127.0.0.1:19350; - chunk_size 4096; - - application live { - live on; - record off; - - hls on; - hls_path ${hlsDir}; - hls_fragment 2s; - hls_playlist_length 60s; - hls_cleanup off; - } - } - } - ''; + dataDir = "/data/owncast"; + port = 10023; + listen = "0.0.0.0"; + openFirewall = true; + rtmp-port = 1935; }; - - systemd.tmpfiles.rules = [ - "d /var/lib/nginx-rtmp 0755 nginx nginx - -" - "d ${hlsDir} 0755 nginx nginx - -" - ]; - - users.users.caddy.extraGroups = [ "nginx" ]; - - systemd.services.nginx.serviceConfig.ReadWritePaths = [ - "/var/lib/nginx-rtmp" - ]; - - systemd.services.stream-stunnel = { - description = "RTMPS TLS terminator for stream.mizuki.guru"; - after = [ - "network-online.target" - "caddy.service" - "nginx.service" - ]; - wants = [ "network-online.target" ]; - requires = [ "nginx.service" ]; - wantedBy = [ "multi-user.target" ]; - - serviceConfig = { - Type = "simple"; - User = "caddy"; - Group = "caddy"; - ExecStart = "${pkgs.stunnel}/bin/stunnel ${pkgs.writeText "stream-stunnel.conf" '' - foreground = yes - pid = - - [stream] - accept = 0.0.0.0:1935 - connect = 127.0.0.1:19350 - cert = ${caddyCertDir}/${domain}.crt - key = ${caddyCertDir}/${domain}.key - ''}"; - Restart = "always"; - RestartSec = 5; - }; - }; - - networking.firewall.allowedTCPPorts = [ 1935 ]; }