nixos/home/modules/programs/radicle.nix

69 lines
1.8 KiB
Nix

{
lib,
config,
...
}: let
cfg = config.youthlic.programs.radicle;
in {
options = {
youthlic.programs.radicle = {
enable = lib.mkEnableOption "radicle";
};
};
config = lib.mkIf cfg.enable {
programs.radicle = {
enable = true;
settings = {
publicExplorer = "https://app.radicle.xyz/nodes/$host/$rid$path";
preferredSeeds = [
"z6Mkmqogy2qEM2ummccUthFEaaHvyYmYBYh3dbe9W4ebScxo@rosa.radicle.xyz:8776"
"z6MksmpU5b1dS7oaqF2bHXhQi1DWy2hB7Mh9CuN7y1DN6QSz@seed.radicle.xyz:8776"
"z6MkrLMMsiPWUcNPHcRajuMi9mDfYckSoJyPwwnknocNYPm7@iris.radicle.xyz:8776"
];
cli = {
hints = true;
};
node = {
alias = "youthlic";
peers = {
type = "dynamic";
};
network = "main";
log = "INFO";
relay = "auto";
limits = {
routingMaxSize = 1000;
routingMaxAge = 604800;
gossipMaxAge = 1209600;
fetchConcurrency = 1;
maxOpenFiles = 4096;
rate = {
inbound = {
fillRate = 5;
capacity = 1024;
};
outbound = {
fillRate = 10;
capacity = 2048;
};
};
connection = {
inbound = 128;
outbound = 16;
};
};
workers = 8;
seedingPolicy = {
default = "block";
};
};
};
};
sops.secrets."radicle/Tytonidae" = {};
services.radicle.node = {
enable = true;
args = "--log-logger systemd";
};
systemd.user.services."radicle-node".Service.EnvironmentFile = [config.sops.secrets."radicle/Tytonidae".path];
};
}