Monorepo for Tangled
tangled.org
1{
2 config,
3 pkgs,
4 lib,
5 ...
6}: let
7 cfg = config.services.bluesky-relay;
8in
9 with lib; {
10 options.services.bluesky-relay = {
11 enable = mkEnableOption "relay server";
12 package = mkPackageOption pkgs "bluesky-relay" {};
13 };
14 config = mkIf cfg.enable {
15 systemd.services.bluesky-relay = {
16 description = "bluesky relay";
17 after = ["network.target" "pds.service"];
18 wantedBy = ["multi-user.target"];
19
20 serviceConfig = {
21 User = "relay";
22 Group = "relay";
23 StateDirectory = "relay";
24 StateDirectoryMode = "0755";
25 Environment = [
26 "RELAY_ADMIN_PASSWORD=password"
27 "RELAY_PLC_HOST=https://plc.tngl.boltless.dev"
28 "DATABASE_URL=sqlite:///var/lib/relay/relay.sqlite"
29 "RELAY_IP_BIND=:2470"
30 "RELAY_PERSIST_DIR=/var/lib/relay"
31 "RELAY_DISABLE_REQUEST_CRAWL=0"
32 "RELAY_INITIAL_SEQ_NUMBER=1"
33 "RELAY_ALLOW_INSECURE_HOSTS=1"
34 ];
35 ExecStart = "${getExe cfg.package} serve";
36 Restart = "always";
37 RestartSec = 5;
38 };
39 };
40 users = {
41 users.relay = {
42 group = "relay";
43 isSystemUser = true;
44 };
45 groups.relay = {};
46 };
47 };
48 }