nixos/httpd: rewrite module to support overridable virtual hosts #72626
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation for this change
The NixOS
httpd
module has fallen behind thenginx
module in every possible way. The module has received no contributions of substance aside from myself in the past several years now - partly because the code base is overly complicated, but also partly because the module is so limited in functionality compared tonginx
. Few people have motivation to use this module as is.The biggest problems with the
httpd
module, in contrast withnginx
, which cannot be fixed without breaking backwards compatibility are:virtualHosts
option is of typelistOf
instead ofattrsOf
which doesn't allow users to modify avirtualHost
once createdvirtualHost
defined is specific to eitherhttp
orhttps
which makes it extremely difficult to implement integration withsecurity.acme.certs
servedDirs
andservedFiles
options suffer the same problem of being alistOf
instead ofattrsOf
which means once defined no modifications can be madeThings not yet done
servedDirs
andservedFiles
options to useattrsOf
instead oflistOf
services.httpd
, and update existing modules to take advantage of new featuresnixos/tests/
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nix-review --run "nix-review wip"
./result/bin/
)nix path-info -S
before and after)Notify maintainers
cc @