dotfiles/nixos/modules/services/hLedger/default.nix

73 lines
1.2 KiB
Nix
Raw Normal View History

2025-01-21 21:58:09 -06:00
{
flake,
2025-01-21 22:52:36 -06:00
pkgs,
2025-01-21 21:58:09 -06:00
...
}:
let
inherit (flake.config.machines.devices)
server
;
inherit (flake.config.services.instances)
hledger
web
;
service = hledger;
localhost = web.localhost.address0;
in
{
2025-01-21 22:03:48 -06:00
services = {
hledger-web = {
enable = true;
host = localhost;
# baseUrl = "https://${host}";
2025-01-21 22:03:48 -06:00
stateDir = service.paths.path0;
port = service.ports.port0;
2025-01-21 23:22:49 -06:00
journalFiles = [
".hledger.journal"
];
2025-01-21 22:03:48 -06:00
allow = "edit";
};
2025-01-21 21:58:09 -06:00
};
2025-01-22 00:19:22 -06:00
environment = {
systemPackages = builtins.attrValues {
inherit (pkgs)
hledger
hledger-ui
;
};
};
2025-01-21 22:52:36 -06:00
2025-01-21 23:29:56 -06:00
users = {
users.${service.name} = {
isSystemUser = true;
group = service.name;
home = service.paths.path0;
};
groups.${service.name} = { };
};
2025-01-21 23:00:38 -06:00
fileSystems."/var/lib/${service.name}" = {
device = service.paths.path0;
fsType = "none";
options = [
"bind"
];
depends = [
server.storage0.mount
];
};
systemd.tmpfiles.rules = [
"Z ${service.paths.path0} 0755 ${service.name} ${service.name} -"
];
2025-01-21 21:58:09 -06:00
2025-01-21 23:00:38 -06:00
networking = {
firewall = {
allowedTCPPorts = [
service.ports.port0
];
};
};
2025-01-21 21:58:09 -06:00
}