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:
2
secrets
2
secrets
Submodule secrets updated: 0e94e9e2ef...9efd6ac7e1
@@ -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
|
||||||
|
|||||||
@@ -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
54
systems/ful/ledger.nix
Normal 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}";
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user