]>
Commit | Line | Data |
---|---|---|
1 | { lib, pkgs, writeText, stdenv, fetchurl }: | |
2 | rec { | |
3 | varDir = "/var/lib/rainloop"; | |
4 | activationScript = { | |
5 | deps = [ "wrappers" ]; | |
6 | text = '' | |
7 | install -m 0755 -o ${apache.user} -g ${apache.group} -d ${varDir} | |
8 | install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/phpSessions | |
9 | install -m 0750 -o ${apache.user} -g ${apache.group} -d ${varDir}/data | |
10 | ''; | |
11 | }; | |
12 | webRoot = pkgs.rainloop-community.overrideAttrs(old: { | |
13 | installPhase = old.installPhase + '' | |
14 | ln -sf ${varDir}/data $out/data | |
15 | ''; | |
16 | }); | |
17 | apache = rec { | |
18 | user = "wwwrun"; | |
19 | group = "wwwrun"; | |
20 | modules = [ "proxy_fcgi" ]; | |
21 | webappName = "tools_rainloop"; | |
22 | root = "/run/current-system/webapps/${webappName}"; | |
23 | vhostConf = '' | |
24 | Alias /rainloop "${root}" | |
25 | <Directory "${root}"> | |
26 | DirectoryIndex index.php | |
27 | AllowOverride All | |
28 | Options -FollowSymlinks | |
29 | Require all granted | |
30 | ||
31 | <FilesMatch "\.php$"> | |
32 | SetHandler "proxy:unix:${phpFpm.socket}|fcgi://localhost" | |
33 | </FilesMatch> | |
34 | </Directory> | |
35 | ||
36 | <DirectoryMatch "${root}/data"> | |
37 | Require all denied | |
38 | </DirectoryMatch> | |
39 | ''; | |
40 | }; | |
41 | phpFpm = rec { | |
42 | serviceDeps = [ "postgresql.service" ]; | |
43 | basedir = builtins.concatStringsSep ":" [ webRoot varDir ]; | |
44 | socket = "/var/run/phpfpm/rainloop.sock"; | |
45 | pool = '' | |
46 | listen = ${socket} | |
47 | user = ${apache.user} | |
48 | group = ${apache.group} | |
49 | listen.owner = ${apache.user} | |
50 | listen.group = ${apache.group} | |
51 | pm = ondemand | |
52 | pm.max_children = 60 | |
53 | pm.process_idle_timeout = 60 | |
54 | ||
55 | ; Needed to avoid clashes in browser cookies (same domain) | |
56 | php_value[session.name] = RainloopPHPSESSID | |
57 | php_admin_value[upload_max_filesize] = 200M | |
58 | php_admin_value[post_max_size] = 200M | |
59 | php_admin_value[open_basedir] = "${basedir}:/tmp" | |
60 | php_admin_value[session.save_path] = "${varDir}/phpSessions" | |
61 | ''; | |
62 | }; | |
63 | } |