diff --git a/hosts/home-server/default.nix b/hosts/home-server/default.nix
index f3c7e0a..e8a4eda 100644
--- a/hosts/home-server/default.nix
+++ b/hosts/home-server/default.nix
@@ -40,7 +40,6 @@ in
     ../../services/wkd.nix
     ../../services/home-assistant
     ../../services/matrix
-    ../../services/immich.nix
     ../../services/miniflux.nix
     ../../services/paperless.nix
     ../../services/nextcloud.nix
diff --git a/secrets/immich/db-password.age b/secrets/immich/db-password.age
deleted file mode 100644
index 951b3b6..0000000
Binary files a/secrets/immich/db-password.age and /dev/null differ
diff --git a/secrets/immich/env.age b/secrets/immich/env.age
deleted file mode 100644
index 718ba10..0000000
--- a/secrets/immich/env.age
+++ /dev/null
@@ -1,11 +0,0 @@
-age-encryption.org/v1
--> ssh-ed25519 OAZQhA inqJ3LPwmFLYYnfuawS0lgr98XC4l+VTmsGXzPfy1VM
-CHVm2Z8mVLazAQ1ymhfMqNrY/qlAYeSIsU2DwmIQca8
--> ssh-ed25519 lJaKnA LhTLdgpRsi3BmQspSqvdnr8J/4WybyBpu9Lvhtb1jyk
-XW51R8uatTy9niBELlJjkWXh3saNxRuIQVTBvCPGG9Y
--> ssh-ed25519 72ij7w 68Wzb9LtJPe7WcgViMVD1hhuki9dGmC2bFsvxxmkXmw
-NH03Fu3kJop0y4XiXY1Rm7WvFHg+sWI7oJvKnYttD4k
--> @U.p1-grease 9r? @v.; 1zLdC6u
-RJMgIa4ri2Dqq4S+dGTyDOA0MJlQvRcvmldt6CeweQ
---- FbkM4UZTqL5ZT0cRM1tMfYBULiV+h0YlAjC/8YdgFB8
-=�,~���슞�0+��F�x@�~U�i_M�2g<�'+\�)	?��/��D��s�eе�=��;>�rf>@Ą9*(��p����@�d'��.B��>
��waPމ'�E<��X���Uɴ��yH��L�RσR���[.F���qLy���ޥ	�ʐ
\ No newline at end of file
diff --git a/secrets/immich/typesense/env.age b/secrets/immich/typesense/env.age
deleted file mode 100644
index 1e773d9..0000000
--- a/secrets/immich/typesense/env.age
+++ /dev/null
@@ -1,12 +0,0 @@
-age-encryption.org/v1
--> ssh-ed25519 OAZQhA wSU2o2QZ09JlsQ9fjqh8/wLvJi30tXHlrQ6UgcYotic
-o5UnLub9dUm7rVT5bcanOOQOd/+Laiqhe+CPtRLkz/o
--> ssh-ed25519 lJaKnA eOwn2JPKFv/8h/HEFUn+vnuJt8vQ0ynD7igtWUAqXkA
-eGaK6kV1TK03H9RBPB2qwTQXi3XeyhHnAjg73tqghHY
--> ssh-ed25519 72ij7w 3XiCOok7DkQVm48K01F4GtHQAZrqbFFA90lPr/h4hWo
-HckvW0PBNT1KJivCqfByz/H+xQJylA2y3OpKnnbdzlQ
--> %U)HsVtW-grease
-5L/0ySnJDDEC+gGBhnwVD9Hy8i2Xbb3Dyj4XZZvO77c5A2wQqBEO8lLCBTcPAB7h
-m9UOpo654UbPvb0KsA7J9Piw/SM2Wt3oZrBzO/BF5jotKtil5yMjGyHxGg
---- dnAuqgpzLdEXoTiv7hjOFZs2tY5u3/ILDoDJN9YjRes
-z���#t��6���Fl*]���ѕ0�3:���1���F�&2��U�ǎ�l���ߢY 0�k���k��{�}&���Y��z	������
\ No newline at end of file
diff --git a/secrets/secrets.nix b/secrets/secrets.nix
index 66943b6..84ab83f 100644
--- a/secrets/secrets.nix
+++ b/secrets/secrets.nix
@@ -67,21 +67,6 @@ in
     home-pc
     home-server
   ];
-  "immich/env.age".publicKeys = [
-    felschr
-    home-pc
-    home-server
-  ];
-  "immich/db-password.age".publicKeys = [
-    felschr
-    home-pc
-    home-server
-  ];
-  "immich/typesense/env.age".publicKeys = [
-    felschr
-    home-pc
-    home-server
-  ];
 
   "firefox/site-data-exceptions.toml.age".publicKeys = [
     felschr
diff --git a/services/immich.nix b/services/immich.nix
deleted file mode 100644
index 1d65243..0000000
--- a/services/immich.nix
+++ /dev/null
@@ -1,187 +0,0 @@
-{ config, pkgs, ... }:
-
-let
-  tag = "v1.88.2";
-  dataDir = "/var/lib/immich";
-  typesenseDataDir = "/var/lib/immich/typesense/data";
-  uploadDir = "${dataDir}/upload";
-  dbuser = "immich";
-  dbname = "immich";
-  dbPasswordFile = config.age.secrets.immich-db-password.path;
-  ociBackend = config.virtualisation.oci-containers.backend;
-  containersHost = "localhost";
-  domain = "photos.felschr.com";
-
-  inherit (config.users.users.immich) uid;
-  inherit (config.users.groups.immich) gid;
-
-  pgSuperUser = config.services.postgresql.superUser;
-
-  immichBase = {
-    user = "${toString uid}:${toString gid}";
-    environment = {
-      PUID = toString uid;
-      PGID = toString gid;
-      NODE_ENV = "production";
-      DB_HOSTNAME = containersHost;
-      DB_PORT = toString config.services.postgresql.settings.port;
-      DB_USERNAME = dbuser;
-      DB_DATABASE_NAME = dbname;
-      REDIS_HOSTNAME = containersHost;
-      REDIS_PORT = toString config.services.redis.servers.immich.port;
-      TYPESENSE_HOST = "immich-typesense";
-    };
-    # only secrets need to be included, e.g. DB_PASSWORD, JWT_SECRET, MAPBOX_KEY
-    environmentFiles = [
-      config.age.secrets.immich-env.path
-      config.age.secrets.immich-typesense-env.path
-    ];
-    extraOptions = [
-      "--runtime-flag=network=host"
-      "--uidmap=0:65534:1"
-      "--gidmap=0:65534:1"
-      "--uidmap=${toString uid}:${toString uid}:1"
-      "--gidmap=${toString gid}:${toString gid}:1"
-      "--network=host"
-      "--add-host=immich-server:127.0.0.1"
-      "--add-host=immich-microservices:127.0.0.1"
-      "--add-host=immich-machine-learning:127.0.0.1"
-      "--add-host=immich-typesense:127.0.0.1"
-      "--label=io.containers.autoupdate=registry"
-    ];
-  };
-in
-{
-  age.secrets.immich-env.file = ../secrets/immich/env.age;
-  age.secrets.immich-db-password.file = ../secrets/immich/db-password.age;
-  age.secrets.immich-typesense-env.file = ../secrets/immich/typesense/env.age;
-
-  services.postgresql = {
-    enable = true;
-    enableTCPIP = true;
-    ensureDatabases = [ dbname ];
-    ensureUsers = [
-      {
-        name = dbuser;
-        ensureDBOwnership = true;
-      }
-    ];
-  };
-
-  services.redis.servers.immich = {
-    enable = true;
-    port = 31640;
-  };
-
-  systemd.services.immich-init = {
-    enable = true;
-    description = "Set up paths & database access";
-    requires = [ "postgresql.service" ];
-    after = [ "postgresql.service" ];
-    before = [
-      "${ociBackend}-immich-server.service"
-      "${ociBackend}-immich-microservices.service"
-      "${ociBackend}-immich-machine-learning.service"
-      "${ociBackend}-immich-typesense.service"
-    ];
-    wantedBy = [ "multi-user.target" ];
-    serviceConfig = {
-      Type = "oneshot";
-      LoadCredential = [ "db_password:${dbPasswordFile}" ];
-    };
-    script = ''
-      mkdir -p ${dataDir} ${uploadDir} ${typesenseDataDir}
-      echo "Set immich postgres user password"
-      db_password="$(<"$CREDENTIALS_DIRECTORY/db_password")"
-      ${pkgs.sudo}/bin/sudo -u ${pgSuperUser} ${pkgs.postgresql}/bin/psql postgres \
-        -c "alter user ${dbuser} with password '$db_password'"
-    '';
-  };
-
-  virtualisation.oci-containers.containers = {
-    immich-server = immichBase // {
-      image = "ghcr.io/immich-app/immich-server:${tag}";
-      ports = [ "3001:3001" ];
-      entrypoint = "/bin/sh";
-      cmd = [ "./start-server.sh" ];
-      volumes = [ "${uploadDir}:/usr/src/app/upload" ];
-      dependsOn = [ "immich-typesense" ];
-    };
-
-    immich-microservices = immichBase // {
-      image = "ghcr.io/immich-app/immich-server:${tag}";
-      entrypoint = "/bin/sh";
-      cmd = [ "./start-microservices.sh" ];
-      volumes = [ "${uploadDir}:/usr/src/app/upload" ];
-      dependsOn = [ "immich-typesense" ];
-    };
-
-    immich-machine-learning = immichBase // {
-      image = "ghcr.io/immich-app/immich-machine-learning:${tag}";
-      volumes = [ "${uploadDir}:/usr/src/app/upload" ];
-    };
-
-    immich-typesense = {
-      image = "docker.io/typesense/typesense:0.24.0";
-      environment.TYPESENSE_DATA_DIR = "/data";
-      environmentFiles = [ config.age.secrets.immich-typesense-env.path ];
-      volumes = [ "${typesenseDataDir}:/data" ];
-      extraOptions = [
-        "--uidmap=0:${toString uid}:1"
-        "--gidmap=0:${toString gid}:1"
-        "--network=host"
-        "--label=io.containers.autoupdate=registry"
-      ];
-    };
-  };
-
-  systemd.services = {
-    "${ociBackend}-immich-server" = {
-      requires = [
-        "postgresql.service"
-        "redis-immich.service"
-      ];
-      after = [
-        "postgresql.service"
-        "redis-immich.service"
-      ];
-    };
-
-    "${ociBackend}-immich-microservices" = {
-      requires = [
-        "postgresql.service"
-        "redis-immich.service"
-      ];
-      after = [
-        "postgresql.service"
-        "redis-immich.service"
-      ];
-    };
-
-    "${ociBackend}-immich-machine-learning" = {
-      requires = [ "postgresql.service" ];
-      after = [ "postgresql.service" ];
-    };
-  };
-
-  services.nginx.virtualHosts.${domain} = {
-    enableACME = true;
-    forceSSL = true;
-    locations."/" = {
-      proxyPass = "http://localhost:3001";
-      extraConfig = ''
-        client_max_body_size 50000M;
-      '';
-    };
-  };
-
-  users.users.immich = {
-    isSystemUser = true;
-    group = "immich";
-    uid = 980;
-  };
-
-  users.groups.immich = {
-    gid = 977;
-  };
-}