mirror of
https://git.selfprivacy.org/SelfPrivacy/selfprivacy-nixos-config.git
synced 2024-11-25 20:41:27 +00:00
61 lines
1.5 KiB
Nix
61 lines
1.5 KiB
Nix
{ pkgs, lib, config, ... }:
|
|
let
|
|
cfg = config.services.userdata;
|
|
in
|
|
{
|
|
fileSystems = lib.mkIf cfg.useBinds {
|
|
"/var/lib/pleroma" = {
|
|
device = "/volumes/${cfg.pleroma.location}/pleroma";
|
|
options = [ "bind" ];
|
|
};
|
|
"/var/lib/postgresql" = {
|
|
device = "/volumes/${cfg.pleroma.location}/postgresql";
|
|
options = [ "bind" ];
|
|
};
|
|
};
|
|
services = {
|
|
pleroma = {
|
|
enable = cfg.pleroma.enable;
|
|
user = "pleroma";
|
|
group = "pleroma";
|
|
configs = [
|
|
(builtins.replaceStrings
|
|
[ "$DOMAIN" "$LUSER" ]
|
|
[ cfg.domain cfg.username ]
|
|
(builtins.readFile ./config.exs))
|
|
];
|
|
};
|
|
postgresql = {
|
|
enable = true;
|
|
package = pkgs.postgresql_12;
|
|
initialScript = "/etc/setup.psql";
|
|
ensureDatabases = [
|
|
"pleroma"
|
|
];
|
|
ensureUsers = [
|
|
{
|
|
name = "pleroma";
|
|
ensurePermissions = {
|
|
"DATABASE pleroma" = "ALL PRIVILEGES";
|
|
};
|
|
}
|
|
];
|
|
};
|
|
};
|
|
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";
|
|
'';
|
|
users.users.pleroma = {
|
|
extraGroups = [ "postgres" ];
|
|
isNormalUser = false;
|
|
isSystemUser = true;
|
|
group = "pleroma";
|
|
};
|
|
}
|