diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2020-07-16 03:02:07 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2020-07-17 01:03:17 +0200 |
commit | 4c42e0beb65d2a92e988a81aa12f50aa6bd1f820 (patch) | |
tree | 56c7ff14e0c2774634f53365b2a2342e0dbd2419 /modules/private/websites/tools/assets/default.nix | |
parent | 5a61f6ad5164a735be26e016c59e72252ffb49b7 (diff) | |
download | Nix-4c42e0beb65d2a92e988a81aa12f50aa6bd1f820.tar.gz Nix-4c42e0beb65d2a92e988a81aa12f50aa6bd1f820.tar.zst Nix-4c42e0beb65d2a92e988a81aa12f50aa6bd1f820.zip |
Add assets website for immae
Diffstat (limited to 'modules/private/websites/tools/assets/default.nix')
-rw-r--r-- | modules/private/websites/tools/assets/default.nix | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/modules/private/websites/tools/assets/default.nix b/modules/private/websites/tools/assets/default.nix new file mode 100644 index 0000000..0eb476d --- /dev/null +++ b/modules/private/websites/tools/assets/default.nix | |||
@@ -0,0 +1,39 @@ | |||
1 | { lib, pkgs, config, ... }: | ||
2 | let | ||
3 | cfg = config.myServices.websites.tools.assets; | ||
4 | assets_urls = lib.mapAttrs (k: v: pkgs.fetchurl v) config.myEnv.tools.assets; | ||
5 | assets = pkgs.runCommand "assets" {} ('' | ||
6 | mkdir -p $out | ||
7 | cp -a ${./static}/* $out/ | ||
8 | '' + builtins.concatStringsSep "\n" | ||
9 | (lib.mapAttrsToList (k: v: '' | ||
10 | install -D -m644 -T ${v} $out/${k} | ||
11 | '') assets_urls)); | ||
12 | in | ||
13 | { | ||
14 | options.myServices.websites.tools.assets = { | ||
15 | enable = lib.mkEnableOption "Enable assets website"; | ||
16 | }; | ||
17 | config = lib.mkIf cfg.enable { | ||
18 | services.websites.env.tools.vhostConfs.assets = { | ||
19 | certName = "eldiron"; | ||
20 | addToCerts = true; | ||
21 | hosts = [ "assets.immae.eu" ]; | ||
22 | root = assets; | ||
23 | extraConfig = [ | ||
24 | '' | ||
25 | Use Apaxy "${assets}" "title" | ||
26 | <Directory "${assets}"> | ||
27 | Options Indexes FollowSymlinks | ||
28 | AllowOverride None | ||
29 | Require all granted | ||
30 | Header always set Last-Modified "Tue, 01 Jan 2020 00:00:00 GMT" | ||
31 | Header always set Cache-Control "public, max-age=31536000, immutable" | ||
32 | Header always set Access-Control-Allow-Origin "*" | ||
33 | Header always set Access-Control-Expose-Headers "*" | ||
34 | </Directory> | ||
35 | '' | ||
36 | ]; | ||
37 | }; | ||
38 | }; | ||
39 | } | ||