[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[tor-relays] Re: Relays on NixOS



I use NixOS containers to run multiple relays:

  # > sudo systemctl -M tor-1 status tor
  # > sudo journalctl -M tor-1 -eu tor.service
  containers = let
    mkTorContainer = {
      stateDir,
      orPort,
      controlPort,
    }: {
      autoStart = true;
      ephemeral = true; # impermanence
      bindMounts = {
        "/var/lib/tor/" = {
          hostPath = stateDir;
          isReadOnly = false;
        };
      };
      config = {...}: {
        services.tor = {
          enable = true;
          relay = {
            enable = true;
            role = "exit";
          };
          settings = {
            Nickname = "DXV7520";
            ContactInfo = "admin@xxxxxxxxxxxx";
            ORPort = [
              {
                addr = "31.133.0.235";
                port = orPort;
              }
              {
                addr = "[2001:67c:2044:c141::1:6431:1]";
                port = orPort;
              }
            ];
            ControlPort = controlPort;
            ExitRelay = true;
            IPv6Exit = true;
            ExitPolicy = [
              "reject *:22"
              "reject *:25"
              "accept *:*"
            ];
            MyFamily = builtins.concatStringsSep "," [
              "1B9D2C9E0EFE2C6BD23D62B2FCD145886AD242D1" # /var/lib/tor-1/fingerprint
              "293CE00D11B1D8B99AE8811CBDFDA3F353353710" # /var/lib/tor-2/fingerprint
              "27FF3E6979EF6570B9EB3B53B11964FE08F36F19" # /var/lib/tor-3/fingerprint
              "C2041A1CE9FDFDB13572D946A3055310FD48A595" # /var/lib/tor-4/fingerprint
            ];
          };
        };
        system.stateVersion = config.system.stateVersion;
      };
    };
  in {
    tor-1 = mkTorContainer {
      stateDir = "/var/lib/tor-1/";
      orPort = 443;
      controlPort = 9051;
    };
    tor-2 = mkTorContainer {
      stateDir = "/var/lib/tor-2/";
      orPort = 444;
      controlPort = 9052;
    };
    tor-3 = mkTorContainer {
      stateDir = "/var/lib/tor-3/";
      orPort = 445;
      controlPort = 9053;
    };
    tor-4 = mkTorContainer {
      stateDir = "/var/lib/tor-4/";
      orPort = 446;
      controlPort = 9054;
    };
  };

Full config: https://git.caspervk.net/caspervk/nixos/src/branch/master/hosts/tor/tor.nix
_______________________________________________
tor-relays mailing list -- tor-relays@xxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to tor-relays-leave@xxxxxxxxxxxxxxxxxxxx