]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - virtual/packages.nix
Put adminer configuration in its package
[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 name = "adminer-4.7.0";
12 src = pkgs.fetchurl {
13 url = "https://www.adminer.org/static/download/4.7.0/${name}.php";
14 sha256 = "1qq2g7rbfh2vrqfm3g0bz0qs057b049n0mhabnsbd1sgnpvnc5z7";
15 };
16 phases = "installPhase";
17 installPhase = ''
18 mkdir -p $out
19 cp $src $out/index.php
20 '';
21 };
22 phpFpm = rec {
23 socket = "/var/run/phpfpm/adminer.sock";
24 pool = ''
25 listen = ${socket}
26 user = wwwrun
27 group = wwwrun
28 listen.owner = wwwrun
29 listen.group = wwwrun
30 pm = ondemand
31 pm.max_children = 5
32 pm.process_idle_timeout = 60
33 ;php_admin_flag[log_errors] = on
34 php_admin_value[open_basedir] = "${webRoot}:/tmp"
35 '';
36 };
37 apacheConf = ''
38 Alias /adminer ${webRoot}
39 <Directory ${webRoot}>
40 DirectoryIndex = index.php
41 <FilesMatch "\.php$">
42 SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost"
43 </FilesMatch>
44 </Directory>
45 '';
46 nginxConf = {
47 alias = webRoot;
48 index = "index.php";
49 extraConfig = ''
50 include ${pkgs.nginx}/conf/fastcgi.conf;
51 fastcgi_split_path_info ^(.+?\.php)(/.*)$;
52 fastcgi_param HTTP_PROXY "";
53 fastcgi_param SCRIPT_FILENAME ${webRoot}/index.php;
54 fastcgi_pass unix:${phpFpm.socket};
55 fastcgi_index index.php;
56 fastcgi_intercept_errors on;
57 '';
58 };
59 };
60 in
61 {
62 inherit adminer;
63 }