{ options , lib , config , pkgs , modulesPath }: let cfg = config.services.ibb; in { options.services.ibb = { enable = lib.mkEnableOption "Enable the IBB service"; port = lib.mkOption { type = lib.types.string; default = "3000"; description = '' The port on which IBB will listen for incoming HTTP traffic. ''; }; }; config = lib.mkIf cfg.enable { systemd.services.ibb = { path = with pkgs; [ ibb bash ]; wantedBy = [ "multi-user.target" ]; script = '' PORT=${cfg.port} ./bin/ibb ''; description = '' Influenced By Books website ''; serviceConfig = { WorkingDirectory = pkgs.ibb; KillSignal = "INT"; Type = "simple"; Restart = "on-abort"; RestartSec = "10"; }; }; }; }