with import (builtins.fetchTarball {
# FIXME: upgrade to nixpkgs 19 when stable and stick to stable
# versions
name = "nixos-unstable-2018-12-08";
url = https://github.com/nixos/nixpkgs/archive/61c3169a0e17d789c566d5b241bfe309ce4a6275.tar.gz;
sha256 = "0qbycg7wkb71v20rchlkafrjfpbk2fnlvvbh3ai9pyfisci5wxvq";
}) {};
let
adminer = rec {
webRoot = pkgs.stdenv.mkDerivation rec {
version = "4.7.0";
name = "adminer-${version}";
src = pkgs.fetchurl {
url = "https://www.adminer.org/static/download/${version}/${name}.php";
sha256 = "1qq2g7rbfh2vrqfm3g0bz0qs057b049n0mhabnsbd1sgnpvnc5z7";
};
phases = "installPhase";
installPhase = ''
mkdir -p $out
cp $src $out/index.php
'';
};
phpFpm = rec {
socket = "/var/run/phpfpm/adminer.sock";
pool = ''
listen = ${socket}
user = ${apache.user}
group = ${apache.group}
listen.owner = ${apache.user}
listen.group = ${apache.group}
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 60
;php_admin_flag[log_errors] = on
php_admin_value[open_basedir] = "${webRoot}:/tmp"
'';
};
apache = {
user = "wwwrun";
group = "wwwrun";
vhostConf = ''
Alias /adminer ${webRoot}
DirectoryIndex = index.php
SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
'';
};
nginxConf = {
alias = webRoot;
index = "index.php";
extraConfig = ''
include ${pkgs.nginx}/conf/fastcgi.conf;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
fastcgi_param HTTP_PROXY "";
fastcgi_param SCRIPT_FILENAME ${webRoot}/index.php;
fastcgi_pass unix:${phpFpm.socket};
fastcgi_index index.php;
fastcgi_intercept_errors on;
'';
};
};
ympd = rec {
config = {
webPort = "localhost:18001";
mpd = {
host = "malige.home.immae.eu";
port = 6600;
};
};
apache = {
vhostConf = ''
Use LDAPConnect
Require ldap-group cn=users,cn=mpd,ou=services,dc=immae,dc=eu
Require local
RedirectMatch permanent "^/mpd$" "/mpd/"
ProxyPass http://${config.webPort}/
ProxyPassReverse http://${config.webPort}/
ProxyPreserveHost on
ProxyPass ws://${config.webPort}/ws
'';
};
};
in
{
inherit adminer;
inherit ympd;
}