mirror of
https://git.sr.ht/~magic_rb/dotfiles
synced 2024-12-01 20:46:12 +01:00
aff0158ef7
Signed-off-by: magic_rb <magic_rb@redalder.org>
104 lines
2.7 KiB
Nix
104 lines
2.7 KiB
Nix
{
|
|
makeSystem,
|
|
nixpkgs,
|
|
}:
|
|
makeSystem {
|
|
system = "x86_64-linux";
|
|
name = "nixng-synapse-postgresql";
|
|
inherit nixpkgs;
|
|
config = {
|
|
pkgs,
|
|
config,
|
|
...
|
|
}: {
|
|
config = {
|
|
dumb-init = {
|
|
enable = true;
|
|
type.services = {};
|
|
};
|
|
services.postgresql = {
|
|
enable = true;
|
|
package = pkgs.postgresql_12;
|
|
|
|
initialScript = "/secrets/init.sql";
|
|
enableTCPIP = true;
|
|
|
|
authentication = "host all all all md5";
|
|
|
|
config = {
|
|
max_connections = 70;
|
|
shared_buffers = "384MB";
|
|
effective_cache_size = "1152MB";
|
|
maintenance_work_mem = "96MB";
|
|
checkpoint_completion_target = "0.9";
|
|
wal_buffers = "11796kB";
|
|
default_statistics_target = 100;
|
|
random_page_cost = 4;
|
|
effective_io_concurrency = 2;
|
|
work_mem = "1966kB";
|
|
min_wal_size = "1GB";
|
|
max_wal_size = "4GB";
|
|
max_worker_processes = 24;
|
|
max_parallel_workers_per_gather = 4;
|
|
max_parallel_workers = 24;
|
|
max_parallel_maintenance_workers = 4;
|
|
};
|
|
|
|
ensureDatabases = {
|
|
"synapse" = {
|
|
ENCODING = "UTF8";
|
|
TEMPLATE = "template0";
|
|
};
|
|
"mautrix-facebook" = {
|
|
ENCODING = "UTF8";
|
|
TEMPLATE = "template0";
|
|
};
|
|
"mautrix-signal" = {
|
|
ENCODING = "UTF8";
|
|
TEMPLATE = "template0";
|
|
};
|
|
"mautrix-whatsapp" = {
|
|
ENCODING = "UTF8";
|
|
TEMPLATE = "template0";
|
|
};
|
|
"mautrix-discord" = {
|
|
ENCODING = "UTF8";
|
|
TEMPLATE = "template0";
|
|
};
|
|
"mautrix-slack" = {
|
|
ENCODING = "UTF8";
|
|
TEMPLATE = "template0";
|
|
};
|
|
};
|
|
ensureExtensions = {};
|
|
ensureUsers = [
|
|
{
|
|
name = "synapse";
|
|
ensurePermissions."DATABASE \"synapse\"" = "ALL PRIVILEGES";
|
|
}
|
|
{
|
|
name = "mautrix-facebook";
|
|
ensurePermissions."DATABASE \"mautrix-facebook\"" = "ALL PRIVILEGES";
|
|
}
|
|
{
|
|
name = "mautrix-signal";
|
|
ensurePermissions."DATABASE \"mautrix-signal\"" = "ALL PRIVILEGES";
|
|
}
|
|
{
|
|
name = "mautrix-whatsapp";
|
|
ensurePermissions."DATABASE \"mautrix-whatsapp\"" = "ALL PRIVILEGES";
|
|
}
|
|
{
|
|
name = "mautrix-discord";
|
|
ensurePermissions."DATABASE \"mautrix-discord\"" = "ALL PRIVILEGES";
|
|
}
|
|
{
|
|
name = "mautrix-slack";
|
|
ensurePermissions."DATABASE \"mautrix-slack\"" = "ALL PRIVILEGES";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|