{ lib, pkgs, config, ... }: let 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.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" ]; root = root; extraConfig = [ '' ErrorDocument 404 /index.html DirectoryIndex index.html Options Indexes FollowSymLinks MultiViews Includes Require all granted '' ]; }; 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 DirectoryIndex index.html Options Indexes FollowSymLinks MultiViews Includes Require all granted '' ]; }; services.websites.env.production.vhostConfs.capitaines = { certName = "capitaines"; addToCerts = true; hosts = [ "capitaines.fr" ]; root = "/run/current-system/webapps/_www"; extraConfig = [ '' DirectoryIndex index.htm Require all granted '' ]; }; }; }