about summary refs log tree commit diff
path: root/nixos/modules/services/web-apps/kavita.nix
diff options
context:
space:
mode:
authorGabriel Fontes <hi@m7.rs>2023-04-30 00:27:25 -0300
committerAnderson Torres <torres.anderson.85@protonmail.com>2023-05-06 13:57:53 -0300
commit16b3b0c53b1ee8936739f8c588544e7fcec3fc60 (patch)
tree9b74f9c20948468882efead8e43a4f5a20df4c23 /nixos/modules/services/web-apps/kavita.nix
parente2854d332d34310763b60ade9d86bcedfac99e5c (diff)
downloadnixlib-16b3b0c53b1ee8936739f8c588544e7fcec3fc60.tar
nixlib-16b3b0c53b1ee8936739f8c588544e7fcec3fc60.tar.gz
nixlib-16b3b0c53b1ee8936739f8c588544e7fcec3fc60.tar.bz2
nixlib-16b3b0c53b1ee8936739f8c588544e7fcec3fc60.tar.lz
nixlib-16b3b0c53b1ee8936739f8c588544e7fcec3fc60.tar.xz
nixlib-16b3b0c53b1ee8936739f8c588544e7fcec3fc60.tar.zst
nixlib-16b3b0c53b1ee8936739f8c588544e7fcec3fc60.zip
nixos/tests/kavita: init
Diffstat (limited to 'nixos/modules/services/web-apps/kavita.nix')
-rw-r--r--nixos/modules/services/web-apps/kavita.nix20
1 files changed, 9 insertions, 11 deletions
diff --git a/nixos/modules/services/web-apps/kavita.nix b/nixos/modules/services/web-apps/kavita.nix
index 040737eb3b2d..e28b204f1bbe 100644
--- a/nixos/modules/services/web-apps/kavita.nix
+++ b/nixos/modules/services/web-apps/kavita.nix
@@ -12,12 +12,7 @@ in {
       description = lib.mdDoc "User account under which Kavita runs.";
     };
 
-    package = lib.mkOption {
-      type = lib.types.package;
-      default = pkgs.kavita;
-      defaultText = "pkgs.kavita";
-      description = lib.mdDoc "Kavita package to use.";
-    };
+    package = lib.mkPackageOptionMD pkgs "kavita" { };
 
     dataDir = lib.mkOption {
       default = "/var/lib/kavita";
@@ -40,8 +35,8 @@ in {
     ipAdresses = lib.mkOption {
       default = ["0.0.0.0" "::"];
       type = lib.types.listOf lib.types.str;
-      description = lib.mdDoc "IP Adresses to bind to. The default is to bind to all IPv4
-      and IPv6 addresses.";
+      description = lib.mdDoc "IP Adresses to bind to. The default is to bind
+      to all IPv4 and IPv6 addresses.";
     };
   };
 
@@ -51,7 +46,7 @@ in {
       wantedBy = [ "multi-user.target" ];
       after = [ "network.target" ];
       preStart = ''
-        mkdir -p "${cfg.dataDir}/config"
+        umask u=rwx,g=rx,o=
         cat > "${cfg.dataDir}/config/appsettings.json" <<EOF
         {
           "TokenKey": "$(cat ${cfg.tokenKeyFile})",
@@ -59,7 +54,6 @@ in {
           "IpAddresses": "${lib.concatStringsSep "," cfg.ipAdresses}"
         }
         EOF
-        chmod 640 ${cfg.dataDir}/config/appsettings.json
       '';
       serviceConfig = {
         WorkingDirectory = cfg.dataDir;
@@ -69,13 +63,17 @@ in {
       };
     };
 
+    systemd.tmpfiles.rules = [
+      "d '${cfg.dataDir}'        0750 ${cfg.user} ${cfg.user} - -"
+      "d '${cfg.dataDir}/config' 0750 ${cfg.user} ${cfg.user} - -"
+    ];
+
     users = {
       users.${cfg.user} = {
         description = "kavita service user";
         isSystemUser = true;
         group = cfg.user;
         home = cfg.dataDir;
-        createHome = true;
       };
       groups.${cfg.user} = { };
     };