
This avoids restarting the postgresql server, when only ensureDatabases or ensureUsers have been changed. It will also allow to properly wait for recovery to finish later. To wait for "postgresql is ready" in other services, we now provide a postgresql.target. Resolves #400018 Co-authored-by: Marcel <me@m4rc3l.de>
33 lines
871 B
Nix
33 lines
871 B
Nix
{ lib, ... }:
|
|
{
|
|
name = "pgweb";
|
|
meta.maintainers = [ lib.maintainers.zupo ];
|
|
|
|
nodes.machine =
|
|
{ config, pkgs, ... }:
|
|
{
|
|
services.postgresql = {
|
|
enable = true;
|
|
authentication = ''
|
|
host all all ::1/128 trust
|
|
'';
|
|
};
|
|
environment.systemPackages = [ pkgs.pgweb ];
|
|
|
|
systemd.services.myservice = {
|
|
serviceConfig = {
|
|
ExecStart = "${pkgs.pgweb}/bin/pgweb --url postgresql://postgres@localhost:5432/postgres";
|
|
};
|
|
path = [ pkgs.getent ];
|
|
after = [ "postgresql.target" ];
|
|
wantedBy = [ "multi-user.target" ];
|
|
};
|
|
};
|
|
|
|
testScript = ''
|
|
machine.wait_for_unit("myservice.service")
|
|
machine.wait_for_open_port(8081)
|
|
machine.wait_until_succeeds("curl -sSf localhost:8081 | grep '<div class=\"title\">Table Information</div>'")
|
|
'';
|
|
}
|