aboutsummaryrefslogtreecommitdiff
path: root/modules/storage
diff options
context:
space:
mode:
authorAkshay Nair <phenax5@gmail.com>2025-06-17 00:00:17 +0530
committerAkshay Nair <phenax5@gmail.com>2025-06-17 00:00:17 +0530
commite8344d9f10cc3313c69dc9717d02602645048c1a (patch)
tree7d9d7f1c6eeba36864d6a64956423dae8e124972 /modules/storage
parent926f411a4c703cab001d64b7f8b9701b79a7dc5c (diff)
downloadhomeserver-nixos-config-e8344d9f10cc3313c69dc9717d02602645048c1a.tar.gz
homeserver-nixos-config-e8344d9f10cc3313c69dc9717d02602645048c1a.zip
Add immich
Diffstat (limited to 'modules/storage')
-rw-r--r--modules/storage/default.nix3
-rw-r--r--modules/storage/immich.nix47
2 files changed, 49 insertions, 1 deletions
diff --git a/modules/storage/default.nix b/modules/storage/default.nix
index bbb9267..d4e8da9 100644
--- a/modules/storage/default.nix
+++ b/modules/storage/default.nix
@@ -1,8 +1,9 @@
{ ... }:
{
imports = [
- ./syncthing.nix
./git.nix
+ ./immich.nix
./send.nix
+ ./syncthing.nix
];
}
diff --git a/modules/storage/immich.nix b/modules/storage/immich.nix
new file mode 100644
index 0000000..2f3e4f1
--- /dev/null
+++ b/modules/storage/immich.nix
@@ -0,0 +1,47 @@
+{ settings, ... }:
+let
+ ports = settings.network.ports;
+in
+{
+ systemd.tmpfiles.rules = [
+ "d ${settings.immich.baseDir} 0770 ${settings.immich.user} ${settings.immich.group} - -"
+ ];
+
+ services.immich = {
+ enable = true;
+ host = "0.0.0.0";
+ port = ports.immich;
+ group = settings.immich.group;
+ user = settings.immich.user;
+ openFirewall = true;
+ mediaLocation = settings.immich.baseDir;
+ machine-learning.enable = false;
+ settings = {
+ library.watch.enabled = true;
+ library.scan = {
+ enabled = true;
+ cron = "0 */5 * * *";
+ };
+ trash = {
+ enabled = true;
+ days = 15;
+ };
+ backup.database = {
+ enabled = false;
+ cronExpression = "0 02 * * *";
+ };
+ server.externalDomain = "http://photos.local";
+ passwordLogin.enabled = true;
+ newVersionCheck.enabled = false;
+ map.enabled = false;
+ machineLearning.enabled = false;
+ };
+ };
+
+ users.users.bacchus.extraGroups = [ settings.immich.group ];
+ users.users.${settings.immich.user}.extraGroups = [
+ settings.immich.group
+ settings.syncthing.group
+ settings.media.group
+ ];
+}