extern val web_node_to_node : web_node -> node;
+extern type web_place;
+extern val web_place_default : web_node -> web_place;
+extern val web_place : web_node -> your_ip -> web_place;
+extern val web_place_to_web_node : web_place -> web_node;
+extern val web_place_to_node : web_place -> node;
+extern val web_place_to_ip : web_place -> ip;
+{{Web places are combinations of web nodes (servers on which you are allowed to
+ run web sites) and IP addresses on which those servers should listen for
+ requests.}}
+
context Vhost;
{{A WWW virtual host}}
extern type suexec_flag;
-extern val suexec_flag : bool -> suexec_flag;
{{Whether or not to use Suexec with a vhost.
-[suexec_flag] fails when passed [false] by a user without the 'www' privilege.}}
+For users with the 'www' privilege, this type is identical to [bool].
+For others, it has only one value, [true].}}
+
+extern type ssl_cert_path;
+{{Filesystem path to an SSL certificate in your 'cert' list}}
+
+extern type ssl;
+extern val no_ssl : ssl;
+extern val use_cert : ssl_cert_path -> ssl;
extern val vhost : host -> Vhost => [Domain]
- {WebNodes : [web_node],
- SSL : bool,
+ {WebPlaces : [web_place],
+ SSL : ssl,
User : your_user,
Group : your_group,
DocumentRoot : your_path,
{{Set some configuration specific to a URI prefix or filesystem directory,
respectively.}}
-extern val serverAlias : your_domain_host -> [Vhost];
+extern val serverAliasHost : your_domain_host -> [Vhost];
{{Give an alternate hostname for this vhost.}}
+extern val serverAlias : host -> [Vhost];
+{{Like serverAliasHost, but adds an alias for the given hostname at every domain
+ being configured.}}
+extern val serverAliasDefault : [Vhost];
+{{Like serverAliasDefault, but adds aliases for the domains being configured
+ instead of any of their hosts/"subdomains".}}