X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/8a7c40fa29ff18a437fcf4ee3f248a7aeb41c19c..95798203fe321c2f64d2e4abc64a64dcc3aa3e9e:/lib/apache.dtl diff --git a/lib/apache.dtl b/lib/apache.dtl index 3b41927..feabe77 100644 --- a/lib/apache.dtl +++ b/lib/apache.dtl @@ -1,12 +1,96 @@ {{Apache web server configuration}} +extern type web_node; +{{Nodes that accept Apache configuration from you}} + +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; +{{Whether or not to use Suexec with a vhost. +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_cacert_path; +{{Filesystem path to an intermediate CA certificate in your 'cacert' list}} + +extern type ssl; +extern val no_ssl : ssl; +extern val use_cert : ssl_cert_path -> ssl; + +extern type php_version; +extern val fast_php : php_version; +{{FastCGI based php5. Much faster than regular php5.}} + extern val vhost : host -> Vhost => [Domain] - {WebNodes : [node], - SSL : bool, - User : your_user, - Group : your_group, - DocumentRoot : your_path, - ServerAdmin : email}; + {WebPlaces : [web_place], + SSL : ssl, + User : your_user, + Group : your_group, + DocumentRoot : your_path, + ServerAdmin : email, + SuExec : suexec_flag, + PhpVersion : php_version}; +{{Add a new named Apache virtual host, specifying which nodes' Apache servers + should answer requests for this host, whether it should use SSL, what UNIX + user and group dynamic content generators should be run as, the filesystem + path to the static content root, and the e-mail address to which error pages + should direct visitors.}} + +extern val vhostDefault : Vhost => [Domain] + {WebPlaces : [web_place], + SSL : ssl, + User : your_user, + Group : your_group, + DocumentRoot : your_path, + ServerAdmin : email, + SuExec : suexec_flag, + PhpVersion : php_version}; +{{Like vhost, but for, e.g., yourdomain.com instead of + www.yourdomain.com}} + +context Location; + +extern type location; +{{A valid URI prefix}} + +extern val location : location -> ^Vhost & Location => [Vhost & !Location]; +extern val directory : your_path -> ^Vhost & Location => [Vhost & !Location]; +{{Set some configuration specific to a URI prefix or filesystem directory, + respectively.}} + +extern type regexp; +{{PCRE regular expression}} + +extern val filesMatch : regexp -> ^Vhost & Location => [Vhost & !Location]; +{{Mark nested configuration to only apply to filenames matching the regexp.}} + +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".}} + +extern val testNoHtaccess : [Location]; + +extern val sslCertificateChainFile : ssl_cacert_path -> [Vhost]; +{{Intermediate file to serve as part of the chain of authority for + your ssl certificate}} \ No newline at end of file