]> git.immae.eu Git - perso/Immae/Config/Nix.git/blob - modules/private/websites/capitaines/landing_pages.nix
Refactor websites
[perso/Immae/Config/Nix.git] / modules / private / websites / capitaines / landing_pages.nix
1 { lib, config, ... }:
2 let
3 cfg = config.myServices.websites.capitaines.landing_pages;
4 webappdirs = config.services.websites.webappDirsPaths;
5 certName = "capitaines";
6 domain = "capitaines.fr";
7 in {
8 options.myServices.websites.capitaines.landing_pages.enable = lib.mkEnableOption "enable Capitaines's landing pages";
9
10 config = lib.mkIf cfg.enable {
11 services.websites.webappDirs.capitaines_mastodon = ./mastodon_static;
12 services.websites.env.production.vhostConfs.capitaines_mastodon = rec {
13 inherit certName;
14 certMainHost = "mastodon.${domain}";
15 hosts = [ certMainHost ];
16 root = webappdirs.capitaines_mastodon;
17 extraConfig = [
18 ''
19 ErrorDocument 404 /index.html
20 <Directory ${webappdirs.capitaines_mastodon}>
21 DirectoryIndex index.html
22 Options Indexes FollowSymLinks MultiViews Includes
23 Require all granted
24 </Directory>
25 ''
26 ];
27 };
28
29 services.websites.webappDirs.capitaines_discourse = ./discourse_static;
30 services.websites.env.production.vhostConfs.capitaines_discourse = {
31 inherit certName;
32 addToCerts = true;
33 hosts = [ "discourse.${domain}" ];
34 root = webappdirs.capitaines_discourse;
35 extraConfig = [
36 ''
37 ErrorDocument 404 /index.html
38 <Directory ${webappdirs.capitaines_discourse}>
39 DirectoryIndex index.html
40 Options Indexes FollowSymLinks MultiViews Includes
41 Require all granted
42 </Directory>
43 ''
44 ];
45 };
46
47 services.websites.env.production.vhostConfs.capitaines = {
48 inherit certName;
49 addToCerts = true;
50 hosts = [ domain ];
51 root = webappdirs._www;
52 extraConfig = [ ''
53 <Directory ${webappdirs._www}>
54 DirectoryIndex index.htm
55 Require all granted
56 </Directory>
57 '' ];
58 };
59 };
60 }