diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2020-04-18 16:10:56 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2020-04-20 01:51:48 +0200 |
commit | d3452fc59b9839846225fd254926c64a9c71f071 (patch) | |
tree | a98a0958b826ac4b2ab137720edf0195c65dd958 /modules/private/websites/ludivine | |
parent | 514f9ec3beec470c4445be690673a0ceab9115b4 (diff) | |
download | Nix-d3452fc59b9839846225fd254926c64a9c71f071.tar.gz Nix-d3452fc59b9839846225fd254926c64a9c71f071.tar.zst Nix-d3452fc59b9839846225fd254926c64a9c71f071.zip |
Refactor websites
Diffstat (limited to 'modules/private/websites/ludivine')
-rw-r--r-- | modules/private/websites/ludivine/app/default.nix | 36 | ||||
-rw-r--r-- | modules/private/websites/ludivine/app/ludivinecassal.json | 14 | ||||
-rw-r--r-- | modules/private/websites/ludivine/app/php-packages.nix | 868 | ||||
-rw-r--r-- | modules/private/websites/ludivine/integration.nix | 151 | ||||
-rw-r--r-- | modules/private/websites/ludivine/production.nix | 118 |
5 files changed, 1187 insertions, 0 deletions
diff --git a/modules/private/websites/ludivine/app/default.nix b/modules/private/websites/ludivine/app/default.nix new file mode 100644 index 0000000..05be0b1 --- /dev/null +++ b/modules/private/websites/ludivine/app/default.nix | |||
@@ -0,0 +1,36 @@ | |||
1 | { environment ? "prod" | ||
2 | , varDir ? "/var/lib/ludivinecassal_${environment}" | ||
3 | , secretsPath ? "/var/secrets/webapps/${environment}-ludivinecassal" | ||
4 | , composerEnv, fetchurl, fetchgit, imagemagick, sass, ruby, mylibs }: | ||
5 | let | ||
6 | app = composerEnv.buildPackage ( | ||
7 | import ./php-packages.nix { inherit composerEnv fetchurl fetchgit; } // | ||
8 | mylibs.fetchedGitPrivate ./ludivinecassal.json // | ||
9 | rec { | ||
10 | noDev = (environment == "prod"); | ||
11 | preInstall = '' | ||
12 | export SYMFONY_ENV="${environment}" | ||
13 | cp app/config/parameters.yml.dist app/config/parameters.yml | ||
14 | cat >> app/config/parameters.yml <<EOF | ||
15 | leapt_im: | ||
16 | binary_path: ${imagemagick}/bin | ||
17 | assetic: | ||
18 | sass: ${sass}/bin/sass | ||
19 | ruby: ${ruby}/bin/ruby | ||
20 | EOF | ||
21 | sed -i -e "/Incenteev..ParameterHandler..ScriptHandler::buildParameters/d" composer.json | ||
22 | ''; | ||
23 | # /!\ miniatures and data need to be in the same physical dir due to a | ||
24 | # bug in leapt.im (searches for data/../miniatures) | ||
25 | postInstall = '' | ||
26 | rm -rf var/{logs,cache,data,miniatures,tmp} | ||
27 | ln -sf ${varDir}/{logs,cache,data,miniatures,tmp} var/ | ||
28 | ln -sf ${secretsPath} app/config/parameters.yml | ||
29 | ''; | ||
30 | buildInputs = [ sass ]; | ||
31 | passthru = { | ||
32 | inherit varDir environment; | ||
33 | webRoot = "${app}/web"; | ||
34 | }; | ||
35 | }); | ||
36 | in app | ||
diff --git a/modules/private/websites/ludivine/app/ludivinecassal.json b/modules/private/websites/ludivine/app/ludivinecassal.json new file mode 100644 index 0000000..f0d23c3 --- /dev/null +++ b/modules/private/websites/ludivine/app/ludivinecassal.json | |||
@@ -0,0 +1,14 @@ | |||
1 | { | ||
2 | "tag": "0dacc32-master", | ||
3 | "meta": { | ||
4 | "name": "ludivinecassal", | ||
5 | "url": "ssh://gitolite@git.immae.eu/perso/Immae/Sites/Ludivine", | ||
6 | "branch": "master" | ||
7 | }, | ||
8 | "git": { | ||
9 | "url": "ssh://gitolite@git.immae.eu/perso/Immae/Sites/Ludivine", | ||
10 | "rev": "0dacc320ea052b69f79861c84bceaa89be53de60", | ||
11 | "sha256": "10khg1fq9ixly3xak591n3v0rv3f2hn91rd46d75yv3wjxaj1c2d", | ||
12 | "fetchSubmodules": true | ||
13 | } | ||
14 | } | ||
diff --git a/modules/private/websites/ludivine/app/php-packages.nix b/modules/private/websites/ludivine/app/php-packages.nix new file mode 100644 index 0000000..3495c32 --- /dev/null +++ b/modules/private/websites/ludivine/app/php-packages.nix | |||
@@ -0,0 +1,868 @@ | |||
1 | # Generated with composer2nix and adapted to return only the list of | ||
2 | # packages | ||
3 | { composerEnv, fetchurl, fetchgit ? null }: | ||
4 | { | ||
5 | packages = { | ||
6 | "behat/transliterator" = { | ||
7 | targetDir = ""; | ||
8 | src = composerEnv.buildZipPackage { | ||
9 | name = "behat-transliterator-826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c"; | ||
10 | src = fetchurl { | ||
11 | url = https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c; | ||
12 | sha256 = "1mgc9azx79fkrxahji3xwbgqhlcnvh3xk6llqdvhjb7vgzj4bqq0"; | ||
13 | }; | ||
14 | }; | ||
15 | }; | ||
16 | "components/bootstrap" = { | ||
17 | targetDir = ""; | ||
18 | src = composerEnv.buildZipPackage { | ||
19 | name = "components-bootstrap-5d60b2efd3159e1a9e203901849b3493c5aac61f"; | ||
20 | src = fetchurl { | ||
21 | url = https://api.github.com/repos/components/bootstrap/zipball/5d60b2efd3159e1a9e203901849b3493c5aac61f; | ||
22 | sha256 = "0jdyxl86dr2lf8az1vby84i7kdn1qcqkp8fy60rs18gav0aqp4fg"; | ||
23 | }; | ||
24 | }; | ||
25 | }; | ||
26 | "components/jquery" = { | ||
27 | targetDir = ""; | ||
28 | src = composerEnv.buildZipPackage { | ||
29 | name = "components-jquery-459648cda77875519c5da3ae1dd0ed5d170aa649"; | ||
30 | src = fetchurl { | ||
31 | url = https://api.github.com/repos/components/jquery/zipball/459648cda77875519c5da3ae1dd0ed5d170aa649; | ||
32 | sha256 = "04jv8yifhwx0cpkw3y3ng0bs2dv77pzrdd640p59rjxwba6r1lbb"; | ||
33 | }; | ||
34 | }; | ||
35 | }; | ||
36 | "components/jqueryui" = { | ||
37 | targetDir = ""; | ||
38 | src = composerEnv.buildZipPackage { | ||
39 | name = "components-jqueryui-c34f8dbf3ba57b3784b93f26119f436c0e8288e1"; | ||
40 | src = fetchurl { | ||
41 | url = https://api.github.com/repos/components/jqueryui/zipball/c34f8dbf3ba57b3784b93f26119f436c0e8288e1; | ||
42 | sha256 = "00nkg6z8g6l3jysyzsfmfxhxqcdsd3jfqib28j8kn2frzx508xv9"; | ||
43 | }; | ||
44 | }; | ||
45 | }; | ||
46 | "composer/ca-bundle" = { | ||
47 | targetDir = ""; | ||
48 | src = composerEnv.buildZipPackage { | ||
49 | name = "composer-ca-bundle-8afa52cd417f4ec417b4bfe86b68106538a87660"; | ||
50 | src = fetchurl { | ||
51 | url = https://api.github.com/repos/composer/ca-bundle/zipball/8afa52cd417f4ec417b4bfe86b68106538a87660; | ||
52 | sha256 = "18b0gq29frjf4yhl4sl3i3zbz6zr3qjgsjb8cjdhz65vpb50581p"; | ||
53 | }; | ||
54 | }; | ||
55 | }; | ||
56 | "doctrine/annotations" = { | ||
57 | targetDir = ""; | ||
58 | src = composerEnv.buildZipPackage { | ||
59 | name = "doctrine-annotations-c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5"; | ||
60 | src = fetchurl { | ||
61 | url = https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5; | ||
62 | sha256 = "0b80xpqd3j99xgm0c41kbgy0k6knrfnd29223c93295sb12112g7"; | ||
63 | }; | ||
64 | }; | ||
65 | }; | ||
66 | "doctrine/cache" = { | ||
67 | targetDir = ""; | ||
68 | src = composerEnv.buildZipPackage { | ||
69 | name = "doctrine-cache-d768d58baee9a4862ca783840eca1b9add7a7f57"; | ||
70 | src = fetchurl { | ||
71 | url = https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57; | ||
72 | sha256 = "1kljhw4gqp12iz88h6ymsrlfir2fis7icn6dffyizfc1csyb4s2i"; | ||
73 | }; | ||
74 | }; | ||
75 | }; | ||
76 | "doctrine/collections" = { | ||
77 | targetDir = ""; | ||
78 | src = composerEnv.buildZipPackage { | ||
79 | name = "doctrine-collections-a01ee38fcd999f34d9bfbcee59dbda5105449cbf"; | ||
80 | src = fetchurl { | ||
81 | url = https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf; | ||
82 | sha256 = "0d36zc21ka0pdac9xpkxsgf5zzw9gp0m9lk3r3xs5y70j0lkkkis"; | ||
83 | }; | ||
84 | }; | ||
85 | }; | ||
86 | "doctrine/common" = { | ||
87 | targetDir = ""; | ||
88 | src = composerEnv.buildZipPackage { | ||
89 | name = "doctrine-common-30e33f60f64deec87df728c02b107f82cdafad9d"; | ||
90 | src = fetchurl { | ||
91 | url = https://api.github.com/repos/doctrine/common/zipball/30e33f60f64deec87df728c02b107f82cdafad9d; | ||
92 | sha256 = "0s4vv14ibyx62a9aj3wn5cs2bbxd72fajmfmi8qb5l11gx0375na"; | ||
93 | }; | ||
94 | }; | ||
95 | }; | ||
96 | "doctrine/dbal" = { | ||
97 | targetDir = ""; | ||
98 | src = composerEnv.buildZipPackage { | ||
99 | name = "doctrine-dbal-22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9"; | ||
100 | src = fetchurl { | ||
101 | url = https://api.github.com/repos/doctrine/dbal/zipball/22800bd651c1d8d2a9719e2a3dc46d5108ebfcc9; | ||
102 | sha256 = "0kbahs699jd8pxf512dgg7arv49dc7qzi3mx8snxqm4h15n5brnj"; | ||
103 | }; | ||
104 | }; | ||
105 | }; | ||
106 | "doctrine/doctrine-bundle" = { | ||
107 | targetDir = ""; | ||
108 | src = composerEnv.buildZipPackage { | ||
109 | name = "doctrine-doctrine-bundle-82d2c63cd09acbde2332f55d9aa7b28aefe4983d"; | ||
110 | src = fetchurl { | ||
111 | url = https://api.github.com/repos/doctrine/DoctrineBundle/zipball/82d2c63cd09acbde2332f55d9aa7b28aefe4983d; | ||
112 | sha256 = "0gzrigv360rp50yxpwidbkf8vlagym0w1if010yz5xcfrz37cpn3"; | ||
113 | }; | ||
114 | }; | ||
115 | }; | ||
116 | "doctrine/doctrine-cache-bundle" = { | ||
117 | targetDir = ""; | ||
118 | src = composerEnv.buildZipPackage { | ||
119 | name = "doctrine-doctrine-cache-bundle-5514c90d9fb595e1095e6d66ebb98ce9ef049927"; | ||
120 | src = fetchurl { | ||
121 | url = https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/5514c90d9fb595e1095e6d66ebb98ce9ef049927; | ||
122 | sha256 = "04njrfhw4fc2ifacd9h0wd9i14l7ycv3hanbqrw5ilsai02j6asa"; | ||
123 | }; | ||
124 | }; | ||
125 | }; | ||
126 | "doctrine/doctrine-migrations-bundle" = { | ||
127 | targetDir = ""; | ||
128 | src = composerEnv.buildZipPackage { | ||
129 | name = "doctrine-doctrine-migrations-bundle-49fa399181db4bf4f9f725126bd1cb65c4398dce"; | ||
130 | src = fetchurl { | ||
131 | url = https://api.github.com/repos/doctrine/DoctrineMigrationsBundle/zipball/49fa399181db4bf4f9f725126bd1cb65c4398dce; | ||
132 | sha256 = "1a73xjhjrjlvkh8d253kfc2rbxd2h4hwafhv5078dy7rg6x9blyn"; | ||
133 | }; | ||
134 | }; | ||
135 | }; | ||
136 | "doctrine/event-manager" = { | ||
137 | targetDir = ""; | ||
138 | src = composerEnv.buildZipPackage { | ||
139 | name = "doctrine-event-manager-a520bc093a0170feeb6b14e9d83f3a14452e64b3"; | ||
140 | src = fetchurl { | ||
141 | url = https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3; | ||
142 | sha256 = "165cxvw4idqj01l63nya2whpdb3fz6ld54rx198b71bzwfrydl88"; | ||
143 | }; | ||
144 | }; | ||
145 | }; | ||
146 | "doctrine/inflector" = { | ||
147 | targetDir = ""; | ||
148 | src = composerEnv.buildZipPackage { | ||
149 | name = "doctrine-inflector-5527a48b7313d15261292c149e55e26eae771b0a"; | ||
150 | src = fetchurl { | ||
151 | url = https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a; | ||
152 | sha256 = "0ng6vlwjr8h6hqwa32ynykz1mhlfsff5hirjidlk086ab6njppa5"; | ||
153 | }; | ||
154 | }; | ||
155 | }; | ||
156 | "doctrine/instantiator" = { | ||
157 | targetDir = ""; | ||
158 | src = composerEnv.buildZipPackage { | ||
159 | name = "doctrine-instantiator-185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"; | ||
160 | src = fetchurl { | ||
161 | url = https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda; | ||
162 | sha256 = "1mah9a6mb30qad1zryzjain2dxw29d8h4bjkbcs3srpm3p891msy"; | ||
163 | }; | ||
164 | }; | ||
165 | }; | ||
166 | "doctrine/lexer" = { | ||
167 | targetDir = ""; | ||
168 | src = composerEnv.buildZipPackage { | ||
169 | name = "doctrine-lexer-83893c552fd2045dd78aef794c31e694c37c0b8c"; | ||
170 | src = fetchurl { | ||
171 | url = https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c; | ||
172 | sha256 = "0cyh3vwcl163cx1vrcwmhlh5jg9h47xwiqgzc6rwscxw0ppd1v74"; | ||
173 | }; | ||
174 | }; | ||
175 | }; | ||
176 | "doctrine/migrations" = { | ||
177 | targetDir = ""; | ||
178 | src = composerEnv.buildZipPackage { | ||
179 | name = "doctrine-migrations-215438c0eef3e5f9b7da7d09c6b90756071b43e6"; | ||
180 | src = fetchurl { | ||
181 | url = https://api.github.com/repos/doctrine/migrations/zipball/215438c0eef3e5f9b7da7d09c6b90756071b43e6; | ||
182 | sha256 = "0k6sgw65vji9rgib10mq2m634m41a67inspkrcw4qixig2lnb3ld"; | ||
183 | }; | ||
184 | }; | ||
185 | }; | ||
186 | "doctrine/orm" = { | ||
187 | targetDir = ""; | ||
188 | src = composerEnv.buildZipPackage { | ||
189 | name = "doctrine-orm-434820973cadf2da2d66e7184be370084cc32ca8"; | ||
190 | src = fetchurl { | ||
191 | url = https://api.github.com/repos/doctrine/orm/zipball/434820973cadf2da2d66e7184be370084cc32ca8; | ||
192 | sha256 = "114fyq8kaf5qzfkp8sdygqflf3z94va1cs5c3scycfpg9cmi4gls"; | ||
193 | }; | ||
194 | }; | ||
195 | }; | ||
196 | "doctrine/persistence" = { | ||
197 | targetDir = ""; | ||
198 | src = composerEnv.buildZipPackage { | ||
199 | name = "doctrine-persistence-c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38"; | ||
200 | src = fetchurl { | ||
201 | url = https://api.github.com/repos/doctrine/persistence/zipball/c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38; | ||
202 | sha256 = "0xdm5n38rjas1mlyxc15sg1as5h7y012mdb0j9lr6cvphgnaxxv7"; | ||
203 | }; | ||
204 | }; | ||
205 | }; | ||
206 | "doctrine/reflection" = { | ||
207 | targetDir = ""; | ||
208 | src = composerEnv.buildZipPackage { | ||
209 | name = "doctrine-reflection-02538d3f95e88eb397a5f86274deb2c6175c2ab6"; | ||
210 | src = fetchurl { | ||
211 | url = https://api.github.com/repos/doctrine/reflection/zipball/02538d3f95e88eb397a5f86274deb2c6175c2ab6; | ||
212 | sha256 = "12n9zik4lxb9lx1jf0nbvg9vl9nv958a7z1yjx48scfxd1d1sxjy"; | ||
213 | }; | ||
214 | }; | ||
215 | }; | ||
216 | "fig/link-util" = { | ||
217 | targetDir = ""; | ||
218 | src = composerEnv.buildZipPackage { | ||
219 | name = "fig-link-util-1a07821801a148be4add11ab0603e4af55a72fac"; | ||
220 | src = fetchurl { | ||
221 | url = https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac; | ||
222 | sha256 = "0ky1pq4a17br5zvcychjghgwr6wpkgp409hdv0ljdk3ks90w5w64"; | ||
223 | }; | ||
224 | }; | ||
225 | }; | ||
226 | "gedmo/doctrine-extensions" = { | ||
227 | targetDir = ""; | ||
228 | src = composerEnv.buildZipPackage { | ||
229 | name = "gedmo-doctrine-extensions-87c78ff9fd4b90460386f753d95622f6fbbfcb27"; | ||
230 | src = fetchurl { | ||
231 | url = https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/87c78ff9fd4b90460386f753d95622f6fbbfcb27; | ||
232 | sha256 = "0jfg0a19lhdv5b3c032ghknxhvc1f0x2n7fcwp47bm1rbz222q0z"; | ||
233 | }; | ||
234 | }; | ||
235 | }; | ||
236 | "immae/ludivine-ckeditor-component" = { | ||
237 | targetDir = ""; | ||
238 | src = fetchgit { | ||
239 | name = "immae-ludivine-ckeditor-component-1794320dcfdfcd19572fb1676294f9853a6bbc20"; | ||
240 | url = "https://git.immae.eu/perso/Immae/Projets/packagist/ludivine-ckeditor-component.git"; | ||
241 | rev = "1794320dcfdfcd19572fb1676294f9853a6bbc20"; | ||
242 | sha256 = "080f3znvp0aj5jdpc3ywis0kfzvkwz5mw2jcj12gwq3r5g5i8zdq"; | ||
243 | }; | ||
244 | }; | ||
245 | "immae/ludivine-slick-component" = { | ||
246 | targetDir = ""; | ||
247 | src = fetchgit { | ||
248 | name = "immae-ludivine-slick-component-604734c4a960aac3d99f1008337181ed2b0f04db"; | ||
249 | url = "https://git.immae.eu/perso/Immae/Projets/packagist/ludivine-slick-component.git"; | ||
250 | rev = "604734c4a960aac3d99f1008337181ed2b0f04db"; | ||
251 | sha256 = "041wqv9pa9nvqcgqykx6cnbj539qnr9h1iym7l54igw12yj57w06"; | ||
252 | }; | ||
253 | }; | ||
254 | "incenteev/composer-parameter-handler" = { | ||
255 | targetDir = ""; | ||
256 | src = composerEnv.buildZipPackage { | ||
257 | name = "incenteev-composer-parameter-handler-933c45a34814f27f2345c11c37d46b3ca7303550"; | ||
258 | src = fetchurl { | ||
259 | url = https://api.github.com/repos/Incenteev/ParameterHandler/zipball/933c45a34814f27f2345c11c37d46b3ca7303550; | ||
260 | sha256 = "1zqdwlcl790kjyz4rkpva35xkfsp8kslds82fzznj0yigkgnbifm"; | ||
261 | }; | ||
262 | }; | ||
263 | }; | ||
264 | "jdorn/sql-formatter" = { | ||
265 | targetDir = ""; | ||
266 | src = composerEnv.buildZipPackage { | ||
267 | name = "jdorn-sql-formatter-64990d96e0959dff8e059dfcdc1af130728d92bc"; | ||
268 | src = fetchurl { | ||
269 | url = https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc; | ||
270 | sha256 = "1dnmkm8mxylvxjwi0bdkzrlklncqx92fa4fwqp5bh2ypj8gaagzi"; | ||
271 | }; | ||
272 | }; | ||
273 | }; | ||
274 | "kriswallsmith/assetic" = { | ||
275 | targetDir = ""; | ||
276 | src = composerEnv.buildZipPackage { | ||
277 | name = "kriswallsmith-assetic-e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1"; | ||
278 | src = fetchurl { | ||
279 | url = https://api.github.com/repos/kriswallsmith/assetic/zipball/e911c437dbdf006a8f62c2f59b15b2d69a5e0aa1; | ||
280 | sha256 = "1dqk4zvx8fgqf8rb81sj9bipl5431jib2b9kcvxyig5fw99irpf8"; | ||
281 | }; | ||
282 | }; | ||
283 | }; | ||
284 | "leapt/im-bundle" = { | ||
285 | targetDir = ""; | ||
286 | src = composerEnv.buildZipPackage { | ||
287 | name = "leapt-im-bundle-83442778d118f6edb537b93f9746c3a97e56c3d1"; | ||
288 | src = fetchurl { | ||
289 | url = https://api.github.com/repos/leapt/im-bundle/zipball/83442778d118f6edb537b93f9746c3a97e56c3d1; | ||
290 | sha256 = "1gm4ih3v1j0xjm7mrpspd3yacdwvbqgag22cyqmix0hc9hw3pc6a"; | ||
291 | }; | ||
292 | }; | ||
293 | }; | ||
294 | "luxifer/doctrine-functions" = { | ||
295 | targetDir = ""; | ||
296 | src = composerEnv.buildZipPackage { | ||
297 | name = "luxifer-doctrine-functions-e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c"; | ||
298 | src = fetchurl { | ||
299 | url = https://api.github.com/repos/luxifer/doctrine-functions/zipball/e1c0bb1a5cb002d9fc82d8b32a5da28c02d34c6c; | ||
300 | sha256 = "1sw4826nvs5q0y2na9m26rbxfiaw0kfqwhky7x7apicgx5adqfa9"; | ||
301 | }; | ||
302 | }; | ||
303 | }; | ||
304 | "monolog/monolog" = { | ||
305 | targetDir = ""; | ||
306 | src = composerEnv.buildZipPackage { | ||
307 | name = "monolog-monolog-bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266"; | ||
308 | src = fetchurl { | ||
309 | url = https://api.github.com/repos/Seldaek/monolog/zipball/bfc9ebb28f97e7a24c45bdc3f0ff482e47bb0266; | ||
310 | sha256 = "0h3nnxjf2bdh7nmpqnpij99lqv6bw13r2bx83d8vn5zvblwg5png"; | ||
311 | }; | ||
312 | }; | ||
313 | }; | ||
314 | "ocramius/package-versions" = { | ||
315 | targetDir = ""; | ||
316 | needsModifyRights = true; | ||
317 | src = composerEnv.buildZipPackage { | ||
318 | name = "ocramius-package-versions-4489d5002c49d55576fa0ba786f42dbb009be46f"; | ||
319 | src = fetchurl { | ||
320 | url = https://api.github.com/repos/Ocramius/PackageVersions/zipball/4489d5002c49d55576fa0ba786f42dbb009be46f; | ||
321 | sha256 = "039c404g9597x45xh04bnn8kmcyknkbnr57yb9s7vf29vfrg4881"; | ||
322 | }; | ||
323 | }; | ||
324 | }; | ||
325 | "ocramius/proxy-manager" = { | ||
326 | targetDir = ""; | ||
327 | src = composerEnv.buildZipPackage { | ||
328 | name = "ocramius-proxy-manager-14b137b06b0f911944132df9d51e445a35920ab1"; | ||
329 | src = fetchurl { | ||
330 | url = https://api.github.com/repos/Ocramius/ProxyManager/zipball/14b137b06b0f911944132df9d51e445a35920ab1; | ||
331 | sha256 = "10y5msgh2jdlw4w075fasv40yq01szjy15m3f0wgc89hlfmqz0sn"; | ||
332 | }; | ||
333 | }; | ||
334 | }; | ||
335 | "paragonie/random_compat" = { | ||
336 | targetDir = ""; | ||
337 | src = composerEnv.buildZipPackage { | ||
338 | name = "paragonie-random_compat-84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95"; | ||
339 | src = fetchurl { | ||
340 | url = https://api.github.com/repos/paragonie/random_compat/zipball/84b4dfb120c6f9b4ff7b3685f9b8f1aa365a0c95; | ||
341 | sha256 = "03nsccdvcb79l64b7lsmx0n8ldf5z3v8niqr7bpp6wg401qp9p09"; | ||
342 | }; | ||
343 | }; | ||
344 | }; | ||
345 | "psr/cache" = { | ||
346 | targetDir = ""; | ||
347 | src = composerEnv.buildZipPackage { | ||
348 | name = "psr-cache-d11b50ad223250cf17b86e38383413f5a6764bf8"; | ||
349 | src = fetchurl { | ||
350 | url = https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8; | ||
351 | sha256 = "06i2k3dx3b4lgn9a4v1dlgv8l9wcl4kl7vzhh63lbji0q96hv8qz"; | ||
352 | }; | ||
353 | }; | ||
354 | }; | ||
355 | "psr/container" = { | ||
356 | targetDir = ""; | ||
357 | src = composerEnv.buildZipPackage { | ||
358 | name = "psr-container-b7ce3b176482dbbc1245ebf52b181af44c2cf55f"; | ||
359 | src = fetchurl { | ||
360 | url = https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f; | ||
361 | sha256 = "0rkz64vgwb0gfi09klvgay4qnw993l1dc03vyip7d7m2zxi6cy4j"; | ||
362 | }; | ||
363 | }; | ||
364 | }; | ||
365 | "psr/link" = { | ||
366 | targetDir = ""; | ||
367 | src = composerEnv.buildZipPackage { | ||
368 | name = "psr-link-eea8e8662d5cd3ae4517c9b864493f59fca95562"; | ||
369 | src = fetchurl { | ||
370 | url = https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562; | ||
371 | sha256 = "091k4p9irkqnmq9b0p792wz1hb7dm4rafpjilw9im9xhsxgkmr13"; | ||
372 | }; | ||
373 | }; | ||
374 | }; | ||
375 | "psr/log" = { | ||
376 | targetDir = ""; | ||
377 | src = composerEnv.buildZipPackage { | ||
378 | name = "psr-log-6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd"; | ||
379 | src = fetchurl { | ||
380 | url = https://api.github.com/repos/php-fig/log/zipball/6c001f1daafa3a3ac1d8ff69ee4db8e799a654dd; | ||
381 | sha256 = "1i351p3gd1pgjcjxv7mwwkiw79f1xiqr38irq22156h05zlcx80d"; | ||
382 | }; | ||
383 | }; | ||
384 | }; | ||
385 | "psr/simple-cache" = { | ||
386 | targetDir = ""; | ||
387 | src = composerEnv.buildZipPackage { | ||
388 | name = "psr-simple-cache-408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"; | ||
389 | src = fetchurl { | ||
390 | url = https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b; | ||
391 | sha256 = "1djgzclkamjxi9jy4m9ggfzgq1vqxaga2ip7l3cj88p7rwkzjxgw"; | ||
392 | }; | ||
393 | }; | ||
394 | }; | ||
395 | "robloach/component-installer" = { | ||
396 | targetDir = ""; | ||
397 | src = composerEnv.buildZipPackage { | ||
398 | name = "robloach-component-installer-908a859aa7c4949ba9ad67091e67bac10b66d3d7"; | ||
399 | src = fetchurl { | ||
400 | url = https://api.github.com/repos/RobLoach/component-installer/zipball/908a859aa7c4949ba9ad67091e67bac10b66d3d7; | ||
401 | sha256 = "19y5sv4k338bihzmm8iac6q43r18vxhmbpvrdhz8jn39r51ampq9"; | ||
402 | }; | ||
403 | }; | ||
404 | }; | ||
405 | "sensio/distribution-bundle" = { | ||
406 | targetDir = ""; | ||
407 | src = composerEnv.buildZipPackage { | ||
408 | name = "sensio-distribution-bundle-59eac70f15f97ee945924948a6f5e2f6f86b7a4b"; | ||
409 | src = fetchurl { | ||
410 | url = https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/59eac70f15f97ee945924948a6f5e2f6f86b7a4b; | ||
411 | sha256 = "05mj4c0ahwg6l2wipyqfyyjjp1m2vvl7ymp61nvwv7zhvqacvljs"; | ||
412 | }; | ||
413 | }; | ||
414 | }; | ||
415 | "sensio/framework-extra-bundle" = { | ||
416 | targetDir = ""; | ||
417 | src = composerEnv.buildZipPackage { | ||
418 | name = "sensio-framework-extra-bundle-bb907234df776b68922eb4b25bfa061683597b6a"; | ||
419 | src = fetchurl { | ||
420 | url = https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/bb907234df776b68922eb4b25bfa061683597b6a; | ||
421 | sha256 = "011hcljjcfq5qy4a7mlf0hwqxyb58yci40ini0n5rqandcyk2nck"; | ||
422 | }; | ||
423 | }; | ||
424 | }; | ||
425 | "sensiolabs/security-checker" = { | ||
426 | targetDir = ""; | ||
427 | src = composerEnv.buildZipPackage { | ||
428 | name = "sensiolabs-security-checker-46be3f58adac13084497961e10eed9a7fb4d44d1"; | ||
429 | src = fetchurl { | ||
430 | url = https://api.github.com/repos/sensiolabs/security-checker/zipball/46be3f58adac13084497961e10eed9a7fb4d44d1; | ||
431 | sha256 = "1caqf3hdfsajj9nb8fpinvs6apv90g1srwxcyxdnr6a8d6g0p6qi"; | ||
432 | }; | ||
433 | }; | ||
434 | }; | ||
435 | "swiftmailer/swiftmailer" = { | ||
436 | targetDir = ""; | ||
437 | src = composerEnv.buildZipPackage { | ||
438 | name = "swiftmailer-swiftmailer-181b89f18a90f8925ef805f950d47a7190e9b950"; | ||
439 | src = fetchurl { | ||
440 | url = https://api.github.com/repos/swiftmailer/swiftmailer/zipball/181b89f18a90f8925ef805f950d47a7190e9b950; | ||
441 | sha256 = "0hkmawv3bhbqdavy4wxqhzajg5zqd7chsi8w27y2zdi5r35az75d"; | ||
442 | }; | ||
443 | }; | ||
444 | }; | ||
445 | "symfony/assetic-bundle" = { | ||
446 | targetDir = ""; | ||
447 | src = composerEnv.buildZipPackage { | ||
448 | name = "symfony-assetic-bundle-2e0a23a4874838e26de6f025e02fc63328921a4c"; | ||
449 | src = fetchurl { | ||
450 | url = https://api.github.com/repos/symfony/assetic-bundle/zipball/2e0a23a4874838e26de6f025e02fc63328921a4c; | ||
451 | sha256 = "17rxrkyzxa6x5nn7qhhhdgx4z0nlznnq5fifza4wv9znca8bbwyc"; | ||
452 | }; | ||
453 | }; | ||
454 | }; | ||
455 | "symfony/monolog-bundle" = { | ||
456 | targetDir = ""; | ||
457 | src = composerEnv.buildZipPackage { | ||
458 | name = "symfony-monolog-bundle-572e143afc03419a75ab002c80a2fd99299195ff"; | ||
459 | src = fetchurl { | ||
460 | url = https://api.github.com/repos/symfony/monolog-bundle/zipball/572e143afc03419a75ab002c80a2fd99299195ff; | ||
461 | sha256 = "0g8icydnwfbqcbc56pqyc8bv1vp31331w0r75r3hqh225p2j1nd7"; | ||
462 | }; | ||
463 | }; | ||
464 | }; | ||
465 | "symfony/polyfill-apcu" = { | ||
466 | targetDir = ""; | ||
467 | src = composerEnv.buildZipPackage { | ||
468 | name = "symfony-polyfill-apcu-19e1b73bf255265ad0b568f81766ae2a3266d8d2"; | ||
469 | src = fetchurl { | ||
470 | url = https://api.github.com/repos/symfony/polyfill-apcu/zipball/19e1b73bf255265ad0b568f81766ae2a3266d8d2; | ||
471 | sha256 = "0jg33c81kwkpxk0b18jkslz9jkbkxl5k48h6m5b33dm63p1fj05r"; | ||
472 | }; | ||
473 | }; | ||
474 | }; | ||
475 | "symfony/polyfill-ctype" = { | ||
476 | targetDir = ""; | ||
477 | src = composerEnv.buildZipPackage { | ||
478 | name = "symfony-polyfill-ctype-e3d826245268269cd66f8326bd8bc066687b4a19"; | ||
479 | src = fetchurl { | ||
480 | url = https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19; | ||
481 | sha256 = "16md0qmy5jvvl7lc6n6r5hxjdr5i30vl6n9rpkm4b11rh2nqh7mh"; | ||
482 | }; | ||
483 | }; | ||
484 | }; | ||
485 | "symfony/polyfill-intl-icu" = { | ||
486 | targetDir = ""; | ||
487 | src = composerEnv.buildZipPackage { | ||
488 | name = "symfony-polyfill-intl-icu-f22a90256d577c7ef7efad8df1f0201663d57644"; | ||
489 | src = fetchurl { | ||
490 | url = https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/f22a90256d577c7ef7efad8df1f0201663d57644; | ||
491 | sha256 = "0x7h8l248l1gc07xmvfixq6p80ifdaa29qympfq3jzfb79k69slq"; | ||
492 | }; | ||
493 | }; | ||
494 | }; | ||
495 | "symfony/polyfill-mbstring" = { | ||
496 | targetDir = ""; | ||
497 | src = composerEnv.buildZipPackage { | ||
498 | name = "symfony-polyfill-mbstring-c79c051f5b3a46be09205c73b80b346e4153e494"; | ||
499 | src = fetchurl { | ||
500 | url = https://api.github.com/repos/symfony/polyfill-mbstring/zipball/c79c051f5b3a46be09205c73b80b346e4153e494; | ||
501 | sha256 = "18v2777cky55ah6xi4dh383mp4iddwzmnvx81qd86y1kgfykwhpi"; | ||
502 | }; | ||
503 | }; | ||
504 | }; | ||
505 | "symfony/polyfill-php56" = { | ||
506 | targetDir = ""; | ||
507 | src = composerEnv.buildZipPackage { | ||
508 | name = "symfony-polyfill-php56-ff208829fe1aa48ab9af356992bb7199fed551af"; | ||
509 | src = fetchurl { | ||
510 | url = https://api.github.com/repos/symfony/polyfill-php56/zipball/ff208829fe1aa48ab9af356992bb7199fed551af; | ||
511 | sha256 = "0vmpiwakc7hpbr6jwpk7cqcy41ybgwl6jkn3q8c4ryxynknn5hfk"; | ||
512 | }; | ||
513 | }; | ||
514 | }; | ||
515 | "symfony/polyfill-php70" = { | ||
516 | targetDir = ""; | ||
517 | src = composerEnv.buildZipPackage { | ||
518 | name = "symfony-polyfill-php70-6b88000cdd431cd2e940caa2cb569201f3f84224"; | ||
519 | src = fetchurl { | ||
520 | url = https://api.github.com/repos/symfony/polyfill-php70/zipball/6b88000cdd431cd2e940caa2cb569201f3f84224; | ||
521 | sha256 = "08h77r1i2q4pwdd0yk3pfhqqgk0z7gwmkzmvykx9bfv1z7a0h8ik"; | ||
522 | }; | ||
523 | }; | ||
524 | }; | ||
525 | "symfony/polyfill-util" = { | ||
526 | targetDir = ""; | ||
527 | src = composerEnv.buildZipPackage { | ||
528 | name = "symfony-polyfill-util-3b58903eae668d348a7126f999b0da0f2f93611c"; | ||
529 | src = fetchurl { | ||
530 | url = https://api.github.com/repos/symfony/polyfill-util/zipball/3b58903eae668d348a7126f999b0da0f2f93611c; | ||
531 | sha256 = "00bb5mgljk6d54nyvd4gmc7mbzfr4b4q7h3rxmv8rzq613wcjp3i"; | ||
532 | }; | ||
533 | }; | ||
534 | }; | ||
535 | "symfony/swiftmailer-bundle" = { | ||
536 | targetDir = ""; | ||
537 | src = composerEnv.buildZipPackage { | ||
538 | name = "symfony-swiftmailer-bundle-c4808f5169efc05567be983909d00f00521c53ec"; | ||
539 | src = fetchurl { | ||
540 | url = https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec; | ||
541 | sha256 = "0jmd3slhb3gf3c3krmk2a9fi4ixdxvqlimdkfpj0sfaaq0115y01"; | ||
542 | }; | ||
543 | }; | ||
544 | }; | ||
545 | "symfony/symfony" = { | ||
546 | targetDir = ""; | ||
547 | src = composerEnv.buildZipPackage { | ||
548 | name = "symfony-symfony-f6b8ddc362b1cf3fb06548693c3adbb736092412"; | ||
549 | src = fetchurl { | ||
550 | url = https://api.github.com/repos/symfony/symfony/zipball/f6b8ddc362b1cf3fb06548693c3adbb736092412; | ||
551 | sha256 = "0ip7k5xf34w4p1zvv2nkv4nyik3asidk3zlgzyc1v57429z0f28q"; | ||
552 | }; | ||
553 | }; | ||
554 | }; | ||
555 | "twig/extensions" = { | ||
556 | targetDir = ""; | ||
557 | src = composerEnv.buildZipPackage { | ||
558 | name = "twig-extensions-57873c8b0c1be51caa47df2cdb824490beb16202"; | ||
559 | src = fetchurl { | ||
560 | url = https://api.github.com/repos/twigphp/Twig-extensions/zipball/57873c8b0c1be51caa47df2cdb824490beb16202; | ||
561 | sha256 = "1sjajjd6vnczvdrl9b8zhzr06l5dflzqiwg9d33d92q8gli4j7jn"; | ||
562 | }; | ||
563 | }; | ||
564 | }; | ||
565 | "twig/twig" = { | ||
566 | targetDir = ""; | ||
567 | src = composerEnv.buildZipPackage { | ||
568 | name = "twig-twig-a11dd39f5b6589e14f0ff3b36675d06047c589b1"; | ||
569 | src = fetchurl { | ||
570 | url = https://api.github.com/repos/twigphp/Twig/zipball/a11dd39f5b6589e14f0ff3b36675d06047c589b1; | ||
571 | sha256 = "0rnwam9379gj5m4ik0fh6c81dbr7kwj2b3x1gnmpf6awa5fm261n"; | ||
572 | }; | ||
573 | }; | ||
574 | }; | ||
575 | "zendframework/zend-code" = { | ||
576 | targetDir = ""; | ||
577 | src = composerEnv.buildZipPackage { | ||
578 | name = "zendframework-zend-code-c21db169075c6ec4b342149f446e7b7b724f95eb"; | ||
579 | src = fetchurl { | ||
580 | url = https://api.github.com/repos/zendframework/zend-code/zipball/c21db169075c6ec4b342149f446e7b7b724f95eb; | ||
581 | sha256 = "031mfsahjkl63348020wq05273kvszx0dv2766zmzncnd6fcggw1"; | ||
582 | }; | ||
583 | }; | ||
584 | }; | ||
585 | "zendframework/zend-eventmanager" = { | ||
586 | targetDir = ""; | ||
587 | src = composerEnv.buildZipPackage { | ||
588 | name = "zendframework-zend-eventmanager-a5e2583a211f73604691586b8406ff7296a946dd"; | ||
589 | src = fetchurl { | ||
590 | url = https://api.github.com/repos/zendframework/zend-eventmanager/zipball/a5e2583a211f73604691586b8406ff7296a946dd; | ||
591 | sha256 = "08a05gn40hfdy2zhz4gcd3r6q7m7zcaks5kpvb9dx1awgx0pzr8n"; | ||
592 | }; | ||
593 | }; | ||
594 | }; | ||
595 | }; | ||
596 | devPackages = { | ||
597 | "doctrine/data-fixtures" = { | ||
598 | targetDir = ""; | ||
599 | src = composerEnv.buildZipPackage { | ||
600 | name = "doctrine-data-fixtures-3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a"; | ||
601 | src = fetchurl { | ||
602 | url = https://api.github.com/repos/doctrine/data-fixtures/zipball/3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a; | ||
603 | sha256 = "0wbxhy7hq17laqgnq9x9ygysv0n1kn7s4x3v89pk7iy622pil3sm"; | ||
604 | }; | ||
605 | }; | ||
606 | }; | ||
607 | "doctrine/doctrine-fixtures-bundle" = { | ||
608 | targetDir = ""; | ||
609 | src = composerEnv.buildZipPackage { | ||
610 | name = "doctrine-doctrine-fixtures-bundle-74b8cc70a4a25b774628ee59f4cdf3623a146273"; | ||
611 | src = fetchurl { | ||
612 | url = https://api.github.com/repos/doctrine/DoctrineFixturesBundle/zipball/74b8cc70a4a25b774628ee59f4cdf3623a146273; | ||
613 | sha256 = "1bbflq8k6izwqgp9ka2gyb5y96a80b4lnlc5wrgc5gnih7hqidlf"; | ||
614 | }; | ||
615 | }; | ||
616 | }; | ||
617 | "fzaninotto/faker" = { | ||
618 | targetDir = ""; | ||
619 | src = composerEnv.buildZipPackage { | ||
620 | name = "fzaninotto-faker-d0190b156bcca848d401fb80f31f504f37141c8d"; | ||
621 | src = fetchurl { | ||
622 | url = https://api.github.com/repos/fzaninotto/Faker/zipball/d0190b156bcca848d401fb80f31f504f37141c8d; | ||
623 | sha256 = "1x7xrxw14x7b0iq7sxi9ynswk8ljga62i77ch7xip4dwgq1dypvi"; | ||
624 | }; | ||
625 | }; | ||
626 | }; | ||
627 | "league/factory-muffin" = { | ||
628 | targetDir = ""; | ||
629 | src = composerEnv.buildZipPackage { | ||
630 | name = "league-factory-muffin-316ed2bac70178567f995d877b831804c9c58d5a"; | ||
631 | src = fetchurl { | ||
632 | url = https://api.github.com/repos/thephpleague/factory-muffin/zipball/316ed2bac70178567f995d877b831804c9c58d5a; | ||
633 | sha256 = "1fxh0hsqifmnhgkwyd460x3w9wn74369lmak3f1m24mn2asiynxq"; | ||
634 | }; | ||
635 | }; | ||
636 | }; | ||
637 | "league/factory-muffin-faker" = { | ||
638 | targetDir = ""; | ||
639 | src = composerEnv.buildZipPackage { | ||
640 | name = "league-factory-muffin-faker-30dbd11bb6be03b47e52bd60006ae198d20ab426"; | ||
641 | src = fetchurl { | ||
642 | url = https://api.github.com/repos/thephpleague/factory-muffin-faker/zipball/30dbd11bb6be03b47e52bd60006ae198d20ab426; | ||
643 | sha256 = "0dsimjdnsmzdd4vwjzw1gz1bb4zlhmv66g3fc9k4nj5bqch6mny1"; | ||
644 | }; | ||
645 | }; | ||
646 | }; | ||
647 | "mikey179/vfsStream" = { | ||
648 | targetDir = ""; | ||
649 | src = composerEnv.buildZipPackage { | ||
650 | name = "mikey179-vfsStream-d5fec95f541d4d71c4823bb5e30cf9b9e5b96145"; | ||
651 | src = fetchurl { | ||
652 | url = https://github.com/bovigo/vfsStream/archive/v1.6.5.zip; | ||
653 | sha256 = "16vi7ci8nxq5hxnzzjmmia73gdm55qcwn006c6hgdwa3i58dnr4l"; | ||
654 | }; | ||
655 | }; | ||
656 | }; | ||
657 | "phpdocumentor/reflection-common" = { | ||
658 | targetDir = ""; | ||
659 | src = composerEnv.buildZipPackage { | ||
660 | name = "phpdocumentor-reflection-common-21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"; | ||
661 | src = fetchurl { | ||
662 | url = https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6; | ||
663 | sha256 = "1yaf1zg9lnkfnq2ndpviv0hg5bza9vjvv5l4wgcn25lx1p8a94w2"; | ||
664 | }; | ||
665 | }; | ||
666 | }; | ||
667 | "phpdocumentor/reflection-docblock" = { | ||
668 | targetDir = ""; | ||
669 | src = composerEnv.buildZipPackage { | ||
670 | name = "phpdocumentor-reflection-docblock-94fd0001232e47129dd3504189fa1c7225010d08"; | ||
671 | src = fetchurl { | ||
672 | url = https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/94fd0001232e47129dd3504189fa1c7225010d08; | ||
673 | sha256 = "03zvxqb5n9ddvysj8mjdwf59h7sagj5x5z15nhs7mqpcky1w388x"; | ||
674 | }; | ||
675 | }; | ||
676 | }; | ||
677 | "phpdocumentor/type-resolver" = { | ||
678 | targetDir = ""; | ||
679 | src = composerEnv.buildZipPackage { | ||
680 | name = "phpdocumentor-type-resolver-9c977708995954784726e25d0cd1dddf4e65b0f7"; | ||
681 | src = fetchurl { | ||
682 | url = https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7; | ||
683 | sha256 = "0h888r2iy2290yp9i3fij8wd5b7960yi7yn1rwh26x1xxd83n2mb"; | ||
684 | }; | ||
685 | }; | ||
686 | }; | ||
687 | "phpspec/prophecy" = { | ||
688 | targetDir = ""; | ||
689 | src = composerEnv.buildZipPackage { | ||
690 | name = "phpspec-prophecy-4ba436b55987b4bf311cb7c6ba82aa528aac0a06"; | ||
691 | src = fetchurl { | ||
692 | url = https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06; | ||
693 | sha256 = "0sz9fg8r4yvpgrhsh6qaic3p89pafdj8bdf4izbcccq6mdhclxn6"; | ||
694 | }; | ||
695 | }; | ||
696 | }; | ||
697 | "phpunit/php-code-coverage" = { | ||
698 | targetDir = ""; | ||
699 | src = composerEnv.buildZipPackage { | ||
700 | name = "phpunit-php-code-coverage-eabf68b476ac7d0f73793aada060f1c1a9bf8979"; | ||
701 | src = fetchurl { | ||
702 | url = https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979; | ||
703 | sha256 = "0xfkf2kaqrid0ajr8qfh3qnpiqqddl0cmmdy6hd7l9y7ziy6qz8d"; | ||
704 | }; | ||
705 | }; | ||
706 | }; | ||
707 | "phpunit/php-file-iterator" = { | ||
708 | targetDir = ""; | ||
709 | src = composerEnv.buildZipPackage { | ||
710 | name = "phpunit-php-file-iterator-730b01bc3e867237eaac355e06a36b85dd93a8b4"; | ||
711 | src = fetchurl { | ||
712 | url = https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4; | ||
713 | sha256 = "0kbg907g9hrx7pv8v0wnf4ifqywdgvigq6y6z00lyhgd0b8is060"; | ||
714 | }; | ||
715 | }; | ||
716 | }; | ||
717 | "phpunit/php-text-template" = { | ||
718 | targetDir = ""; | ||
719 | src = composerEnv.buildZipPackage { | ||
720 | name = "phpunit-php-text-template-31f8b717e51d9a2afca6c9f046f5d69fc27c8686"; | ||
721 | src = fetchurl { | ||
722 | url = https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686; | ||
723 | sha256 = "1y03m38qqvsbvyakd72v4dram81dw3swyn5jpss153i5nmqr4p76"; | ||
724 | }; | ||
725 | }; | ||
726 | }; | ||
727 | "phpunit/php-timer" = { | ||
728 | targetDir = ""; | ||
729 | src = composerEnv.buildZipPackage { | ||
730 | name = "phpunit-php-timer-3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"; | ||
731 | src = fetchurl { | ||
732 | url = https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f; | ||
733 | sha256 = "1j04r0hqzrv6m1jk5nb92k2nnana72nscqpfk3rgv3fzrrv69ljr"; | ||
734 | }; | ||
735 | }; | ||
736 | }; | ||
737 | "phpunit/php-token-stream" = { | ||
738 | targetDir = ""; | ||
739 | src = composerEnv.buildZipPackage { | ||
740 | name = "phpunit-php-token-stream-1ce90ba27c42e4e44e6d8458241466380b51fa16"; | ||
741 | src = fetchurl { | ||
742 | url = https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16; | ||
743 | sha256 = "0j1v83m268cddhyzi8qvqfzhpz12hrm3dyw6skyqvljdp7l9x6lk"; | ||
744 | }; | ||
745 | }; | ||
746 | }; | ||
747 | "phpunit/phpunit" = { | ||
748 | targetDir = ""; | ||
749 | src = composerEnv.buildZipPackage { | ||
750 | name = "phpunit-phpunit-46023de9a91eec7dfb06cc56cb4e260017298517"; | ||
751 | src = fetchurl { | ||
752 | url = https://api.github.com/repos/sebastianbergmann/phpunit/zipball/46023de9a91eec7dfb06cc56cb4e260017298517; | ||
753 | sha256 = "0mxhgcmc575hw3n7czindgqiha8jhdi4p19h883vf15fg6xf5iv6"; | ||
754 | }; | ||
755 | }; | ||
756 | }; | ||
757 | "phpunit/phpunit-mock-objects" = { | ||
758 | targetDir = ""; | ||
759 | src = composerEnv.buildZipPackage { | ||
760 | name = "phpunit-phpunit-mock-objects-ac8e7a3db35738d56ee9a76e78a4e03d97628983"; | ||
761 | src = fetchurl { | ||
762 | url = https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983; | ||
763 | sha256 = "0s7nyyafdqw2hp7wsd2mxnjxpk26630vv3wii6hcdb0q8xy8r78i"; | ||
764 | }; | ||
765 | }; | ||
766 | }; | ||
767 | "sebastian/comparator" = { | ||
768 | targetDir = ""; | ||
769 | src = composerEnv.buildZipPackage { | ||
770 | name = "sebastian-comparator-2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"; | ||
771 | src = fetchurl { | ||
772 | url = https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be; | ||
773 | sha256 = "0ymarxgnr8b3iy0w18h5z13iiv0ja17vjryryzfcwlqqhlc6w7iq"; | ||
774 | }; | ||
775 | }; | ||
776 | }; | ||
777 | "sebastian/diff" = { | ||
778 | targetDir = ""; | ||
779 | src = composerEnv.buildZipPackage { | ||
780 | name = "sebastian-diff-7f066a26a962dbe58ddea9f72a4e82874a3975a4"; | ||
781 | src = fetchurl { | ||
782 | url = https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4; | ||
783 | sha256 = "1ppx21vjj79z6d584ryq451k7kvdc511awmqjkj9g4vxj1s1h3j6"; | ||
784 | }; | ||
785 | }; | ||
786 | }; | ||
787 | "sebastian/environment" = { | ||
788 | targetDir = ""; | ||
789 | src = composerEnv.buildZipPackage { | ||
790 | name = "sebastian-environment-be2c607e43ce4c89ecd60e75c6a85c126e754aea"; | ||
791 | src = fetchurl { | ||
792 | url = https://api.github.com/repos/sebastianbergmann/environment/zipball/be2c607e43ce4c89ecd60e75c6a85c126e754aea; | ||
793 | sha256 = "0gzgnk847kf18krq4ybbi2knzj7i0kdghsdlj6qynzzrlf7idij0"; | ||
794 | }; | ||
795 | }; | ||
796 | }; | ||
797 | "sebastian/exporter" = { | ||
798 | targetDir = ""; | ||
799 | src = composerEnv.buildZipPackage { | ||
800 | name = "sebastian-exporter-42c4c2eec485ee3e159ec9884f95b431287edde4"; | ||
801 | src = fetchurl { | ||
802 | url = https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4; | ||
803 | sha256 = "1p5mc4lqwxn79v06jjlgqxynblywcxw2mkhbf6r4jlz0bsrqafxn"; | ||
804 | }; | ||
805 | }; | ||
806 | }; | ||
807 | "sebastian/global-state" = { | ||
808 | targetDir = ""; | ||
809 | src = composerEnv.buildZipPackage { | ||
810 | name = "sebastian-global-state-bc37d50fea7d017d3d340f230811c9f1d7280af4"; | ||
811 | src = fetchurl { | ||
812 | url = https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4; | ||
813 | sha256 = "0y1x16mf9q38s7rlc7k2s6sxn2ccxmyk1q5zgh24hr4yp035f0pb"; | ||
814 | }; | ||
815 | }; | ||
816 | }; | ||
817 | "sebastian/recursion-context" = { | ||
818 | targetDir = ""; | ||
819 | src = composerEnv.buildZipPackage { | ||
820 | name = "sebastian-recursion-context-b19cc3298482a335a95f3016d2f8a6950f0fbcd7"; | ||
821 | src = fetchurl { | ||
822 | url = https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/b19cc3298482a335a95f3016d2f8a6950f0fbcd7; | ||
823 | sha256 = "1i9xdv55nkg1yy5q4lmpq1jsjif69hjrwmr1zha6b5qjf6ivlvjm"; | ||
824 | }; | ||
825 | }; | ||
826 | }; | ||
827 | "sebastian/version" = { | ||
828 | targetDir = ""; | ||
829 | src = composerEnv.buildZipPackage { | ||
830 | name = "sebastian-version-58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"; | ||
831 | src = fetchurl { | ||
832 | url = https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6; | ||
833 | sha256 = "1s71b6ss29pcsm0120myriwnzla1kpj13f3f739c7k1wfm69h4wz"; | ||
834 | }; | ||
835 | }; | ||
836 | }; | ||
837 | "sensio/generator-bundle" = { | ||
838 | targetDir = ""; | ||
839 | src = composerEnv.buildZipPackage { | ||
840 | name = "sensio-generator-bundle-28cbaa244bd0816fd8908b93f90380bcd7b67a65"; | ||
841 | src = fetchurl { | ||
842 | url = https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/28cbaa244bd0816fd8908b93f90380bcd7b67a65; | ||
843 | sha256 = "1j09y037xk843q8gcyfmwgy6dmn0h67pd5jnsvhj08h92ssbl0c3"; | ||
844 | }; | ||
845 | }; | ||
846 | }; | ||
847 | "symfony/phpunit-bridge" = { | ||
848 | targetDir = ""; | ||
849 | src = composerEnv.buildZipPackage { | ||
850 | name = "symfony-phpunit-bridge-2155067dfc73e0e77dbc26f236af17e4df552de5"; | ||
851 | src = fetchurl { | ||
852 | url = https://api.github.com/repos/symfony/phpunit-bridge/zipball/2155067dfc73e0e77dbc26f236af17e4df552de5; | ||
853 | sha256 = "1fhqyhvns69pkv086d1sp918bakqq9pk9d16nzck2s4pfdf097pj"; | ||
854 | }; | ||
855 | }; | ||
856 | }; | ||
857 | "webmozart/assert" = { | ||
858 | targetDir = ""; | ||
859 | src = composerEnv.buildZipPackage { | ||
860 | name = "webmozart-assert-83e253c8e0be5b0257b881e1827274667c5c17a9"; | ||
861 | src = fetchurl { | ||
862 | url = https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9; | ||
863 | sha256 = "0d84b0ms9mjpqx368gs7c3qs06mpbx5565j3vs43b1ygnyhhhaqk"; | ||
864 | }; | ||
865 | }; | ||
866 | }; | ||
867 | }; | ||
868 | } | ||
diff --git a/modules/private/websites/ludivine/integration.nix b/modules/private/websites/ludivine/integration.nix new file mode 100644 index 0000000..4e37c0c --- /dev/null +++ b/modules/private/websites/ludivine/integration.nix | |||
@@ -0,0 +1,151 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | secrets = config.myEnv.websites.ludivine.integration; | ||
4 | app = pkgs.callPackage ./app { | ||
5 | environment = secrets.environment; | ||
6 | varDir = "/var/lib/ludivine_integration"; | ||
7 | secretsPath = config.secrets.fullPaths."websites/ludivine/integration"; | ||
8 | }; | ||
9 | cfg = config.myServices.websites.ludivine.integration; | ||
10 | pcfg = config.services.phpApplication; | ||
11 | in { | ||
12 | options.myServices.websites.ludivine.integration.enable = lib.mkEnableOption "enable Ludivine's website in integration"; | ||
13 | |||
14 | config = lib.mkIf cfg.enable { | ||
15 | services.duplyBackup.profiles.ludivine_integration.rootDir = app.varDir; | ||
16 | services.phpApplication.apps.ludivine_integration = { | ||
17 | websiteEnv = "integration"; | ||
18 | httpdUser = config.services.httpd.Inte.user; | ||
19 | httpdGroup = config.services.httpd.Inte.group; | ||
20 | inherit (app) webRoot varDir; | ||
21 | varDirPaths = { | ||
22 | "tmp" = "0700"; | ||
23 | }; | ||
24 | inherit app; | ||
25 | serviceDeps = [ "mysql.service" ]; | ||
26 | preStartActions = [ | ||
27 | "./bin/console --env=${app.environment} cache:clear --no-warmup" | ||
28 | ]; | ||
29 | phpOpenbasedir = [ "/tmp" ]; | ||
30 | phpPool = { | ||
31 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
32 | "php_admin_value[post_max_size]" = "20M"; | ||
33 | #"php_admin_flag[log_errors]" = "on"; | ||
34 | "pm" = "ondemand"; | ||
35 | "pm.max_children" = "5"; | ||
36 | "pm.process_idle_timeout" = "60"; | ||
37 | }; | ||
38 | phpEnv = { | ||
39 | PATH = lib.makeBinPath [ | ||
40 | # below ones don't need to be in the PATH but they’re used in | ||
41 | # secrets | ||
42 | pkgs.imagemagick pkgs.sass pkgs.ruby | ||
43 | ]; | ||
44 | SYMFONY_DEBUG_MODE = "\"yes\""; | ||
45 | }; | ||
46 | phpWatchFiles = [ | ||
47 | config.secrets.fullPaths."websites/ludivine/integration" | ||
48 | ]; | ||
49 | }; | ||
50 | |||
51 | secrets.keys = [ | ||
52 | { | ||
53 | dest = "websites/ludivine/integration"; | ||
54 | user = config.services.httpd.Inte.user; | ||
55 | group = config.services.httpd.Inte.group; | ||
56 | permissions = "0400"; | ||
57 | text = '' | ||
58 | # This file is auto-generated during the composer install | ||
59 | parameters: | ||
60 | database_host: ${secrets.mysql.host} | ||
61 | database_port: ${secrets.mysql.port} | ||
62 | database_name: ${secrets.mysql.database} | ||
63 | database_user: ${secrets.mysql.user} | ||
64 | database_password: ${secrets.mysql.password} | ||
65 | database_server_version: ${pkgs.mariadb.mysqlVersion} | ||
66 | mailer_transport: smtp | ||
67 | mailer_host: 127.0.0.1 | ||
68 | mailer_user: null | ||
69 | mailer_password: null | ||
70 | secret: ${secrets.secret} | ||
71 | ldap_host: ldap.immae.eu | ||
72 | ldap_port: 636 | ||
73 | ldap_version: 3 | ||
74 | ldap_ssl: true | ||
75 | ldap_tls: false | ||
76 | ldap_user_bind: 'uid={username},ou=users,dc=immae,dc=eu' | ||
77 | ldap_base_dn: 'dc=immae,dc=eu' | ||
78 | ldap_search_dn: '${secrets.ldap.dn}' | ||
79 | ldap_search_password: '${secrets.ldap.password}' | ||
80 | ldap_search_filter: '${secrets.ldap.filter}' | ||
81 | leapt_im: | ||
82 | binary_path: ${pkgs.imagemagick}/bin | ||
83 | assetic: | ||
84 | sass: ${pkgs.sass}/bin/sass | ||
85 | ruby: ${pkgs.ruby}/bin/ruby | ||
86 | ''; | ||
87 | } | ||
88 | ]; | ||
89 | |||
90 | services.websites.env.integration.vhostConfs.ludivine_integration = { | ||
91 | certName = "integration"; | ||
92 | addToCerts = true; | ||
93 | hosts = [ "ludivine.immae.eu" ]; | ||
94 | root = pcfg.webappDirs.ludivine_integration; | ||
95 | extraConfig = [ | ||
96 | '' | ||
97 | <FilesMatch "\.php$"> | ||
98 | SetHandler "proxy:unix:${pcfg.phpListenPaths.ludivine_integration}|fcgi://localhost" | ||
99 | </FilesMatch> | ||
100 | |||
101 | <Location /> | ||
102 | Use LDAPConnect | ||
103 | Require ldap-group cn=ludivine.immae.eu,cn=httpd,ou=services,dc=immae,dc=eu | ||
104 | ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://ludivinecassal.com\"></html>" | ||
105 | </Location> | ||
106 | |||
107 | <Directory ${pcfg.webappDirs.ludivine_integration}> | ||
108 | Options Indexes FollowSymLinks MultiViews Includes | ||
109 | AllowOverride None | ||
110 | Require all granted | ||
111 | |||
112 | DirectoryIndex app_dev.php | ||
113 | |||
114 | <IfModule mod_negotiation.c> | ||
115 | Options -MultiViews | ||
116 | </IfModule> | ||
117 | |||
118 | <IfModule mod_rewrite.c> | ||
119 | RewriteEngine On | ||
120 | |||
121 | RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ | ||
122 | RewriteRule ^(.*) - [E=BASE:%1] | ||
123 | |||
124 | # Maintenance script | ||
125 | RewriteCond %{DOCUMENT_ROOT}/maintenance.php -f | ||
126 | RewriteCond %{SCRIPT_FILENAME} !maintenance.php | ||
127 | RewriteRule ^.*$ %{ENV:BASE}/maintenance.php [R=503,L] | ||
128 | ErrorDocument 503 /maintenance.php | ||
129 | |||
130 | # Sets the HTTP_AUTHORIZATION header removed by Apache | ||
131 | RewriteCond %{HTTP:Authorization} . | ||
132 | RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] | ||
133 | |||
134 | RewriteCond %{ENV:REDIRECT_STATUS} ^$ | ||
135 | RewriteRule ^app_dev\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] | ||
136 | |||
137 | # If the requested filename exists, simply serve it. | ||
138 | # We only want to let Apache serve files and not directories. | ||
139 | RewriteCond %{REQUEST_FILENAME} -f | ||
140 | RewriteRule ^ - [L] | ||
141 | |||
142 | # Rewrite all other queries to the front controller. | ||
143 | RewriteRule ^ %{ENV:BASE}/app_dev.php [L] | ||
144 | </IfModule> | ||
145 | |||
146 | </Directory> | ||
147 | '' | ||
148 | ]; | ||
149 | }; | ||
150 | }; | ||
151 | } | ||
diff --git a/modules/private/websites/ludivine/production.nix b/modules/private/websites/ludivine/production.nix new file mode 100644 index 0000000..47450c5 --- /dev/null +++ b/modules/private/websites/ludivine/production.nix | |||
@@ -0,0 +1,118 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | secrets = config.myEnv.websites.ludivine.production; | ||
4 | app = pkgs.callPackage ./app { | ||
5 | environment = secrets.environment; | ||
6 | varDir = "/var/lib/ludivine_production"; | ||
7 | secretsPath = config.secrets.fullPaths."websites/ludivine/production"; | ||
8 | }; | ||
9 | pcfg = config.services.phpApplication; | ||
10 | cfg = config.myServices.websites.ludivine.production; | ||
11 | in { | ||
12 | options.myServices.websites.ludivine.production.enable = lib.mkEnableOption "enable Ludivine's website in production"; | ||
13 | |||
14 | config = lib.mkIf cfg.enable { | ||
15 | services.duplyBackup.profiles.ludivine_production.rootDir = app.varDir; | ||
16 | services.webstats.sites = [ { name = "ludivinecassal.com"; } ]; | ||
17 | services.phpApplication.apps.ludivine_production = { | ||
18 | websiteEnv = "production"; | ||
19 | httpdUser = config.services.httpd.Prod.user; | ||
20 | httpdGroup = config.services.httpd.Prod.group; | ||
21 | inherit (app) webRoot varDir; | ||
22 | varDirPaths = { | ||
23 | "tmp" = "0700"; | ||
24 | }; | ||
25 | inherit app; | ||
26 | serviceDeps = [ "mysql.service" ]; | ||
27 | preStartActions = [ | ||
28 | "./bin/console --env=${app.environment} cache:clear --no-warmup" | ||
29 | ]; | ||
30 | phpOpenbasedir = [ "/tmp" ]; | ||
31 | phpPool = { | ||
32 | "php_admin_value[upload_max_filesize]" = "20M"; | ||
33 | "php_admin_value[post_max_size]" = "20M"; | ||
34 | #"php_admin_flag[log_errors]" = "on"; | ||
35 | "pm" = "dynamic"; | ||
36 | "pm.max_children" = "20"; | ||
37 | "pm.start_servers" = "2"; | ||
38 | "pm.min_spare_servers" = "1"; | ||
39 | "pm.max_spare_servers" = "3"; | ||
40 | }; | ||
41 | phpWatchFiles = [ | ||
42 | config.secrets.fullPaths."websites/ludivine/production" | ||
43 | ]; | ||
44 | phpEnv = { | ||
45 | PATH = lib.makeBinPath [ | ||
46 | # below ones don't need to be in the PATH but they’re used in | ||
47 | # secrets | ||
48 | pkgs.imagemagick pkgs.sass pkgs.ruby | ||
49 | ]; | ||
50 | }; | ||
51 | }; | ||
52 | |||
53 | secrets.keys = [ | ||
54 | { | ||
55 | dest = "websites/ludivine/production"; | ||
56 | user = config.services.httpd.Prod.user; | ||
57 | group = config.services.httpd.Prod.group; | ||
58 | permissions = "0400"; | ||
59 | text = '' | ||
60 | # This file is auto-generated during the composer install | ||
61 | parameters: | ||
62 | database_host: ${secrets.mysql.host} | ||
63 | database_port: ${secrets.mysql.port} | ||
64 | database_name: ${secrets.mysql.database} | ||
65 | database_user: ${secrets.mysql.user} | ||
66 | database_password: ${secrets.mysql.password} | ||
67 | database_server_version: ${pkgs.mariadb.mysqlVersion} | ||
68 | mailer_transport: smtp | ||
69 | mailer_host: 127.0.0.1 | ||
70 | mailer_user: null | ||
71 | mailer_password: null | ||
72 | secret: ${secrets.secret} | ||
73 | ldap_host: ldap.immae.eu | ||
74 | ldap_port: 636 | ||
75 | ldap_version: 3 | ||
76 | ldap_ssl: true | ||
77 | ldap_tls: false | ||
78 | ldap_user_bind: 'uid={username},ou=users,dc=immae,dc=eu' | ||
79 | ldap_base_dn: 'dc=immae,dc=eu' | ||
80 | ldap_search_dn: '${secrets.ldap.dn}' | ||
81 | ldap_search_password: '${secrets.ldap.password}' | ||
82 | ldap_search_filter: '${secrets.ldap.filter}' | ||
83 | leapt_im: | ||
84 | binary_path: ${pkgs.imagemagick}/bin | ||
85 | assetic: | ||
86 | sass: ${pkgs.sass}/bin/sass | ||
87 | ruby: ${pkgs.ruby}/bin/ruby | ||
88 | ''; | ||
89 | } | ||
90 | ]; | ||
91 | |||
92 | services.websites.env.production.vhostConfs.ludivine_production = { | ||
93 | certName = "ludivine"; | ||
94 | certMainHost = "ludivinecassal.com"; | ||
95 | hosts = ["ludivinecassal.com" "www.ludivinecassal.com" ]; | ||
96 | root = pcfg.webappDirs.ludivine_production; | ||
97 | extraConfig = [ | ||
98 | '' | ||
99 | RewriteEngine on | ||
100 | RewriteCond "%{HTTP_HOST}" "!^ludivinecassal\.com$" [NC] | ||
101 | RewriteRule ^(.+)$ https://ludivinecassal.com$1 [R=302,L] | ||
102 | |||
103 | <FilesMatch "\.php$"> | ||
104 | SetHandler "proxy:unix:${pcfg.phpListenPaths.ludivine_production}|fcgi://localhost" | ||
105 | </FilesMatch> | ||
106 | |||
107 | Use Stats ludivinecassal.com | ||
108 | |||
109 | <Directory ${pcfg.webappDirs.ludivine_production}> | ||
110 | Options Indexes FollowSymLinks MultiViews Includes | ||
111 | AllowOverride All | ||
112 | Require all granted | ||
113 | </Directory> | ||
114 | '' | ||
115 | ]; | ||
116 | }; | ||
117 | }; | ||
118 | } | ||