summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsinanmohd <sinan@sinanmohd.com>2025-02-28 22:11:22 +0530
committersinanmohd <sinan@sinanmohd.com>2025-02-28 22:11:22 +0530
commitd72a55ac3369912643c38878e9df36968b024327 (patch)
tree89f10098e9d8add089c014de801244d66b0246de
parent4870446fdc08f066c124ffc148d274942f37b631 (diff)
kay/immich: init
-rw-r--r--os/kay/configuration.nix1
-rw-r--r--os/kay/modules/dns/sinanmohd.com.zone5
-rw-r--r--os/kay/modules/immich.nix23
-rw-r--r--os/kay/modules/www.nix13
4 files changed, 40 insertions, 2 deletions
diff --git a/os/kay/configuration.nix b/os/kay/configuration.nix
index 904e2a1..5331d36 100644
--- a/os/kay/configuration.nix
+++ b/os/kay/configuration.nix
@@ -17,6 +17,7 @@
./modules/postgresql.nix
./modules/github-runner.nix
./modules/nix-cache.nix
+ ./modules/immich.nix
];
boot = {
diff --git a/os/kay/modules/dns/sinanmohd.com.zone b/os/kay/modules/dns/sinanmohd.com.zone
index 31627fc..e0fba5b 100644
--- a/os/kay/modules/dns/sinanmohd.com.zone
+++ b/os/kay/modules/dns/sinanmohd.com.zone
@@ -2,7 +2,7 @@ $ORIGIN sinanmohd.com.
$TTL 2d
@ IN SOA ns1 hostmaster (
- 2025021808 ; serial
+ 2025022804 ; serial
2h ; refresh
5m ; retry
1d ; expire
@@ -14,7 +14,7 @@ $TTL 2d
IN NS ns4.he.net.
IN NS ns5.he.net.
- 30 IN A 127.0.0.1
+ IN A 137.59.84.126
30 IN AAAA ::1
IN MX 10 mail
@@ -42,6 +42,7 @@ bin IN CNAME @
static IN CNAME @
home IN CNAME @
nixbin IN CNAME @
+immich IN CNAME @
lia IN A 65.0.3.127
diff --git a/os/kay/modules/immich.nix b/os/kay/modules/immich.nix
new file mode 100644
index 0000000..5e5eaf4
--- /dev/null
+++ b/os/kay/modules/immich.nix
@@ -0,0 +1,23 @@
+{ config, ... }:
+let
+ domain = config.global.userdata.domain;
+ mediaLocation = "/hdd/immich";
+in
+{
+ services.immich = {
+ enable = true;
+ inherit mediaLocation;
+ settings.server.externalDomain = "https://immich.${domain}";
+ };
+
+ systemd.tmpfiles.settings.immich.${mediaLocation}.d = {
+ group = config.services.immich.group;
+ user = config.services.immich.user;
+ mode = "0755";
+ };
+
+ users.users.immich.extraGroups = [
+ "video"
+ "render"
+ ];
+}
diff --git a/os/kay/modules/www.nix b/os/kay/modules/www.nix
index 2500222..98116e3 100644
--- a/os/kay/modules/www.nix
+++ b/os/kay/modules/www.nix
@@ -115,6 +115,19 @@ in
}"'';
};
+ "immich.${domain}" = defaultOpts // {
+ locations."/" = {
+ proxyWebsockets = true;
+ proxyPass = "http://${config.services.immich.host}:${builtins.toString config.services.immich.port}";
+ };
+
+ extraConfig = ''
+ proxy_buffering off;
+ proxy_request_buffering off;
+ client_max_body_size 0;
+ '';
+ };
+
"nixbin.${domain}" = defaultOpts // {
extraConfig = "proxy_buffering off;";
locations = {