{ config, lib, pkgs, username, ... }: let cfg = config.os.srv.i2p; in { options.os.srv.i2p = { enable = lib.mkEnableOption "enables i2pd"; enableBrowser = lib.mkEnableOption "enables mullvad browser for browsing eepsites"; }; config = lib.mkMerge [ (lib.mkIf cfg.enable { services.i2pd = { enable = true; bandwidth = 1024; logLevel = "info"; upnp.enable = true; proto = { i2pControl.enable = true; http.enable = true; httpProxy.enable = true; socksProxy = { enable = true; outproxyEnable = true; }; sam.enable = true; }; yggdrasil = { enable = true; # address = ""; }; ssu2 = { enable = true; # published = true; }; }; }) (lib.mkIf cfg.enableBrowser { home-manager.users.${username}.home.packages = [ pkgs.mullvad-browser ]; }) ]; }