{ config, pkgs, lib, ... }: { systemd.tmpfiles.rules = [ "d /data/pg 0750 postgres postgres" ]; services.postgresql = { enable = true; package = pkgs.postgresql_14; enableTCPIP = true; authentication = pkgs.lib.mkOverride 10 '' # TYPE, DATABASE, USER, ADDRESS, METHOD local all all trust host all all 127.0.0.1/32 trust host all all ::1/128 trust host matrix-synapse-spacebar-chat matrix-synapse-spacebar-chat 192.168.1.5/32 trust host all all 0.0.0.0/0 md5 ''; initialScript = pkgs.writeText "backend-initScript" '' CREATE ROLE matrix-synapse-spacebar-chat WITH LOGIN PASSWORD '${pkgs.postgresql_14}' CREATEDB; CREATE DATABASE matrix-synapse-spacebar-chat; GRANT ALL PRIVILEGES ON DATABASE matrix-synapse-spacebar-chat TO matrix-synapse-spacebar-chat; ''; dataDir = "/data/pg"; settings = { "max_connections" = "100"; "shared_buffers" = "128MB"; "max_wal_size" = "1GB"; "min_wal_size" = "80MB"; }; }; }