63 lines
1.4 KiB
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";
|
|
};
|
|
};
|
|
};
|
|
}
|