{ pkgs, config, ... }: { networking.firewall.allowedTCPPorts = [ 80 443 ]; # TODO: move to hackens.org services.dokuwiki.sites."${config.my.subZone}" = { enable = true; extraConfig = '' $conf['title'] = 'hackEns'; $conf['start'] = 'accueil'; $conf['lang'] = 'fr'; $conf['template'] = 'bootstrap3'; $conf['license'] = 'cc-by-sa'; $conf['breadcrumbs'] = 0; # On s'en fiche de l'historique des pages visitées $conf['youarehere'] = true; # Par contre on veut notre position dans la hiérarchie du site # On veut que les liens externes s'ouvrent dans de nouveaux onglets $conf['target'] = array( 'extern' => '_tab' ); $conf['htmlok'] = 1; # On peut mettre du html dans les pages $conf['sitemap'] = 7; $conf['rss_type'] = 'rss2'; $conf['userewrite'] = 1; # Important, sinon on casse tout avec les règles nginx définies par le module nixos $conf['useslash'] = 1; $conf['plugin']['tokenbucketauth']['tba_send_mail'] = 'hackens@clipper.ens.fr'; # Ban auto des IPs qui brute-forcent $conf['htmlmail'] = 0; # On envoie les mails en plain text $conf['useacl'] = 1; # On ne veut pas que n'importe qui écrive ''; pluginsConfig = '' $plugins['authmysql'] = 0; $plugins['popularity'] = 0; $plugins['authpgsql'] = 0; $plugins['authpdo'] = 0; $plugins['authldap'] = 0; ''; disableActions = "register"; superUser = "@admin"; acl = '' * @ALL 1 * @users 8 ''; # Il faut packager les templates templates = let template-bootstrap3 = pkgs.stdenv.mkDerivation { name = "bootstrap3"; # Download the theme from the dokuwiki site src = pkgs.fetchurl { url = "https://github.com/giterlizzi/dokuwiki-template-bootstrap3/archive/v2019-05-22.zip"; sha256 = "4de5ff31d54dd61bbccaf092c9e74c1af3a4c53e07aa59f60457a8f00cfb23a6"; }; # We need unzip to build this package buildInputs = [ pkgs.unzip ]; # Installing simply means copying all files to the output directory installPhase = "mkdir -p $out; cp -R * $out/"; }; # And then pass this theme to the template list like this: in [ template-bootstrap3 ]; }; }