1{ lib, ... }:
2{
3 name = "pgweb";
4 meta.maintainers = [ lib.maintainers.zupo ];
5
6 nodes.machine =
7 { config, pkgs, ... }:
8 {
9 services.postgresql = {
10 enable = true;
11 authentication = ''
12 host all all ::1/128 trust
13 '';
14 };
15 environment.systemPackages = [ pkgs.pgweb ];
16
17 systemd.services.myservice = {
18 serviceConfig = {
19 ExecStart = "${pkgs.pgweb}/bin/pgweb --url postgresql://postgres@localhost:5432/postgres";
20 };
21 path = [ pkgs.getent ];
22 after = [ "postgresql.target" ];
23 wantedBy = [ "multi-user.target" ];
24 };
25 };
26
27 testScript = ''
28 machine.wait_for_unit("myservice.service")
29 machine.wait_for_open_port(8081)
30 machine.wait_until_succeeds("curl -sSf localhost:8081 | grep '<div class=\"title\">Table Information</div>'")
31 '';
32}