106 lines
2.8 KiB
Nix
106 lines
2.8 KiB
Nix
{
|
|
den,
|
|
__findFile,
|
|
modules,
|
|
...
|
|
}:
|
|
{
|
|
modules.services.provides.rtmp-to-whip = {
|
|
nixos =
|
|
{
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
systemd.services.init-rtmp-to-whip-network = {
|
|
description = "Create rtmp-to-whip docker network";
|
|
after = [
|
|
"docker.service"
|
|
"docker.socket"
|
|
];
|
|
requires = [
|
|
"docker.service"
|
|
"docker.socket"
|
|
];
|
|
before = [
|
|
"docker-rtmp-to-whip.service"
|
|
"docker-rtmp-to-whip-frontend.service"
|
|
];
|
|
wantedBy = [ "multi-user.target" ];
|
|
serviceConfig = {
|
|
Type = "oneshot";
|
|
RemainAfterExit = true;
|
|
};
|
|
script = ''
|
|
${pkgs.docker}/bin/docker network inspect rtmp-to-whip >/dev/null 2>&1 || \
|
|
${pkgs.docker}/bin/docker network create rtmp-to-whip
|
|
'';
|
|
};
|
|
|
|
virtualisation.oci-containers.containers = {
|
|
rtmp-to-whip = {
|
|
image = "reg.h.doloro.co.uk/doloro/rtmp-to-whip:latest-aarch64";
|
|
ports = [
|
|
"0.0.0.0:1935:1935"
|
|
"0.0.0.0:6969:6969/udp"
|
|
"127.0.0.1:3001:3000"
|
|
];
|
|
environment = {
|
|
PUBLIC_DOMAIN = "stream.h.doloro.co.uk";
|
|
RTC_PORT = "6969";
|
|
SIGNUP_CODE = "mreowmreow-pawsatyou";
|
|
RUST_LOG = "info,warn";
|
|
};
|
|
volumes = [
|
|
"/data/rtmp-to-whip/db:/db"
|
|
];
|
|
extraOptions = [ "--network=rtmp-to-whip" ];
|
|
};
|
|
|
|
rtmp-to-whip-frontend = {
|
|
image = "reg.h.doloro.co.uk/doloro/rtmp-to-whip-frontend:latest-aarch64";
|
|
ports = [
|
|
"127.0.0.1:3002:3000"
|
|
];
|
|
environment = {
|
|
VITE_API_URL = "https://stream.h.doloro.co.uk/api";
|
|
};
|
|
extraOptions = [ "--network=rtmp-to-whip" ];
|
|
};
|
|
|
|
rtmp-to-whip-watchtower = {
|
|
image = "ghcr.io/nicholas-fedor/watchtower:latest";
|
|
volumes = [
|
|
"/var/run/docker.sock:/var/run/docker.sock"
|
|
];
|
|
environment = {
|
|
WATCHTOWER_CLEANUP = "true";
|
|
WATCHTOWER_POLL_INTERVAL = "300";
|
|
};
|
|
cmd = [
|
|
"rtmp-to-whip"
|
|
"rtmp-to-whip-frontend"
|
|
];
|
|
};
|
|
};
|
|
|
|
networking.firewall = {
|
|
allowedTCPPorts = [ 1935 ];
|
|
allowedUDPPorts = [ 6969 ];
|
|
};
|
|
|
|
services.caddy = pkgs.lib.mkIf config.services.caddy.enable {
|
|
virtualHosts."stream.h.doloro.co.uk".extraConfig = ''
|
|
handle /api* {
|
|
reverse_proxy :3001
|
|
}
|
|
handle {
|
|
reverse_proxy :3002
|
|
}
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
}
|