diff options
author | Aaron Andersen <aaron@fosslib.net> | 2019-12-26 08:09:08 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-26 08:09:08 -0500 |
commit | 4d2dd1554618831f0a5b159b8a4dff86612c02a9 (patch) | |
tree | 7391d6f87b614a03174904067582d7933d34d8bc /nixos/modules/services/web-apps/mediawiki.nix | |
parent | c9a80e782d7b0e9ebff6432a129fd4f14acf1250 (diff) | |
parent | 79215f0df1ddf4bf0db7dc4c5789f8dae9f9bb02 (diff) | |
download | nixlib-4d2dd1554618831f0a5b159b8a4dff86612c02a9.tar nixlib-4d2dd1554618831f0a5b159b8a4dff86612c02a9.tar.gz nixlib-4d2dd1554618831f0a5b159b8a4dff86612c02a9.tar.bz2 nixlib-4d2dd1554618831f0a5b159b8a4dff86612c02a9.tar.lz nixlib-4d2dd1554618831f0a5b159b8a4dff86612c02a9.tar.xz nixlib-4d2dd1554618831f0a5b159b8a4dff86612c02a9.tar.zst nixlib-4d2dd1554618831f0a5b159b8a4dff86612c02a9.zip |
Merge pull request #73113 from aanderse/httpd-vhost
nixos/httpd: support overridable virtual hosts
Diffstat (limited to 'nixos/modules/services/web-apps/mediawiki.nix')
-rw-r--r-- | nixos/modules/services/web-apps/mediawiki.nix | 59 |
1 files changed, 25 insertions, 34 deletions
diff --git a/nixos/modules/services/web-apps/mediawiki.nix b/nixos/modules/services/web-apps/mediawiki.nix index 43edc04e1a49..8a109b39bb57 100644 --- a/nixos/modules/services/web-apps/mediawiki.nix +++ b/nixos/modules/services/web-apps/mediawiki.nix @@ -64,7 +64,7 @@ let $wgScriptPath = ""; ## The protocol and server name to use in fully-qualified URLs - $wgServer = "${if cfg.virtualHost.enableSSL then "https" else "http"}://${cfg.virtualHost.hostName}"; + $wgServer = "${if cfg.virtualHost.addSSL || cfg.virtualHost.forceSSL || cfg.virtualHost.onlySSL then "https" else "http"}://${cfg.virtualHost.hostName}"; ## The URL path to static resources (images, scripts, etc.) $wgResourceBasePath = $wgScriptPath; @@ -290,19 +290,13 @@ in }; virtualHost = mkOption { - type = types.submodule ({ - options = import ../web-servers/apache-httpd/per-server-options.nix { - inherit lib; - forMainServer = false; - }; - }); + type = types.submodule (import ../web-servers/apache-httpd/per-server-options.nix); example = literalExample '' { hostName = "mediawiki.example.org"; - enableSSL = true; adminAddr = "webmaster@example.org"; - sslServerCert = "/var/lib/acme/mediawiki.example.org/full.pem"; - sslServerKey = "/var/lib/acme/mediawiki.example.org/key.pem"; + forceSSL = true; + enableACME = true; } ''; description = '' @@ -389,31 +383,28 @@ in services.httpd = { enable = true; - adminAddr = mkDefault cfg.virtualHost.adminAddr; extraModules = [ "proxy_fcgi" ]; - virtualHosts = [ (mkMerge [ - cfg.virtualHost { - documentRoot = mkForce "${pkg}/share/mediawiki"; - extraConfig = '' - <Directory "${pkg}/share/mediawiki"> - <FilesMatch "\.php$"> - <If "-f %{REQUEST_FILENAME}"> - SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/" - </If> - </FilesMatch> - - Require all granted - DirectoryIndex index.php - AllowOverride All - </Directory> - '' + optionalString (cfg.uploadsDir != null) '' - Alias "/images" "${cfg.uploadsDir}" - <Directory "${cfg.uploadsDir}"> - Require all granted - </Directory> - ''; - } - ]) ]; + virtualHosts.${cfg.virtualHost.hostName} = mkMerge [ cfg.virtualHost { + documentRoot = mkForce "${pkg}/share/mediawiki"; + extraConfig = '' + <Directory "${pkg}/share/mediawiki"> + <FilesMatch "\.php$"> + <If "-f %{REQUEST_FILENAME}"> + SetHandler "proxy:unix:${fpm.socket}|fcgi://localhost/" + </If> + </FilesMatch> + + Require all granted + DirectoryIndex index.php + AllowOverride All + </Directory> + '' + optionalString (cfg.uploadsDir != null) '' + Alias "/images" "${cfg.uploadsDir}" + <Directory "${cfg.uploadsDir}"> + Require all granted + </Directory> + ''; + } ]; }; systemd.tmpfiles.rules = [ |