{ pkgs, lib, ... }:
{
  imports = [
    ../../nixos/profiles/dnscrypt-proxy2.nix
    ../../nixos/profiles/networking/ssh.nix
    ../../nixos/profiles/networking/wifi.nix
    #../../nixos/profiles/openvpn/calyx.nix
    networking/nftables.nix
  ];
  install.substituteOnDestination = false;
  #networking.domain = "sourcephile.fr";
  networking.useDHCP = false;

  services.tor = {
    settings = {
      HashedControlPassword = lib.readFile tor/HashedControlPassword.clear;
      # https://metrics.torproject.org/rs.html#search/flag:exit%20country:be%20running:true
      # https://nusenu.github.io/OrNetStats/w/relay/58B81035FC28AACA8F0E85E46C8EBAD7FCFA8404.html
      MapAddress = [
        "*.gcp.cloud.es.io *.gcp.cloud.es.io.58B81035FC28AACA8F0E85E46C8EBAD7FCFA8404.exit"
        "*.redbee.live         *.redbee.live.58B81035FC28AACA8F0E85E46C8EBAD7FCFA8404.exit"
        "*.rtbf.be                 *.rtbf.be.58B81035FC28AACA8F0E85E46C8EBAD7FCFA8404.exit"
      ];
      StrictNodes = true;
    };
  };

  networking.nftables.ruleset = lib.mkAfter ''
    table inet filter {
      chain input {
        goto input-net
      }
      chain output {
        ip daddr 10.0.0.0/8 counter goto output-lan
        ip daddr 172.16.0.0/12 counter goto output-lan
        ip daddr 192.168.0.0/16 counter goto output-lan
        ip daddr 224.0.0.0/3 counter goto output-lan
        jump output-net
        log level warn prefix "output-net: " counter drop
      }
    }
  '';

  networking.hosts = {
    #"80.67.180.129" = ["salons.sourcephile.fr"];
  };

  networking.interfaces = { };

  networking.networkmanager = {
    enable = true;
    unmanaged = [
    ];
  };
  environment.etc."NetworkManager/system-connections/Prixtel.nmconnection" = {
    mode = "600";
    text = ''
      [connection]
      id=Prixtel
      uuid=b223f550-dff1-4ba3-9755-cd4557faaa5a
      type=gsm
      autoconnect=false
      permissions=user:julm:;

      [gsm]
      apn=sl2sfr
      number=*99#
      home-only=true

      [ppp]

      [ipv4]
      method=auto

      [ipv6]
      addr-gen-mode=stable-privacy
      method=disabled

      [proxy]
    '';
  };

  environment.systemPackages = [
    pkgs.modem-manager-gui
    #pkgs.tor-ctrl # Not packaged yet
  ];

  systemd.services.sshd.serviceConfig.LoadCredentialEncrypted = [
    "host.key:${ssh/host.key.cred}"
  ];
}