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;
+      '';
+    };
+  };
 }