at master 1.4 kB view raw
1{ lib, ... }: 2{ 3 name = "freshrss-pgsql"; 4 meta.maintainers = with lib.maintainers; [ 5 etu 6 stunkymonkey 7 ]; 8 9 nodes.machine = 10 { pkgs, ... }: 11 { 12 services.freshrss = { 13 enable = true; 14 baseUrl = "http://localhost"; 15 passwordFile = pkgs.writeText "password" "secret"; 16 dataDir = "/srv/freshrss"; 17 database = { 18 type = "pgsql"; 19 port = 5432; 20 user = "freshrss"; 21 passFile = pkgs.writeText "db-password" "db-secret"; 22 }; 23 }; 24 25 services.postgresql = { 26 enable = true; 27 ensureDatabases = [ "freshrss" ]; 28 ensureUsers = [ 29 { 30 name = "freshrss"; 31 ensureDBOwnership = true; 32 } 33 ]; 34 initialScript = pkgs.writeText "postgresql-password" '' 35 CREATE ROLE freshrss WITH LOGIN PASSWORD 'db-secret' CREATEDB; 36 ''; 37 }; 38 39 systemd.services."freshrss-config" = { 40 requires = [ "postgresql.target" ]; 41 after = [ "postgresql.target" ]; 42 }; 43 }; 44 45 testScript = '' 46 machine.wait_for_unit("multi-user.target") 47 machine.wait_for_open_port(5432) 48 machine.wait_for_open_port(80) 49 response = machine.succeed("curl -vvv -s -H 'Host: freshrss' http://localhost:80/i/") 50 assert '<title>Login · FreshRSS</title>' in response, "Login page didn't load successfully" 51 ''; 52}