-{ lib, php, stdenv, writeText, fetchedGithub }:
-let
- dokuwiki = let
- plugins = {
- farmer = stdenv.mkDerivation (fetchedGithub ./dokuwiki-plugin-farmer.json // rec {
- installPhase = ''
- mkdir $out
- cp -a * $out/
- '';
- });
- todo = stdenv.mkDerivation (fetchedGithub ./dokuwiki-plugin-todo.json // rec {
- installPhase = ''
- mkdir $out
- cp -a * $out/
- '';
- });
- };
- preload = writeText "preload.php" ''
- <?php
- # farm setup by farmer plugin
- if(file_exists('${plugins.farmer}/DokuWikiFarmCore.php'))
- {
- include('${plugins.farmer}/DokuWikiFarmCore.php');
- }
- '';
- in rec {
- varDir = "/var/lib/dokuwiki";
- activationScript = {
- deps = [ "wrappers" ];
- text = ''
- if [ ! -d ${varDir} ]; then
- install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
- ${varDir}/animals
- cp -a ${webRoot}/conf.dist ${varDir}/conf
- cp -a ${webRoot}/data.dist ${varDir}/data
- cp -a ${webRoot}/
- chown -R ${apache.user}:${apache.user} ${varDir}/config ${varDir}/data
- chmod -R 755 ${varDir}/config ${varDir}/data
- fi
- install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
- '';
- };
- webRoot = stdenv.mkDerivation (fetchedGithub ./dokuwiki.json // rec {
- buildPhase = ''
- mv conf conf.dist
- mv data data.dist
- '';
- installPhase = ''
- cp -a . $out
- cp ${preload} $out/inc/preload.php
- ln -sf ${varDir}/{conf,data} $out/
- ln -sf ${varDir}/conf/.htaccess $out/
- ${builtins.concatStringsSep "\n" (
- lib.attrsets.mapAttrsToList (name: value: "ln -sf ${value} $out/lib/plugins/${name}") plugins
- )}
- '';
- });
- apache = rec {
- user = "wwwrun";
- group = "wwwrun";
- modules = [ "proxy_fcgi" ];
- webappName = "tools_dokuwiki";
- root = "/run/current-system/webapps/${webappName}";
- vhostConf = ''
- Alias /dokuwiki "${root}"
- <Directory "${root}">
- DirectoryIndex index.php
- <FilesMatch "\.php$">
- SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
- </FilesMatch>
+{ lib, stdenv, dokuwiki, dokuwiki-plugins }:
+rec {
+ varDir = "/var/lib/dokuwiki";
+ activationScript = {
+ deps = [ "wrappers" ];
+ text = ''
+ if [ ! -d ${varDir} ]; then
+ install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} \
+ ${varDir}/animals
+ cp -a ${webRoot}/conf.dist ${varDir}/conf
+ cp -a ${webRoot}/data.dist ${varDir}/data
+ cp -a ${webRoot}/
+ chown -R ${apache.user}:${apache.user} ${varDir}/config ${varDir}/data
+ chmod -R 755 ${varDir}/config ${varDir}/data
+ fi
+ install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions
+ '';
+ };
+ webRoot = dokuwiki.withPlugins (builtins.attrValues dokuwiki-plugins);
+ apache = rec {
+ user = "wwwrun";
+ group = "wwwrun";
+ modules = [ "proxy_fcgi" ];
+ webappName = "tools_dokuwiki";
+ root = "/run/current-system/webapps/${webappName}";
+ vhostConf = ''
+ Alias /dokuwiki "${root}"
+ <Directory "${root}">
+ DirectoryIndex index.php
+ <FilesMatch "\.php$">
+ SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
+ </FilesMatch>