From 0bba7ff4f8dac996c62b0a15e2b929e680755d90 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Mon, 28 Apr 2025 01:58:11 +0100 Subject: [PATCH] Fix immich --- hosts/nixedo/configuration.nix | 1 + hosts/nixedo/modules/acme.nix | 1 + hosts/nixedo/modules/immich.nix | 49 +++++++++++++++------ hosts/nixedo/services/homepage/services.nix | 9 ++++ 4 files changed, 47 insertions(+), 13 deletions(-) diff --git a/hosts/nixedo/configuration.nix b/hosts/nixedo/configuration.nix index a49cd448..5f6634fe 100644 --- a/hosts/nixedo/configuration.nix +++ b/hosts/nixedo/configuration.nix @@ -17,6 +17,7 @@ core.openssh.enable = true; cli.podman.enable = true; desktop.dconf.enable = true; + homelab.immich.enable = true; }; services.logind.lidSwitchExternalPower = "ignore"; diff --git a/hosts/nixedo/modules/acme.nix b/hosts/nixedo/modules/acme.nix index 1c2eb24a..1e91f18b 100644 --- a/hosts/nixedo/modules/acme.nix +++ b/hosts/nixedo/modules/acme.nix @@ -23,6 +23,7 @@ "luke.oliverdavies.uk" "nixedo.oliverdavies.uk" "paperless.oliverdavies.uk" + "photos.oliverdavies.uk" "phpsw-sculpin-demo.oliverdavies.uk" "rebuilding-acquia.oliverdavies.uk" "rebuilding-bartik.oliverdavies.uk" diff --git a/hosts/nixedo/modules/immich.nix b/hosts/nixedo/modules/immich.nix index d9ce6128..af1a647d 100644 --- a/hosts/nixedo/modules/immich.nix +++ b/hosts/nixedo/modules/immich.nix @@ -1,19 +1,42 @@ -{ config, pkgs, ... }: - { - services = { - immich = { - enable = true; - group = "media"; - mediaLocation = "/mnt/media/immich"; - }; + config, + lib, + pkgs, + ... +}: - caddy.virtualHosts."immich.oliverdavies.uk" = { - useACMEHost = "oliverdavies.uk"; +with lib; - extraConfig = "reverse_proxy localhost:${toString config.services.immich.port}"; - }; +let + cfg = config.nixosModules.homelab.immich; +in +{ + options.nixosModules.homelab.immich = { + enable = mkEnableOption "Enable immich"; }; - environment.systemPackages = [ pkgs.immich-cli ]; + config = mkIf cfg.enable { + services = { + immich = { + enable = true; + group = "media"; + mediaLocation = "/mnt/media/immich"; + }; + + nginx.virtualHosts."photos.oliverdavies.uk" = { + forceSSL = true; + useACMEHost = "oliverdavies.uk"; + + locations."/" = { + proxyPass = "http://localhost:${toString config.services.immich.port}"; + recommendedProxySettings = true; + }; + }; + }; + + environment.systemPackages = with pkgs; [ + immich-cli + immich-go + ]; + }; } diff --git a/hosts/nixedo/services/homepage/services.nix b/hosts/nixedo/services/homepage/services.nix index 77d1878c..b524a010 100644 --- a/hosts/nixedo/services/homepage/services.nix +++ b/hosts/nixedo/services/homepage/services.nix @@ -12,6 +12,15 @@ }; } + { + "Immich" = { + href = "https://photos.oliverdavies.uk"; + icon = "immich"; + description = "Self-hosted photo and video management solution"; + siteMonitor = "http://localhost:${toString config.services.immich.port}"; + }; + } + { "Audiobookshelf" = { href = "https://audiobookshelf.oliverdavies.uk";