at 17.09-beta 1.1 kB view raw
1{ config, lib, pkgs, ... }: 2 3with lib; 4 5let 6 7 cfg = config.services.calibre-server; 8 9in 10 11{ 12 13 ###### interface 14 15 options = { 16 17 services.calibre-server = { 18 19 enable = mkEnableOption "calibre-server"; 20 21 libraryDir = mkOption { 22 description = '' 23 The directory where the Calibre library to serve is. 24 ''; 25 type = types.path; 26 }; 27 28 }; 29 30 }; 31 32 33 ###### implementation 34 35 config = mkIf cfg.enable { 36 37 systemd.services.calibre-server = 38 { 39 description = "Calibre Server"; 40 after = [ "network.target" ]; 41 wantedBy = [ "multi-user.target" ]; 42 serviceConfig = { 43 User = "calibre-server"; 44 Restart = "always"; 45 ExecStart = "${pkgs.calibre}/bin/calibre-server --with-library=${cfg.libraryDir}"; 46 }; 47 48 }; 49 50 environment.systemPackages = [ pkgs.calibre ]; 51 52 users.extraUsers.calibre-server = { 53 uid = config.ids.uids.calibre-server; 54 group = "calibre-server"; 55 }; 56 57 users.extraGroups.calibre-server = { 58 gid = config.ids.gids.calibre-server; 59 }; 60 61 }; 62 63}