{ pkgs, lib, config, ... }: let affine-static = "/var/lib/affine"; affine-config = config.services.affine; in { config = lib.mkIf affine-config.enable { virtualisation.oci-containers.containers."affine_postgres" = { image = "pgvector/pgvector:pg16"; environment = with affine-config.env; { "POSTGRES_DB" = DB_DATABASE; "POSTGRES_HOST_AUTH_METHOD" = "trust"; "POSTGRES_INITDB_ARGS" = "--data-checksums"; "POSTGRES_PASSWORD" = DB_PASSWORD; "POSTGRES_USER" = DB_USERNAME; }; volumes = [ "${affine-static}/db:/var/lib/postgresql/data:rw" ]; log-driver = "journald"; extraOptions = with affine-config.env; [ "--health-cmd=[\"pg_isready\", \"-U\", \"${DB_USERNAME}\", \"-d\", \"${DB_DATABASE}\"]" "--health-interval=10s" "--health-retries=5" "--health-timeout=5s" "--network-alias=postgres" "--network=affine_default" ]; }; systemd.services."docker-affine_postgres" = { serviceConfig.Restart = lib.mkOverride 90 "always"; after = [ "docker-network-affine_default.service" ]; requires = [ "docker-network-affine_default.service" ]; partOf = [ "docker-compose-affine-root.target" ]; wantedBy = [ "docker-compose-affine-root.target" ]; }; }; }