1
0
mirror of https://github.com/kmein/niveum synced 2026-03-16 10:11:08 +01:00

feat: host ledger on ful

This commit is contained in:
2023-09-05 11:45:15 +02:00
parent 88257e9ffb
commit c63cb4d157
4 changed files with 57 additions and 1 deletions

Submodule secrets updated: 0e94e9e2ef...9efd6ac7e1

View File

@@ -24,6 +24,7 @@ secrets/kabsa-specus-privateKey.age
secrets/kabsa-syncthing-cert.age secrets/kabsa-syncthing-cert.age
secrets/kabsa-syncthing-key.age secrets/kabsa-syncthing-key.age
secrets/kfm-password.age secrets/kfm-password.age
secrets/ledger-basicAuth.age
secrets/makanek-retiolum-privateKey-ed25519.age secrets/makanek-retiolum-privateKey-ed25519.age
secrets/makanek-retiolum-privateKey-rsa.age secrets/makanek-retiolum-privateKey-rsa.age
secrets/makanek-specus-privateKey.age secrets/makanek-specus-privateKey.age

View File

@@ -11,6 +11,7 @@ in {
./matomo.nix ./matomo.nix
./radio.nix ./radio.nix
./panoptikon.nix ./panoptikon.nix
./ledger.nix
../../configs/monitoring.nix ../../configs/monitoring.nix
../../configs/tor.nix ../../configs/tor.nix
../../configs/save-space.nix ../../configs/save-space.nix

54
systems/ful/ledger.nix Normal file
View File

@@ -0,0 +1,54 @@
{
config,
pkgs,
...
}: {
services.hledger-web = {
enable = true;
capabilities = {
add = true;
view = true;
manage = false;
};
serveApi = false; # serve only the JSON API
baseUrl = "https://ledger.kmein.de";
journalFiles = [
"privat.journal"
];
};
systemd.services.hledger-backup = {
enable = true;
startAt = "hourly";
wants = ["network-online.target"];
wantedBy = ["multi-user.target"];
script = ''
${pkgs.git}/bin/git config user.name "hledger-web"
${pkgs.git}/bin/git config user.email "hledger-web@${config.networking.hostName}"
${pkgs.git}/bin/git commit -am $(date -Ih)
${pkgs.git}/bin/git pull --rebase
${pkgs.git}/bin/git push
'';
serviceConfig = {
User = "hledger";
Group = "hledger";
WorkingDirectory = config.services.hledger-web.stateDir;
};
};
age.secrets = {
ledger-basicAuth = {
file = ../../secrets/ledger-basicAuth.age;
owner = "nginx";
group = "nginx";
mode = "400";
};
};
services.nginx.virtualHosts."ledger.kmein.de" = {
enableACME = true;
basicAuthFile = config.age.secrets.ledger-basicAuth.path;
forceSSL = true;
locations."/".proxyPass = "http://127.0.0.1:${toString config.services.hledger-web.port}";
};
}