1 { lib, php, env, writeText, stdenv, optipng, fetchurl }:
4 destDir = "/run/keys/webapps";
10 $config->custom->appearance['show_clear_password'] = true;
11 $config->custom->appearance['hide_template_warning'] = true;
12 $config->custom->appearance['theme'] = "tango";
13 $config->custom->appearance['minimalMode'] = true;
15 $servers = new Datastore();
17 $servers->newServer('ldap_pla');
18 $servers->setValue('server','name','Immae’s LDAP');
19 $servers->setValue('server','host','ldaps://${env.ldap.host}');
20 $servers->setValue('login','auth_type','cookie');
21 $servers->setValue('login','bind_id','${env.ldap.dn}');
22 $servers->setValue('login','bind_pass','${env.ldap.password}');
23 $servers->setValue('appearance','password_hash','ssha');
24 $servers->setValue('login','attr','uid');
25 $servers->setValue('login','fallback_dn',true);
28 webRoot = stdenv.mkDerivation rec {
30 name = "phpldapadmin-${version}";
32 url = "https://downloads.sourceforge.net/project/phpldapadmin/phpldapadmin-php5/${version}/${name}.tgz";
33 sha256 = "0n7dhp2a7n1krmnik3pb969jynsmhghmxviivnckifkprv1zijmf";
37 ./ldap-disable-mcrypt.patch
39 ./ldap-sort-in-templates.patch
40 ./ldap-align-button.patch
42 buildInputs = [ optipng ];
44 find -name '*.png' -exec optipng -quiet -force -fix {} \;
48 ln -sf /run/keys/webapps/tools-ldap $out/config/config.php
54 modules = [ "proxy_fcgi" ];
55 webappName = "tools_ldap";
56 root = "/run/current-system/webapps/${webappName}";
60 DirectoryIndex index.php
62 SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
71 serviceDeps = [ "openldap.service" "tools-ldap-key.service" ];
72 basedir = builtins.concatStringsSep ":" [ webRoot "/run/keys/webapps/tools-ldap" ];
73 socket = "/var/run/phpfpm/ldap.sock";
77 group = ${apache.group}
78 listen.owner = ${apache.user}
79 listen.group = ${apache.group}
82 pm.process_idle_timeout = 60
84 ; Needed to avoid clashes in browser cookies (same domain)
85 php_value[session.name] = LdapPHPSESSID
86 php_admin_value[open_basedir] = "${basedir}:/tmp"