Nix configurations for my homelab
1{ config, ... }:
2{
3 environment.persistence."/data/persistent".directories = [
4 {
5 directory = "/var/lib/pds";
6 mode = "0700";
7 user = "pds";
8 group = "pds";
9 }
10 ];
11
12 sops = {
13 secrets = {
14 "pds/adminPass" = { };
15 "pds/jwtSecret" = { };
16 "pds/plcRotationKeyK256PrivateKeyHex" = { };
17 "butwho-smtp/user" = { };
18 "butwho-smtp/pass" = { };
19 };
20 templates.pds-env.content =
21 let
22 jwtSecret = config.sops.placeholder."pds/jwtSecret";
23 adminPass = config.sops.placeholder."pds/adminPass";
24 plcRotKey = config.sops.placeholder."pds/plcRotationKeyK256PrivateKeyHex";
25 smtpUser = config.sops.placeholder."butwho-smtp/user";
26 smtpPass = config.sops.placeholder."butwho-smtp/pass";
27 in
28 ''
29 PDS_JWT_SECRET=${jwtSecret}
30 PDS_ADMIN_PASSWORD=${adminPass}
31 PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${plcRotKey}
32 PDS_EMAIL_SMTP_URL=smtps://${smtpUser}:${smtpPass}@smtp.purelymail.com
33 '';
34 };
35
36 services.bluesky-pds = {
37 enable = true;
38 pdsadmin.enable = true;
39 settings = {
40 PDS_HOSTNAME = "pds.butwho.org";
41 PDS_EMAIL_FROM_ADDRESS = "pds-noreply@butwho.org";
42 PDS_CONTACT_EMAIL_ADDRESS = "admin@butwho.org";
43 PDS_SERVICE_HANDLE_DOMAINS = ".bwho.ooo";
44 # PDS_INVITE_REQUIRED = "";
45 # PDS_MODERATION_EMAIL_SMTP_URL = "";
46 # PDS_MODERATION_EMAIL_ADDRESS = "";
47 };
48 environmentFiles = [ config.sops.templates.pds-env.path ];
49 };
50}