From 68bd97fe3a25299559305a4977728ff1ba91b92c Mon Sep 17 00:00:00 2001
From: Amanda Graven <amanda@graven.dev>
Date: Sun, 23 Mar 2025 18:10:55 +0100
Subject: [PATCH] Add immich

---
 config/hosts/rudiger/configuration.nix   |  1 +
 config/hosts/rudiger/services/immich.nix |  8 ++++++++
 config/hosts/rudiger/services/nginx.nix  | 17 ++++++++++++++++-
 3 files changed, 25 insertions(+), 1 deletion(-)
 create mode 100644 config/hosts/rudiger/services/immich.nix

diff --git a/config/hosts/rudiger/configuration.nix b/config/hosts/rudiger/configuration.nix
index 632a8fe..b096665 100644
--- a/config/hosts/rudiger/configuration.nix
+++ b/config/hosts/rudiger/configuration.nix
@@ -10,6 +10,7 @@
 		../../common/services/tailscale.nix
 		../../common/users.nix
 		./services/acme.nix
+		./services/immich.nix
 		./services/nextcloud.nix
 		./services/nginx.nix
 		./services/postgres.nix
diff --git a/config/hosts/rudiger/services/immich.nix b/config/hosts/rudiger/services/immich.nix
new file mode 100644
index 0000000..1825eda
--- /dev/null
+++ b/config/hosts/rudiger/services/immich.nix
@@ -0,0 +1,8 @@
+{ ... }:
+
+{
+	services.immich = {
+		enable = true;
+		port = 2283;
+	};
+}
diff --git a/config/hosts/rudiger/services/nginx.nix b/config/hosts/rudiger/services/nginx.nix
index d896bab..0440b9d 100644
--- a/config/hosts/rudiger/services/nginx.nix
+++ b/config/hosts/rudiger/services/nginx.nix
@@ -1,8 +1,23 @@
-{ ... }:
+{ config, ... }:
 {
   imports = [ ../../../common/services/nginx.nix ];
   services.nginx.virtualHosts."cloud.graven.dev" = {
     enableACME = true;
     forceSSL = true;
   };
+  services.nginx.virtualHosts."immich.graven.dev" = {
+    enableACME = true;
+    forceSSL = true;
+    locations."/" = {
+      proxyPass = "http://[::1]:${toString config.services.immich.port}";      
+      proxyWebsockets = true;
+      recommendedProxySettings = true;
+      extraConfig = ''
+        client_max_body_size 50000M;
+        proxy_read_timeout   600s;
+        proxy_send_timeout   600s;
+        send_timeout         600s;
+      '';
+    };
+  };
 }