diff --git a/hosts/server/natsu/services/stream.nix b/hosts/server/natsu/services/stream.nix index 889ca8f..533221d 100644 --- a/hosts/server/natsu/services/stream.nix +++ b/hosts/server/natsu/services/stream.nix @@ -1,12 +1,102 @@ -{ ... }: +{ pkgs, ... }: { - services.owncast = { - enable = true; - dataDir = "/data/owncast"; - port = 10023; - listen = "0.0.0.0"; - openFirewall = true; - rtmp-port = 1935; + environment.etc."xiu/config.toml".text = '' + [rtmp] + enabled = true + port = 1935 + gop_num = 0 + + [rtmp.pull] + enabled = false + address = "127.0.0.1" + port = 1935 + + [[rtmp.push]] + enabled = false + address = "127.0.0.1" + port = 1936 + + [rtmp.auth] + pull_enabled = false + push_enabled = false + algorithm = "simple" + + [rtsp] + enabled = false + port = 8554 + relay_enabled = false + + [rtsp.auth] + pull_enabled = false + push_enabled = false + algorithm = "simple" + + [webrtc] + enabled = false + port = 8900 + + [webrtc.auth] + pull_enabled = false + push_enabled = false + algorithm = "simple" + + [httpflv] + enabled = false + port = 8081 + + [httpflv.auth] + pull_enabled = false + algorithm = "simple" + + [hls] + enabled = true + port = 10023 + need_record = false + + [hls.auth] + pull_enabled = false + algorithm = "simple" + + [log] + level = "info" + + [log.file] + enabled = false + rotate = "day" + path = "/var/log/xiu" + + [authsecret] + key = "" + password = "" + + [httpapi] + port = 8000 + + [httpnotify] + enabled = false + on_publish = "" + on_unpublish = "" + on_play = "" + on_stop = "" + ''; + + systemd.services.xiu = { + description = "XIU live media server"; + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" ]; + serviceConfig = { + ExecStart = "${pkgs.xiu}/bin/xiu --config /etc/xiu/config.toml"; + DynamicUser = true; + StateDirectory = "xiu"; + WorkingDirectory = "/var/lib/xiu"; + Restart = "on-failure"; + RestartSec = "5s"; + }; }; + + networking.firewall.allowedTCPPorts = [ + 1935 + 10023 + ]; }