diff --git a/os/mixin/i2p.nix b/os/mixin/i2p.nix new file mode 100644 index 0000000..a2bff25 --- /dev/null +++ b/os/mixin/i2p.nix @@ -0,0 +1,42 @@ +{ + config, + lib, + ... +}: let + secret = "i2pd/radicle"; +in { + sops.secrets.${secret} = { + format = "binary"; + owner = "i2pd"; + group = "i2pd"; + path = "/var/lib/i2pd/radicle-keys.dat"; + }; + + services.i2pd = { + enable = true; + enableIPv6 = true; + proto = { + socksProxy.enable = true; + http.enable = true; + }; + + inTunnels = { + http = let + port = 80; + in { + inherit port; + enable = true; + inPort = port; + type = "http"; + }; + radicle = let + port = 58776; + in { + inherit port; + enable = true; + inPort = port; + type = "server"; + }; + }; + }; +} diff --git a/os/mixin/radicle.nix b/os/mixin/radicle.nix index da308ad..a3cc5d4 100644 --- a/os/mixin/radicle.nix +++ b/os/mixin/radicle.nix @@ -34,6 +34,10 @@ in { db.journalMode = "wal"; workers = 32; relay = "always"; + i2p = lib.mkIf (config.services.i2pd.enable && config.services.i2pd.proto.socksProxy.enable) { + mode = "proxy"; + address = "127.0.0.1:4447"; + }; onion = lib.mkIf config.services.tor.enable { mode = "proxy"; address = "127.0.0.1:9050";