nixos/{object,toot}: Ensure postgres is accessible on service start

This commit is contained in:
Jack O'Sullivan 2023-02-19 17:39:15 +00:00
parent eceb1ba892
commit c546331129
3 changed files with 14 additions and 7 deletions

View File

@ -126,6 +126,15 @@ rec {
};
};
systemdAwaitPostgres = pkg: host: {
after = [ "systemd-networkd-wait-online.service" ];
preStart = ''
until ${pkg}/bin/pg_isready -h ${host}; do
sleep 0.5
done
'';
};
deploy-rs =
with types;
let

View File

@ -19,7 +19,7 @@
let
inherit (lib) mkMerge mkIf;
inherit (config.my.user.homeConfig.lib.file) mkOutOfStoreSymlink;
inherit (lib.my) networkdAssignment;
inherit (lib.my) networkdAssignment systemdAwaitPostgres;
in
{
config = mkMerge [
@ -63,6 +63,7 @@
MINIO_BROWSER_REDIRECT_URL = "https://minio.nul.ie";
};
};
sharry = systemdAwaitPostgres pkgs.postgresql "colony-psql";
};
};
@ -82,7 +83,6 @@
};
sharry = {
# TODO: wait for postgres connection to succeed
enable = true;
configOverridesFile = config.age.secrets."object/sharry.conf".path;

View File

@ -17,8 +17,8 @@
configuration = { lib, pkgs, config, assignments, allAssignments, ... }:
let
inherit (lib) mkMerge mkIf genAttrs mkBefore;
inherit (lib.my) networkdAssignment;
inherit (lib) mkMerge mkIf genAttrs;
inherit (lib.my) networkdAssignment systemdAwaitPostgres;
in
{
config = mkMerge [
@ -61,9 +61,7 @@
mastodon-init-dirs.script = ''
echo "AWS_SECRET_ACCESS_KEY=\""$(< ${config.age.secrets."toot/s3-secret-key.txt".path})"\"" >> /var/lib/mastodon/.secrets_env
'';
mastodon-init-db = {
after = [ "systemd-networkd-wait-online.service" ];
};
mastodon-init-db = systemdAwaitPostgres pkgs.postgresql "colony-psql";
# Can't use the extraConfig because these services expect a different format for the both family bind address...
mastodon-streaming.environment.BIND = "::";