From c1d0a41346f49f1da35ac3de9f5f882c247954af Mon Sep 17 00:00:00 2001
From: Oliver Davies <oliver@oliverdavies.dev>
Date: Wed, 7 May 2025 00:47:43 +0100
Subject: [PATCH] Enable peertube

---
 hosts/nixedo/homelab.nix          |  2 +-
 hosts/nixedo/modules/peertube.nix | 28 +++++++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/hosts/nixedo/homelab.nix b/hosts/nixedo/homelab.nix
index f287fdb6..fb9b0292 100644
--- a/hosts/nixedo/homelab.nix
+++ b/hosts/nixedo/homelab.nix
@@ -15,7 +15,7 @@
       immich.enable = true;
       jellyfin.enable = true;
       paperless.enable = true;
-      peertube.enable = false;
+      peertube.enable = true;
       tubearchivist.enable = true;
       uptime-kuma.enable = true;
       vaultwarden.enable = true;
diff --git a/hosts/nixedo/modules/peertube.nix b/hosts/nixedo/modules/peertube.nix
index 92dc738a..a35e3f01 100644
--- a/hosts/nixedo/modules/peertube.nix
+++ b/hosts/nixedo/modules/peertube.nix
@@ -25,6 +25,26 @@ in
       default = "videos.${homelab.domain}";
       type = types.str;
     };
+
+    homepage.name = mkOption {
+      default = "Peertube";
+      type = types.str;
+    };
+
+    homepage.description = mkOption {
+      default = "A free and open-source, decentralized, ActivityPub federated video platform";
+      type = types.str;
+    };
+
+    homepage.icon = mkOption {
+      default = "peertube";
+      type = types.str;
+    };
+
+    homepage.category = mkOption {
+      default = "Media";
+      type = types.str;
+    };
   };
 
   config = mkIf cfg.enable {
@@ -34,7 +54,6 @@ in
 
         configureNginx = true;
         enableWebHttps = false;
-        listenWeb = 80;
         localDomain = cfg.url;
 
         database = {
@@ -47,6 +66,13 @@ in
         };
 
         secrets.secretsFile = config.age.secrets.peertube-env.path;
+
+        settings = {
+          webserver = {
+            hostname = config.services.${service}.localDomain;
+            port = lib.mkForce 443;
+          };
+        };
       };
 
       cloudflared.tunnels.${homelab.cloudflared.tunnelId}.ingress = {