❄️ Dotfiles for our NixOS system configuration.

feat(services): lanyard (test)

Chloe 45039268 01287e3a

Changed files
+48
secrets
services
+14
secrets/lanyard.age
···
···
+
-----BEGIN AGE ENCRYPTED FILE-----
+
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IGN2U2dKQSBlVkxp
+
NHBSMlhsT1dPaW5MNWQrRGlRMjAvbzY3N1BPQ1pIM3hVSFhhVDNZCmVpOGFNL0o5
+
MlA4T3BxaUxTczluSzJ4MjRrd09hUUp4UzROV1RGaFpsZzgKLT4gc3NoLWVkMjU1
+
MTkgMUNUOTd3IHBPYVUrQjlBaHNJT05Hb3c5c2lBbTdxWVFRZWlBSlZ6SFAreWYr
+
aldtV1kKNEdoY3JDMGVZSGxPQkplc2U2WTAxRVpZM1ZtR0JCT0xPMzZvdTlJNklI
+
RQotPiBzc2gtZWQyNTUxOSBlUDNUdFEgejIzOUJyaWZJZTVJdUhEWVBmS3g2aXdU
+
bjFwWUZ0L2Y3SnhUdFNVSmdodwozc003WTBTbGhTaFJJVTl5ZkFLK0FOclFGbnBI
+
cWtBODM0SUhmc2FOblNFCi0+IFx8LWdyZWFzZSAlSmJuQWNOICNdaHcmY1ogPkhW
+
ZnpFIC4KeEJoeEFkVmhVNUxJMnJpTUh5OHFxdwotLS0gTjA2dnZoRXNodnNCaXZp
+
WnMxeTFaQjRFSG5KTkF0Q3NxQ2IxQUxoY1ZmbwoaKD7OaIbKPTw7UEnX5oXODIWa
+
ktt7tXFbV9T7rHQEyNV/DCi61yxHJzuKG8f+go12O10zLgVPNnW9m7XgU25O5ER6
+
ittiuprOeSSdRQJ5lCkD8BC7G9NCrASh9dQ4SXcfbKqpm91qAhywxXW+hoVxAnLJ
+
-----END AGE ENCRYPTED FILE-----
+1
secrets/secrets.nix
···
"bluesky-pds.age".publicKeys = keys;
"caddy.age".publicKeys = keys;
"glance.age".publicKeys = keys;
}
···
"bluesky-pds.age".publicKeys = keys;
"caddy.age".publicKeys = keys;
"glance.age".publicKeys = keys;
+
"lanyard.age".publicKeys = keys;
}
+1
services/default.nix
···
./caddy
./glance
./bluesky-pds
];
}
···
./caddy
./glance
./bluesky-pds
+
./lanyard
];
}
+32
services/lanyard/default.nix
···
···
+
{ config, ... }:
+
+
{
+
# Redis service (new style)
+
services.redis.servers."lanyard".enable = true;
+
+
# Age secret for Discord bot token
+
age.secrets.lanyard = {
+
file = ../../secrets/lanyard.age;
+
mode = "600";
+
};
+
+
# Lanyard Docker container
+
virtualisation.oci-containers.containers.lanyard = {
+
image = "phineas/lanyard:latest";
+
ports = [ "4001:4001" ];
+
environment = {
+
REDIS_HOST = "localhost";
+
};
+
environmentFiles = [ config.age.secrets.lanyard.path ];
+
extraOptions = [ "--restart=always" ];
+
};
+
+
services.caddy.virtualHosts."lanyard.sappho.systems" = {
+
listenAddresses = [ "::" ];
+
extraConfig = ''
+
import common
+
import tls_cloudflare
+
reverse_proxy http://127.0.0.1:4001
+
'';
+
};
+
}