diff options
author | Felix Buehler <account@buehler.rocks> | 2023-01-06 01:25:34 +0100 |
---|---|---|
committer | Felix Buehler <account@buehler.rocks> | 2023-01-06 21:16:50 +0100 |
commit | 0e2787884e7d6c60e51da9e1c158e75406cac7a9 (patch) | |
tree | 4aa4249b48b51f4b4799bacc28f57e2216a3895c /nixos/tests/freshrss-pgsql.nix | |
parent | 1a6f1bfe581596614a5ebe58945a2512266c973c (diff) |
nixos/freshrss: fix permissions and add database test
Diffstat (limited to 'nixos/tests/freshrss-pgsql.nix')
-rw-r--r-- | nixos/tests/freshrss-pgsql.nix | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/nixos/tests/freshrss-pgsql.nix b/nixos/tests/freshrss-pgsql.nix new file mode 100644 index 0000000000000..055bd51ed43d7 --- /dev/null +++ b/nixos/tests/freshrss-pgsql.nix @@ -0,0 +1,48 @@ +import ./make-test-python.nix ({ lib, pkgs, ... }: { + name = "freshrss"; + meta.maintainers = with lib.maintainers; [ etu stunkymonkey ]; + + nodes.machine = { pkgs, ... }: { + services.freshrss = { + enable = true; + baseUrl = "http://localhost"; + passwordFile = pkgs.writeText "password" "secret"; + dataDir = "/srv/freshrss"; + database = { + type = "pgsql"; + port = 5432; + user = "freshrss"; + passFile = pkgs.writeText "db-password" "db-secret"; + }; + }; + + services.postgresql = { + enable = true; + ensureDatabases = [ "freshrss" ]; + ensureUsers = [ + { + name = "freshrss"; + ensurePermissions = { + "DATABASE freshrss" = "ALL PRIVILEGES"; + }; + } + ]; + initialScript = pkgs.writeText "postgresql-password" '' + CREATE ROLE freshrss WITH LOGIN PASSWORD 'db-secret' CREATEDB; + ''; + }; + + systemd.services."freshrss-config" = { + requires = [ "postgresql.service" ]; + after = [ "postgresql.service" ]; + }; + }; + + testScript = '' + machine.wait_for_unit("multi-user.target") + machine.wait_for_open_port(5432) + machine.wait_for_open_port(80) + response = machine.succeed("curl -vvv -s -H 'Host: freshrss' http://127.0.0.1:80/i/") + assert '<title>Login ยท FreshRSS</title>' in response, "Login page didn't load successfully" + ''; +}) |