diff --git a/hosts/marvin/services/shelfmark.nix b/hosts/marvin/services/shelfmark.nix index b25be138..7dec2e74 100644 --- a/hosts/marvin/services/shelfmark.nix +++ b/hosts/marvin/services/shelfmark.nix @@ -1,4 +1,9 @@ -{ self, config, ... }: +{ + self, + config, + pkgs, + ... +}: let d = self.lib.data.services.shelfmark; sec = config.age.secrets; @@ -7,28 +12,28 @@ in systemd.tmpfiles.settings = { "10-shelfmark" = { "/var/lib/shelfmark/config".d = { - user = "booklore"; - group = "booklore"; + user = "shelfmark"; + group = "shelfmark"; mode = "0750"; }; "/var/media/books/unorganized".d = { - user = "booklore"; - group = "booklore"; + user = "shelfmark"; + group = "shelfmark"; mode = "0666"; }; }; }; - virtualisation.oci-containers.containers.shelfmark = { - image = "ghcr.io/calibrain/shelfmark:latest"; - ports = [ "${toString d.port}:8084" ]; - environmentFiles = [ sec.shelfmark-secrets.path ]; - environment = { - PUID = toString config.users.users.booklore.uid; - PGID = toString config.users.groups.booklore.gid; - # General Config + services.shelfmark = { + enable = true; + package = pkgs.shelfmark-full; + environment = { + FLASK_HOST = "0.0.0.0"; + FLASK_PORT = d.port; + # General settings CALIBRE_WEB_URL = "https://lib.pyrox.dev"; # Downloads + INGEST_DIR = "/var/media/books/unorganized"; TEMPLATE_RENAME = "{Author} - {Title} ({Year})"; FILE_ORGANIZATION = "rename"; # Auth @@ -43,12 +48,12 @@ in HARDCOVER_ENABLED = "true"; OPENLIBRARY_ENABLED = "true"; }; - volumes = [ - "/var/lib/shelfmark/config:/config" - "/var/media/books/unorganized:/books" - ]; }; + systemd.services.shelfmark.serviceConfig.EnvironmentFile = [ sec.shelfmark-secrets.path ]; + # Allow grimmory to delete files from INGEST_DIR + systemd.services.grimmory.serviceConfig.SupplementaryGroups = [ "shelfmark" ]; + age.secrets.shelfmark-secrets = { file = ./secrets/shelfmark-secrets.age; owner = "booklore";