selfprivacy-nixos-config/social/pleroma.nix

51 lines
1.2 KiB
Nix
Raw Normal View History

2021-11-15 10:02:05 +00:00
{ pkgs, config, ... }:
let
cfg = config.services.userdata;
in
{
services = {
pleroma = {
enable = cfg.pleroma.enable;
user = "pleroma";
group = "pleroma";
configs = [
2021-11-18 18:19:26 +00:00
(builtins.replaceStrings
2022-07-14 17:42:42 +00:00
[ "$DOMAIN" "$LUSER" ]
[ cfg.domain cfg.username ]
(builtins.readFile ./config.exs))
2021-11-15 10:02:05 +00:00
];
};
postgresql = {
enable = true;
package = pkgs.postgresql_12;
2022-07-15 15:54:14 +00:00
initialScript = "/etc/setup.psql";
2022-07-14 17:42:42 +00:00
ensureDatabases = [
"pleroma"
];
ensureUsers = [
{
name = "pleroma";
ensurePermissions = {
"DATABASE pleroma" = "ALL PRIVILEGES";
};
2022-07-15 12:27:32 +00:00
}
2022-07-14 17:42:42 +00:00
];
2021-11-15 10:02:05 +00:00
};
};
2022-07-15 15:54:14 +00:00
environment.etc."setup.psql".text = ''
CREATE USER pleroma;
CREATE DATABASE pleroma OWNER pleroma;
\c pleroma;
--Extensions made by ecto.migrate that need superuser access
CREATE EXTENSION IF NOT EXISTS citext;
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
'';
2021-11-15 10:02:05 +00:00
users.users.pleroma = {
extraGroups = [ "postgres" ];
2021-11-15 10:29:20 +00:00
isNormalUser = false;
isSystemUser = true;
2022-04-20 10:22:16 +00:00
group = "pleroma";
2021-11-15 10:02:05 +00:00
};
}