{ config, pkgs, lib, mkDomain, ... }:
{
  # CensorDodge
  # A lightweight and customisable web proxy
  /** /
  services.phpfpm.pools.censordodge = {
    user = "censordodge";
    group = "censordodge";
    settings = {
      "listen.owner" = config.services.nginx.user;
      "listen.group" = config.services.nginx.group;
      "pm" = "dynamic";
      "pm.max_children" = "32";
      "pm.start_servers" = "2";
      "pm.min_spare_servers" = "2";
      "pm.max_spare_servers" = "4";
      "pm.max_requests" = "500";
    };
  };
  services.nginx.virtualHosts.${mkDomain "censordodge"} = {
    forceSSL = true; # addSSL = true;
    enableACME = true; #useACMEHost = acmeDomain;
    root = pkgs.fetchFromGitHub {
      owner = "ryanmab";
      repo = "CensorDodge";
      rev = "2480e8269190ca8618e41dc581f9d55f4ce9f333";
      sha256 = "8R3lyxF22HXui4pJytMcqwwa5TDXIJb6fWII934IhEA=";
    };
    extraConfig = ''
      index index.php;
    '';
    locations."/".extraConfig = ''
      try_files $uri $uri/ /index.php?$args;
    '';
    locations."~ \.php$".extraConfig = ''
      include ${config.services.nginx.package}/conf/fastcgi.conf;
      fastcgi_pass unix:${config.services.phpfpm.pools.censordodge.socket};
      fastcgi_buffers 16 16k;
      fastcgi_buffer_size 32k;
    '';
  };
  users.users.censordodge = {
    isSystemUser = true;
    group = "censordodge";
  };
  users.groups.censordodge = {};
  /**/

}
