nix-config/modules/homelab/peertube.nix
Oliver Davies 4701206195
Some checks failed
/ check (push) Failing after 11s
Migrate peertube to home02
2025-11-24 23:46:07 +00:00

74 lines
1.8 KiB
Nix

{ inputs, lib, ... }:
{
flake.modules.nixos.server-peertube =
{ config, ... }:
let
inherit (lib)
mkEnableOption
mkIf
mkOption
types
;
cfg = config.homelab.services.peertube;
in
{
options.homelab.services.peertube = {
enable = mkEnableOption "Enable peertube";
cloudflareTunnelId = mkOption {
type = types.str;
};
domain = mkOption {
type = types.str;
};
};
config = mkIf cfg.enable {
services = {
peertube = {
enable = true;
configureNginx = true;
enableWebHttps = false;
localDomain = cfg.domain;
database = {
createLocally = true;
passwordFile = config.age.secrets.peertube-postgresql.path;
};
redis = {
createLocally = true;
enableUnixSocket = true;
};
secrets.secretsFile = config.age.secrets.peertube-env.path;
settings = {
webserver = {
hostname = config.services.peertube.localDomain;
port = lib.mkForce 443;
};
};
};
cloudflared.tunnels.${cfg.cloudflareTunnelId}.ingress = {
${cfg.domain} = "http://localhost:${toString config.services.peertube.listenWeb}";
};
};
age.secrets."peertube-env" = {
file = "${inputs.self}/secrets/peertube-env.age";
owner = config.services.peertube.user;
};
age.secrets."peertube-postgresql" = {
file = "${inputs.self}/secrets/peertube-postgresql.age";
owner = config.services.peertube.user;
};
};
};
}