From f0f757ea77c7491550b36866b4463cdcff22006f Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Tue, 24 Jun 2025 18:14:16 +0100 Subject: [PATCH] Refactor Immich configuration --- hosts/nixedo/homelab.nix | 1 - hosts/nixedo/modules/immich.nix | 81 ++++++++------------------------- 2 files changed, 18 insertions(+), 64 deletions(-) diff --git a/hosts/nixedo/homelab.nix b/hosts/nixedo/homelab.nix index f9f44184..dd8e92a1 100644 --- a/hosts/nixedo/homelab.nix +++ b/hosts/nixedo/homelab.nix @@ -11,7 +11,6 @@ gitea-actions-runner.enable = true; home-assistant.enable = true; homepage-dashboard.enable = true; - immich.enable = true; jitsi.enable = true; paperless.enable = true; peertube.enable = true; diff --git a/hosts/nixedo/modules/immich.nix b/hosts/nixedo/modules/immich.nix index 51a7a472..24328d1b 100644 --- a/hosts/nixedo/modules/immich.nix +++ b/hosts/nixedo/modules/immich.nix @@ -1,70 +1,25 @@ +{ config, pkgs, ... }: + { - config, - lib, - pkgs, - ... -}: + services.immich = { + enable = true; + group = "media"; + mediaLocation = "/mnt/media/immich"; + }; -with lib; + services.nginx.virtualHosts."photos.oliverdavies.uk" = { + forceSSL = true; + useACMEHost = "oliverdavies.uk"; -let - cfg = homelab.services.${service}; - homelab = config.homelab; - service = "immich"; -in -{ - options.homelab.services.${service} = { - enable = mkEnableOption "Enable ${service}"; - - url = mkOption { - default = "photos.${homelab.domain}"; - type = types.str; - }; - - homepage.name = mkOption { - default = "Immich"; - type = types.str; - }; - - homepage.description = mkOption { - default = "Self-hosted photo and video management solution"; - type = types.str; - }; - - homepage.icon = mkOption { - default = "immich"; - type = types.str; - }; - - homepage.category = mkOption { - default = "Media"; - type = types.str; + locations."/" = { + proxyPass = "http://localhost:${toString config.services.immich.port}"; + proxyWebsockets = true; + recommendedProxySettings = true; }; }; - config = mkIf cfg.enable { - services = { - ${service} = { - enable = true; - group = "media"; - mediaLocation = "/mnt/media/${service}"; - }; - - nginx.virtualHosts."${cfg.url}" = { - forceSSL = true; - useACMEHost = homelab.domain; - - locations."/" = { - proxyPass = "http://localhost:${toString config.services.immich.port}"; - proxyWebsockets = true; - recommendedProxySettings = true; - }; - }; - }; - - environment.systemPackages = with pkgs; [ - immich-cli - immich-go - ]; - }; + environment.systemPackages = with pkgs; [ + immich-cli + immich-go + ]; }