aboutsummaryrefslogtreecommitdiff
path: root/modules/storage/immich.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/storage/immich.nix')
-rw-r--r--modules/storage/immich.nix47
1 files changed, 47 insertions, 0 deletions
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
+ ];
+}