Add peertube (work in progress)
All checks were successful
/ check (push) Successful in 1m30s

Returning an error after trying to log in when the page is served via a
Cloudflare Tunnel.
This commit is contained in:
Oliver Davies 2025-05-05 02:59:56 +01:00
parent 9423f635bc
commit 00015d8948
5 changed files with 86 additions and 0 deletions

View file

@ -15,6 +15,7 @@
immich.enable = true;
jellyfin.enable = true;
paperless.enable = true;
peertube.enable = false;
tubearchivist.enable = true;
uptime-kuma.enable = true;
vaultwarden.enable = true;

View file

@ -28,5 +28,6 @@ with lib;
./jellyfin.nix
./nginx
./paperless.nix
./peertube.nix
];
}

View file

@ -0,0 +1,62 @@
{
config,
inputs,
lib,
...
}:
let
inherit (lib)
mkEnableOption
mkIf
mkOption
types
;
cfg = homelab.services.${service};
homelab = config.homelab;
service = "peertube";
in
{
options.homelab.services.${service} = {
enable = mkEnableOption "Enable ${service}";
url = mkOption {
default = "videos.${homelab.domain}";
type = types.str;
};
};
config = mkIf cfg.enable {
services = {
${service} = {
enable = true;
configureNginx = true;
enableWebHttps = false;
listenWeb = 80;
localDomain = cfg.url;
database = {
createLocally = true;
};
redis = {
createLocally = true;
enableUnixSocket = true;
};
secrets.secretsFile = config.age.secrets.peertube-env.path;
};
cloudflared.tunnels.${homelab.cloudflared.tunnelId}.ingress = {
${cfg.url} = "http://${toString config.services.${service}.listenWeb}";
};
};
age.secrets."${service}-env" = {
file = "${inputs.self}/secrets/${service}-env.age";
owner = config.services.${service}.user;
};
};
}