summaryrefslogtreecommitdiff
path: root/modules/hledger-web.nix
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2021-07-14 21:17:58 -0400
committerKjetil Orbekk <kj@orbekk.com>2021-07-14 21:17:58 -0400
commit91324bc602ead478b956b2602d1658ff2830adc7 (patch)
tree771be1c83bb6c0435e1fd942e380b6e24b612b66 /modules/hledger-web.nix
parent0e2dc6e7084340c12b9e7c4e8ecb7700305318a0 (diff)
add hledger service
Diffstat (limited to 'modules/hledger-web.nix')
-rw-r--r--modules/hledger-web.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/modules/hledger-web.nix b/modules/hledger-web.nix
new file mode 100644
index 0000000..57faed6
--- /dev/null
+++ b/modules/hledger-web.nix
@@ -0,0 +1,41 @@
+{ config, lib, pkgs, ... }:
+
+let
+ cfg = config.orbekk.hledger-web;
+ aliases = import ../data/aliases.nix;
+in {
+ options = {
+ orbekk.hledger-web = {
+ enable = lib.mkEnableOption "Enable hledger-web";
+ journalFile = lib.mkOption {
+ type = lib.types.str;
+ description = "Path to journal file";
+ };
+ port = lib.mkOption {
+ type = lib.types.int;
+ default = aliases.services.hledger-web.port;
+ };
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ systemd.services.hledger-web = {
+ description = "Hledger Web";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+ path = with pkgs; [ hledger hledger-web git ];
+
+ serviceConfig = {
+ User = "hledger";
+ Group = "hledger";
+ StateDirectory = "hledger-web";
+ StateDirectoryMode = "770";
+ };
+
+ script = ''
+ cd /var/lib/hledger-web
+ hledger-web -f ${cfg.journalFile} --auto --port ${cfg.port}
+ '';
+ };
+ };
+}