]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - virtual/packages.nix
3e143a1fbf49cfe632adebfc0423c40d29fb9f1c
[perso/Immae/Config/Nix.git] / virtual / packages.nix
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
9 adminer = rec {
10 webRoot = pkgs.stdenv.mkDerivation rec {
11 version = "4.7.0";
12 name = "adminer-${version}";
13 src = pkgs.fetchurl {
14 url = "https://www.adminer.org/static/download/${version}/${name}.php";
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}
27 user = ${apache.user}
28 group = ${apache.group}
29 listen.owner = ${apache.user}
30 listen.group = ${apache.group}
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 };
38 apache = {
39 user = "wwwrun";
40 group = "wwwrun";
41 modules = [ "proxy_fcgi" ];
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 };
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 };
65 };
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 };
95 in
96 {
97 inherit adminer;
98 inherit ympd;
99 }