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
|
|
|
};
|
|
|
|
}
|