nixos-module: fix db setup

This commit is contained in:
Astro 2023-08-08 23:23:51 +02:00
parent 104a62d781
commit 0898791a4a

View File

@ -6,9 +6,12 @@ let
blocklistPath = "/etc/caveman.blocklist"; blocklistPath = "/etc/caveman.blocklist";
profanityPath = "/etc/caveman.profanity"; profanityPath = "/etc/caveman.profanity";
dbUser = "caveman";
dbPassword = "c";
hunterDefaultSettings = { hunterDefaultSettings = {
redis = "redis://127.0.0.1:${toString cfg.redis.port}/"; redis = "redis://127.0.0.1:${toString cfg.redis.port}/";
database = "host=/var/run/postgresql user=caveman-hunter dbname=caveman"; database = "host=localhost user=${dbUser} password=${dbPassword} dbname=caveman";
hosts = [ "mastodon.social" ]; hosts = [ "mastodon.social" ];
max_workers = 16; max_workers = 16;
prometheus_port = 9101; prometheus_port = 9101;
@ -34,7 +37,7 @@ let
gathererDefaultSettings = { gathererDefaultSettings = {
redis = "redis://127.0.0.1:${toString cfg.redis.port}/"; redis = "redis://127.0.0.1:${toString cfg.redis.port}/";
database = "host=/var/run/postgresql user=caveman-gatherer dbname=caveman"; database = "host=localhost user=${dbUser} password=${dbPassword} dbname=caveman";
listen_port = 8000; listen_port = 8000;
}; };
@ -150,22 +153,20 @@ in
enable = true; enable = true;
ensureDatabases = [ "caveman" ]; ensureDatabases = [ "caveman" ];
ensureUsers = [ { ensureUsers = [ {
name = "caveman-gatherer"; name = dbUser;
ensurePermissions = {
"DATABASE caveman" = "ALL PRIVILEGES";
};
} {
name = "caveman-hunter";
ensurePermissions = { ensurePermissions = {
"DATABASE caveman" = "ALL PRIVILEGES"; "DATABASE caveman" = "ALL PRIVILEGES";
}; };
} ]; } ];
initialScript = pkgs.writeScript "initScript" ''
ALTER USER ${dbUser} WITH PASSWORD '${dbPassword}';
'';
}; };
systemd.services.caveman-hunter = lib.mkIf cfg.hunter.enable { systemd.services.caveman-hunter = lib.mkIf cfg.hunter.enable {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = [ "redis-caveman.service" ]; requires = [ "redis-caveman.service" ];
after = [ "redis-caveman.service" "network-online.target" ]; after = [ "redis-caveman.service" "postgresql.service" "network-online.target" ];
environment.RUST_LOG = "caveman=${cfg.hunter.logLevel}"; environment.RUST_LOG = "caveman=${cfg.hunter.logLevel}";
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.caveman-hunter}/bin/caveman-hunter ${hunterConfigFile}"; ExecStart = "${pkgs.caveman-hunter}/bin/caveman-hunter ${hunterConfigFile}";
@ -221,7 +222,7 @@ in
systemd.services.caveman-gatherer = lib.mkIf cfg.gatherer.enable { systemd.services.caveman-gatherer = lib.mkIf cfg.gatherer.enable {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = [ "redis-caveman.service" ]; requires = [ "redis-caveman.service" ];
after = [ "redis-caveman.service" "network-online.target" ]; after = [ "redis-caveman.service" "postgresql.service" "network-online.target" ];
environment.RUST_LOG = "caveman=${cfg.gatherer.logLevel}"; environment.RUST_LOG = "caveman=${cfg.gatherer.logLevel}";
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.caveman-gatherer}/bin/caveman-gatherer ${gathererConfigFile}"; ExecStart = "${pkgs.caveman-gatherer}/bin/caveman-gatherer ${gathererConfigFile}";