From 3c18ab894a56b9140548e90325a2f3ff91fe4004 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Thu, 13 Feb 2020 05:32:15 -0500 Subject: Add pjournal service --- config/pjournal.nix | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 config/pjournal.nix diff --git a/config/pjournal.nix b/config/pjournal.nix new file mode 100644 index 0000000..ab558da --- /dev/null +++ b/config/pjournal.nix @@ -0,0 +1,59 @@ +{ config, lib, pkgs, ... }: +with lib; +let + cfg = config.services.pjournal; +in +{ + options = { + services.pjournal = { + package = mkOption { + type = types.package; + default = pkgs.callPackage ../pkgs/pjournal/default.nix {}; + }; + }; + }; + + config = { + environment.systemPackages = [ + cfg.package + ]; + + services.postgresql = { + enable = true; + ensureDatabases = ["pjournal" "pjournal_test"]; + ensureUsers = [ + { + name = "pjournal"; + ensurePermissions = { + "DATABASE pjournal" = "ALL PRIVILEGES"; + }; + } + { + name = "pjournal_test"; + ensurePermissions = { + "DATABASE pjournal_test" = "ALL PRIVILEGES"; + }; + } + ]; + }; + + systemd.services.pjournal-test = { + description = "pjournal test instance"; + after = [ "multi-user.target" "postgresql.service" ]; + wantedBy = ["multi-user.target"]; + environment = { + RUST_BACKTRACE = "1"; + }; + serviceConfig = { + ExecStart = '' + # This will fail the first time. Run pjournal init to initialize + # the database. + ${cfg.package}/bin/pjournal \ + --database_url postgres://pjournal_test@/pjournal_test + ''; + User = "pjournal_test"; + }; + }; + + }; +} -- cgit v1.2.3