]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/websites/capitaines/production.nix
Add discourse capitaine landing page
[perso/Immae/Config/Nix.git] / modules / private / websites / capitaines / production.nix
index 044ff1d04b56137f5e443bf3725b23e581384960..ee1698b0b5aca4f66d960019e58d19cdd6bf122b 100644 (file)
@@ -1,17 +1,15 @@
 { lib, pkgs, config,  ... }:
 let
-    cfg = config.myServices.websites.capitaines.production;
-    env = config.myEnv.websites.capitaines;
-    webappName = "capitaines_mastodon";
-    root = "/run/current-system/webapps/${webappName}";
-    siteDir = ./mastodon_static;
+  cfg = config.myServices.websites.capitaines.production;
+  env = config.myEnv.websites.capitaines;
 in {
   options.myServices.websites.capitaines.production.enable = lib.mkEnableOption "enable Capitaines's website";
 
   config = lib.mkIf cfg.enable {
-    myServices.websites.webappDirs."${webappName}" = siteDir;
-
-    services.websites.env.production.vhostConfs.capitaines_mastodon = {
+    myServices.websites.webappDirs.capitaines_mastodon = ./mastodon_static;
+    services.websites.env.production.vhostConfs.capitaines_mastodon = let
+      root = "/run/current-system/webapps/capitaines_mastodon";
+    in {
       certName     = "capitaines";
       certMainHost = "mastodon.capitaines.fr";
       hosts        = [ "mastodon.capitaines.fr" ];
@@ -28,6 +26,26 @@ in {
       ];
     };
 
+    myServices.websites.webappDirs.capitaines_discourse = ./discourse_static;
+    services.websites.env.production.vhostConfs.capitaines_discourse = let
+      root = "/run/current-system/webapps/capitaines_discourse";
+    in {
+      certName     = "capitaines";
+      addToCerts   = true;
+      hosts        = [ "discourse.capitaines.fr" ];
+      root         = root;
+      extraConfig  = [
+        ''
+        ErrorDocument 404 /index.html
+        <Directory ${root}>
+          DirectoryIndex index.html
+          Options Indexes FollowSymLinks MultiViews Includes
+          Require all granted
+        </Directory>
+          ''
+      ];
+    };
+
     services.websites.env.production.vhostConfs.capitaines = {
       certName   = "capitaines";
       addToCerts = true;