This repository has no description
2.1 kB
81 lines
1{
2 config,
3 pkgs,
4 ...
5}:
6{
7 # Generate Radicle identity keys using clan vars
8 clan.core.vars.generators.radicle = {
9 files."radicle.key" = { };
10 files."radicle.pub".secret = false;
11 runtimeInputs = [ pkgs.openssh ];
12 script = ''
13 ssh-keygen -t ed25519 -N "" -C "radicle" -f "$out/radicle.key"
14 mv "$out/radicle.key.pub" "$out/radicle.pub"
15 '';
16 };
17
18 services.radicle = {
19 enable = true;
20 privateKey = config.clan.core.vars.generators.radicle.files."radicle.key".path;
21 publicKey = config.clan.core.vars.generators.radicle.files."radicle.pub".path;
22
23 node.openFirewall = true;
24
25 httpd = {
26 enable = true;
27 nginx = {
28 serverName = "radicle.lassul.us";
29 enableACME = true;
30 forceSSL = true;
31 };
32 };
33
34 settings = {
35 publicExplorer = "https://app.radicle.xyz/nodes/$host/$rid$path";
36 preferredSeeds = [
37 "z6MkrLMMsiPWUcNPHcRajuMi9mDfYckSoJyPwwnknocNYPm7@seed.radicle.xyz:8776"
38 "z6Mkmqogy2qEM2ummccUthFEaaHvyYmYBYh3dbe9W4ebScxo@seed.radicle.garden:8776"
39 ];
40 web.pinned.repositories = [ ];
41 cli.hints = true;
42 node = {
43 alias = config.networking.hostName;
44 listen = [ "0.0.0.0:8776" ];
45 peers.type = "dynamic";
46 connect = [ ];
47 externalAddresses = [ "radicle.lassul.us:8776" ];
48 network = "main";
49 log = "INFO";
50 relay = "auto";
51 limits = {
52 routingMaxSize = 1000;
53 routingMaxAge = 604800;
54 gossipMaxAge = 1209600;
55 fetchConcurrency = 1;
56 maxOpenFiles = 4096;
57 rate = {
58 inbound = {
59 fillRate = 5.0;
60 capacity = 1024;
61 };
62 outbound = {
63 fillRate = 10.0;
64 capacity = 2048;
65 };
66 };
67 connection = {
68 inbound = 128;
69 outbound = 16;
70 };
71 fetchPackReceive = "500.0 MiB";
72 };
73 workers = 8;
74 seedingPolicy = {
75 default = "allow";
76 scope = "all";
77 };
78 };
79 };
80 };
81}