treeadvisor/nixos-module.nix

55 lines
1.2 KiB
Nix

{ pkgs, config, lib, ... }:
let
in
{
config = {
networking.hostName = "treeadvisor";
users.users.treeadvisor = {
isSystemUser = true;
group = "treeadvisor";
};
users.groups.treeadvisor = {};
services.postgresql = {
enable = true;
extraPlugins = with pkgs; [ postgis ];
# TODO: tmp
enableTCPIP = true;
authentication = ''
host all all 0.0.0.0/0 md5
'';
ensureDatabases = [ "treeadvisor" ];
ensureUsers = [ {
name = "treeadvisor";
ensurePermissions = {
"DATABASE treeadvisor" = "ALL PRIVILEGES";
};
} ];
};
systemd.tmpfiles.rules = [
"d /var/lib/treeadvisor 0755 treeadvisor treeadvisor -"
];
systemd.services.treeadvisor-db-init = {
wantedBy = [ "multi-user.target" ];
unitConfig.ConditionPathExists = [ "!/var/lib/treeadvisor/.db-init" ];
serviceConfig = {
User = "treeadvisor";
Group = "treeadvisor";
};
environment.HOME = "/tmp";
script = ''
cd /var/lib/treeadvisor
${(import ./. { inherit pkgs; }).init-database}
touch /var/lib/treeadvisor/.db-init
'';
};
};
}