add immich

This commit is contained in:
Noah Masur 2024-12-05 21:58:46 +00:00
parent 00f23f4b9c
commit 1b04f9a883
No known key found for this signature in database
5 changed files with 49 additions and 0 deletions

View File

@ -259,6 +259,7 @@
notifications = "ntfy.${baseName}";
prometheus = "prom.${baseName}";
paperless = "paper.${baseName}";
photos = "photos.${baseName}";
secrets = "vault.${baseName}";
stream = "stream.${baseName}";
content = "cloud.${baseName}";

View File

@ -109,6 +109,7 @@ inputs.nixpkgs.lib.nixosSystem rec {
services.audiobookshelf.enable = true;
services.bind.enable = true;
services.caddy.enable = true;
services.immich.enable = true;
services.jellyfin.enable = true;
services.nextcloud.enable = true;
services.calibre-web.enable = true;

View File

@ -101,6 +101,10 @@
type = lib.types.str;
description = "Hostname for document server (paperless-ngx).";
};
photos = lib.mkOption {
type = lib.types.str;
description = "Hostname for photo management (Immich).";
};
prometheus = lib.mkOption {
type = lib.types.str;
description = "Hostname for Prometheus server.";

View File

@ -15,6 +15,7 @@
./cloudflare.nix
./filebrowser.nix
./identity.nix
./immich.nix
./irc.nix
./gitea-runner.nix
./gitea.nix

View File

@ -0,0 +1,42 @@
{ config, lib, ... }:
{
config = lib.mkIf config.services.immich.enable {
services.immich = {
port = 2283;
group = "shared";
database.enable = true;
redis.enable = true;
machine-learning.enable = true;
machine-learning.environment = { };
mediaLocation = "/data/images";
secretsFile = null;
settings.server.externalDomain = "https://${config.hostnames.photos}";
environment = {
IMMICH_ENV = "production";
IMMICH_LOG_LEVEL = "log";
NO_COLOR = "false";
IMMICH_TRUSTED_PROXIES = "127.0.0.1";
};
};
caddy.routes = [
{
match = [ { host = [ config.hostnames.photos ]; } ];
handle = [
{
handler = "reverse_proxy";
upstreams = [ { dial = "localhost:${builtins.toString config.services.immich.port}"; } ];
}
];
}
];
# Configure Cloudflare DNS to point to this machine
services.cloudflare-dyndns.domains = [ config.hostnames.photos ];
};
}