flock/modules/webone.nix

63 lines
1.4 KiB
Nix

{
config,
lib,
userPackages,
...
}:
with lib; let
cfg = config.services.webone;
in {
options.services.webone.enable = mkEnableOption "Enable WebOne HTTP proxy.";
config = mkIf cfg.enable {
users.groups.webone = {};
users.users.webone = {
createHome = true;
isSystemUser = true;
home = "/var/lib/webone";
group = "webone";
};
systemd.tmpfiles.settings = {
"10-webone" = {
"/var/log/webone.log" = {
f = {
group = "webone";
mode = "0664";
user = "webone";
};
};
"/etc/webone.conf.d" = {
d = {
group = "webone";
mode = "0755";
user = "webone";
};
};
};
};
systemd.services.webone = {
description = "WebOne HTTP Proxy Server";
documentation = ["https://github.com/atauenis/webone/wiki/"];
requires = ["network-online.target"];
after = ["network-online.target"];
wantedBy = ["default.target"];
startLimitIntervalSec = 5;
startLimitBurst = 3;
environment = {
OPENSSL_CONF = "${userPackages.webone}/lib/webone/openssl_webone.cnf";
};
serviceConfig = {
Type = "simple";
User = "webone";
Group = "webone";
ExecStart = "${userPackages.webone}/bin/webone";
TimeoutStopSec = "10";
Restart = "on-failure";
RestartSec = "5";
};
};
};
}