nix/lib/modules/nixos/postgres.nix

52 lines
1.2 KiB
Nix
Raw Normal View History

2025-02-16 10:43:53 -06:00
{
pkgs,
lib,
config,
...
}:
{
2025-02-16 11:17:59 -06:00
config = lib.mkIf config.services.postgresql.enable {
# this is really just for development usage
services.postgresql = {
# enable = true;
ensureDatabases = [ "daniel" ];
ensureUsers = [
{
name = "daniel";
ensureDBOwnership = true;
}
];
# enableTCPIP = true;
2025-02-16 10:43:53 -06:00
2025-02-16 11:17:59 -06:00
package = pkgs.postgresql_15;
2025-02-16 10:43:53 -06:00
2025-02-16 11:17:59 -06:00
authentication = pkgs.lib.mkOverride 10 ''
#type database DBuser auth-method
local all postgres peer map=superuser_map
local all daniel peer map=superuser_map
local sameuser all peer map=superuser_map
2025-02-16 10:43:53 -06:00
2025-02-16 11:17:59 -06:00
# lan ipv4
host all all 10.0.0.0/24 trust
host all all 127.0.0.1/32 trust
# tailnet ipv4
host all all 100.64.0.0/10 trust
'';
identMap = ''
# ArbitraryMapName systemUser DBUser
superuser_map root postgres
superuser_map postgres postgres
superuser_map daniel postgres
2025-02-16 10:43:53 -06:00
2025-02-16 11:17:59 -06:00
superuser_map /^(.*)$ \1 # Let other names login as themselves
'';
};
environment.systemPackages = with pkgs; [
pgcli
];
2025-02-16 10:43:53 -06:00
};
}