36 lines
787 B
Nix
36 lines
787 B
Nix
|
|
{
|
||
|
|
lib,
|
||
|
|
config,
|
||
|
|
pkgs,
|
||
|
|
...
|
||
|
|
}:
|
||
|
|
with lib;
|
||
|
|
with lib.custom; let
|
||
|
|
cfg = config.sites.immich;
|
||
|
|
in {
|
||
|
|
options.sites.immich = with types; {
|
||
|
|
enable = mkBoolOpt false "Enable Immich Photo backup";
|
||
|
|
};
|
||
|
|
|
||
|
|
config = mkIf cfg.enable {
|
||
|
|
services.immich.enable = true;
|
||
|
|
services.immich.port = 2283;
|
||
|
|
|
||
|
|
services.nginx.virtualHosts."i.zoeys.photos" = {
|
||
|
|
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;
|
||
|
|
'';
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
}
|