]>
Commit | Line | Data |
---|---|---|
ab5d04b8 IB |
1 | with import (builtins.fetchTarball { |
2 | # FIXME: upgrade to nixpkgs 19 when stable and stick to stable | |
3 | # versions | |
4 | name = "nixos-unstable-2018-12-08"; | |
5 | url = https://github.com/nixos/nixpkgs/archive/61c3169a0e17d789c566d5b241bfe309ce4a6275.tar.gz; | |
6 | sha256 = "0qbycg7wkb71v20rchlkafrjfpbk2fnlvvbh3ai9pyfisci5wxvq"; | |
7 | }) {}; | |
8 | let | |
27e22b76 IB |
9 | adminer = rec { |
10 | webRoot = pkgs.stdenv.mkDerivation rec { | |
1bb2ff2c IB |
11 | version = "4.7.0"; |
12 | name = "adminer-${version}"; | |
27e22b76 | 13 | src = pkgs.fetchurl { |
1bb2ff2c | 14 | url = "https://www.adminer.org/static/download/${version}/${name}.php"; |
27e22b76 IB |
15 | sha256 = "1qq2g7rbfh2vrqfm3g0bz0qs057b049n0mhabnsbd1sgnpvnc5z7"; |
16 | }; | |
17 | phases = "installPhase"; | |
18 | installPhase = '' | |
19 | mkdir -p $out | |
20 | cp $src $out/index.php | |
21 | ''; | |
22 | }; | |
23 | phpFpm = rec { | |
24 | socket = "/var/run/phpfpm/adminer.sock"; | |
25 | pool = '' | |
26 | listen = ${socket} | |
1bb2ff2c IB |
27 | user = ${apache.user} |
28 | group = ${apache.group} | |
29 | listen.owner = ${apache.user} | |
30 | listen.group = ${apache.group} | |
27e22b76 IB |
31 | pm = ondemand |
32 | pm.max_children = 5 | |
33 | pm.process_idle_timeout = 60 | |
34 | ;php_admin_flag[log_errors] = on | |
35 | php_admin_value[open_basedir] = "${webRoot}:/tmp" | |
36 | ''; | |
37 | }; | |
1bb2ff2c IB |
38 | apache = { |
39 | user = "wwwrun"; | |
40 | group = "wwwrun"; | |
25fd1d16 | 41 | modules = [ "proxy_fcgi" ]; |
1bb2ff2c IB |
42 | vhostConf = '' |
43 | Alias /adminer ${webRoot} | |
44 | <Directory ${webRoot}> | |
45 | DirectoryIndex = index.php | |
46 | <FilesMatch "\.php$"> | |
47 | SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost" | |
48 | </FilesMatch> | |
49 | </Directory> | |
50 | ''; | |
51 | }; | |
27e22b76 IB |
52 | nginxConf = { |
53 | alias = webRoot; | |
54 | index = "index.php"; | |
55 | extraConfig = '' | |
56 | include ${pkgs.nginx}/conf/fastcgi.conf; | |
57 | fastcgi_split_path_info ^(.+?\.php)(/.*)$; | |
58 | fastcgi_param HTTP_PROXY ""; | |
59 | fastcgi_param SCRIPT_FILENAME ${webRoot}/index.php; | |
60 | fastcgi_pass unix:${phpFpm.socket}; | |
61 | fastcgi_index index.php; | |
62 | fastcgi_intercept_errors on; | |
63 | ''; | |
64 | }; | |
ab5d04b8 | 65 | }; |
a05f8abe IB |
66 | |
67 | ympd = rec { | |
68 | config = { | |
69 | webPort = "localhost:18001"; | |
70 | mpd = { | |
71 | host = "malige.home.immae.eu"; | |
72 | port = 6600; | |
73 | }; | |
74 | }; | |
75 | apache = { | |
76 | vhostConf = '' | |
77 | <LocationMatch "^/mpd"> | |
78 | Use LDAPConnect | |
79 | Require ldap-group cn=users,cn=mpd,ou=services,dc=immae,dc=eu | |
80 | Require local | |
81 | </LocationMatch> | |
82 | ||
83 | RedirectMatch permanent "^/mpd$" "/mpd/" | |
84 | <Location "/mpd/"> | |
85 | ProxyPass http://${config.webPort}/ | |
86 | ProxyPassReverse http://${config.webPort}/ | |
87 | ProxyPreserveHost on | |
88 | </Location> | |
89 | <Location "/mpd/ws"> | |
90 | ProxyPass ws://${config.webPort}/ws | |
91 | </Location> | |
92 | ''; | |
93 | }; | |
94 | }; | |
ab5d04b8 IB |
95 | in |
96 | { | |
97 | inherit adminer; | |
a05f8abe | 98 | inherit ympd; |
ab5d04b8 | 99 | } |