76 lines
1.8 KiB
Nix
76 lines
1.8 KiB
Nix
{config, ...}: {
|
|
virtualisation.oci-containers.containers."restreamer" = {
|
|
image = "docker.io/datarhei/restreamer:latest";
|
|
environmentFiles = [config.age.secrets.restreamer-env.path];
|
|
# Modified ports to include RTMPS
|
|
ports = [
|
|
"127.0.0.1:3006:8080" # Web UI
|
|
"127.0.0.1:1936:1935" # RTMP
|
|
];
|
|
volumes = [
|
|
"restreamer_data:/core/data"
|
|
"restreamer_config:/core/config"
|
|
];
|
|
extraOptions = ["--add-host=postgres:10.89.0.1" "--ip=10.89.0.13" "--network=web"];
|
|
};
|
|
|
|
# Traefik configuration
|
|
services.traefik = {
|
|
dynamicConfigOptions = {
|
|
http = {
|
|
services.restreamer.loadBalancer.servers = [
|
|
{
|
|
url = "http://localhost:3006/";
|
|
}
|
|
];
|
|
|
|
routers.restreamer = {
|
|
rule = "Host(`stream.m3tam3re.com`)";
|
|
tls = {
|
|
certResolver = "godaddy";
|
|
};
|
|
service = "restreamer";
|
|
entrypoints = ["websecure"];
|
|
};
|
|
};
|
|
|
|
tcp = {
|
|
services = {
|
|
rtmp-service.loadBalancer.servers = [
|
|
{
|
|
address = "localhost:1936";
|
|
}
|
|
];
|
|
rtmps-service.loadBalancer.servers = [
|
|
{
|
|
address = "localhost:1936";
|
|
}
|
|
];
|
|
};
|
|
|
|
routers = {
|
|
rtmp = {
|
|
rule = "HostSNI(`*`)"; # Changed to accept all SNI
|
|
service = "rtmp-service";
|
|
entryPoints = ["rtmp"];
|
|
};
|
|
rtmps = {
|
|
rule = "HostSNI(`stream.m3tam3re.com`)";
|
|
service = "rtmps-service";
|
|
entryPoints = ["rtmps"];
|
|
tls = {
|
|
certResolver = "godaddy";
|
|
passthrough = false;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
|
|
# Firewall configuration
|
|
networking.firewall = {
|
|
allowedTCPPorts = [80 443 1935 1945];
|
|
};
|
|
}
|