nixos module for actual
This commit is contained in:
parent
c6a9f51675
commit
f42cc7b10e
43
flake.nix
43
flake.nix
|
@ -122,5 +122,48 @@
|
|||
"${pname}" = package;
|
||||
default = package;
|
||||
};
|
||||
nixosModules.default = { lib, config, ... }:
|
||||
with lib;
|
||||
let
|
||||
cfg = config.services.actual-server;
|
||||
dataDir = "/var/lib/actual";
|
||||
cfgFile = writeText "actual.json" (builtins.toJSON {
|
||||
inherit dataDir;
|
||||
inherit (cfg) hostname port;
|
||||
serverFiles = "${dataDir}/server-files";
|
||||
userFiles = "${dataDir}/user-files";
|
||||
});
|
||||
in {
|
||||
options.services.actual = {
|
||||
enable = mkEnableOption "Actual budget server";
|
||||
hostname = mkOption { type = types.str; default = "127.0.0.1"; };
|
||||
port = mkOption { type = types.port; default = 5006; };
|
||||
};
|
||||
config = mkIf cfg.enable {
|
||||
users.users.actual = {
|
||||
name = "actual";
|
||||
group = "actual";
|
||||
isSystemUser = true;
|
||||
};
|
||||
|
||||
users.groups.actual = {};
|
||||
|
||||
systemd.services.actual-server = {
|
||||
description = "Actual budget server";
|
||||
documentation = [ "https://actualbudget.org/docs/" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "networking.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${package}/bin/actual";
|
||||
Restart = "always";
|
||||
User = "actual";
|
||||
Group = "actual";
|
||||
PrivateTmp = true;
|
||||
StateDirectory = "actual";
|
||||
};
|
||||
environment.ACTUAL_CONFIG_PATH = "${cfgFile}";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue