Init
This commit is contained in:
57
hosts/cyper-controller/postgres.nix
Normal file
57
hosts/cyper-controller/postgres.nix
Normal file
@@ -0,0 +1,57 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
{
|
||||
services.postgresql = {
|
||||
enable = true;
|
||||
package = pkgs.postgresql_15;
|
||||
enableTCPIP = true;
|
||||
|
||||
initialScript = pkgs.writeText "backend-init-script" ''
|
||||
CREATE USER postgres WITH SUPERUSER PASSWORD 'postgres';
|
||||
'';
|
||||
|
||||
# x86_64 server optimized settings (8GB+ RAM assumed)
|
||||
settings = {
|
||||
port = 5432;
|
||||
|
||||
# Memory settings
|
||||
shared_buffers = "2GB";
|
||||
effective_cache_size = "6GB";
|
||||
maintenance_work_mem = "512MB";
|
||||
work_mem = "16MB";
|
||||
wal_buffers = "16MB";
|
||||
|
||||
# Connection settings
|
||||
max_connections = 100;
|
||||
|
||||
# Performance tuning for x86_64 SSD
|
||||
random_page_cost = 1.1;
|
||||
effective_io_concurrency = 200;
|
||||
|
||||
# WAL settings
|
||||
wal_level = "replica";
|
||||
checkpoint_timeout = "15min";
|
||||
checkpoint_completion_target = 0.9;
|
||||
min_wal_size = "1GB";
|
||||
max_wal_size = "4GB";
|
||||
|
||||
# Query planning
|
||||
default_statistics_target = 100;
|
||||
|
||||
# Logging
|
||||
log_min_duration_statement = 1000;
|
||||
log_duration = false;
|
||||
};
|
||||
|
||||
authentication = ''
|
||||
local all all trust
|
||||
host all all 127.0.0.1/32 md5
|
||||
host all all ::1/128 md5
|
||||
host all all 192.168.2.0/24 md5
|
||||
'';
|
||||
};
|
||||
|
||||
systemd.services.postgresql.wantedBy = [ "multi-user.target" ];
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 5432 ];
|
||||
}
|
||||
Reference in New Issue
Block a user