Create website of a web hosting package
A new website (vHost) at a domain or subdomain of the package: a folder, a redirect, the website builder or an alias.
manitu_webhosting_web_vhost_create on https://mcp.manitu.de/mcpAnnotations as tools/list sends them
Description for the model
Creates a website (vHost) for a web hosting package of the manitu customer account this connection works in, by its site_id from manitu_webhosting_list, at one of the package's names - a domain or a subdomain for the web (fqdn_free_list of manitu_webhosting_web_vhost_list; a new subdomain first with manitu_webhosting_subdomain_create). type: website (shows a folder - by default /web for a domain, /web/<fqdn> for a subdomain, created if missing, with manitu's placeholder page unless website.setup_default_page is false: set it false when you write the website's own files right after (manitu_webhosting_web_file_write) - or redirects to a URL, see website), websitebuilder (made with manitu's website builder; the editor then opens with manitu_webhosting_web_vhost_websitebuilder_get) or alias (a further name of a website, alias.of required; by default it redirects there). Defaults as in the customer panel: Let's Encrypt certificate, HTTPS redirect, HSTS for a year, an alternative hostname. It takes up to an hour until it answers everywhere - DNS and browser caches may show the old state meanwhile; the name must point to manitu (DNS) for it and for the certificate. Refused with a conflict when the package allows no (more) websitebuilder (limit_reached) or cannot be changed now (not_configurable). Tell the customer the name, the type and what it will show, and ask for an explicit yes first.
Arguments
site_idinteger | stringrequiredThe site_id from manitu_webhosting_list - never guess one.
fqdnstringrequiredThe name, in full - a domain of the package or a subdomain for the web, e.g. www.example.de; Unicode or ASCII, any case.
typestringrequiredwebsite, websitebuilder or alias - set does not change it; between website and alias manitu_webhosting_web_vhost_convert does, a websitebuilder stays one.
websiteobjectOnly for type website: what it shows.
website.target_dirstringShow this folder, relative to the web root - for a new website its own folder in htdocs, website_folder_template.api of manitu_webhosting_web_structure_get (e.g. /htdocs/www.example.com/; the older layout: /web/www.example.com/). Default: htdocs itself for a domain, htdocs/<fqdn> for a subdomain - pass it instead. Not together with redirect_url.
website.redirect_urlstringInstead of a folder: send every visitor to this URL, e.g. https://www.example.com/ - https:// is put in front when there is no scheme.
website.create_target_dirbooleanCreate target_dir if it is not there (default true); false: it must be there.
website.allow_wordpress_xmlrpcbooleanMake WordPress' XML-RPC interface reachable (default false) - only if the customer needs it: a frequent target of brute force attacks that manitu's firewall cannot block. Tell him so.
website.setup_default_pagebooleanPut manitu's placeholder page into an empty target_dir (default true). false when the website's own files follow right after (manitu_webhosting_web_file_write) - nothing to replace then.
aliasobjectOnly for type alias.
alias.ofstringThe website (or websitebuilder) it belongs to, by fqdn from manitu_webhosting_web_vhost_list - required. Not an alias.
alias.redirect_to_parentbooleanRedirect visitors to the website's name (HTTP 301), default true; false: show the same under the alias' own name.
httpsobjectNot for an alias (it has its website's). Change HSTS only if the customer knows what it means: browsers keep using HTTPS only for max_age seconds, even if the certificate is gone.
https.redirectbooleanSend http:// visitors to https:// (default true).
https.hstsobjectDefault: active, max_age 31536000 (a year), include_subdomains, no preload.
https.hsts.activebooleanhttps.hsts.max_ageintegerSeconds, 300 (5 minutes) to 63072000 (2 years).
https.hsts.include_subdomainsbooleanhttps.hsts.preloadbooleanUsually not recommended - needs max_age of at least 31536000 and include_subdomains.
alternative_hostnameobjectNot for an alias: a second name under vhost.manitu.de that shows the same.
alternative_hostname.activebooleanDefault true. Switched off and on again, it gets a new name.
alternative_hostname.noindexbooleanAsk search engines not to index it under this name (default false).
certificatestringletsencrypt (free, added and renewed by manitu; the default) or none (rarely wanted). Let's Encrypt needs the domain at manitu (not while a transfer is pending - then the default is none) and an active website; it is usually there within an hour. A custom certificate is uploaded in the customer panel - here it is only kept.
statusstringinactive: switch it off - the files are kept, visitors get when_inactive; no Let's Encrypt certificate is renewed meanwhile. Default active.
when_inactiveobjectWhat visitors get while it is inactive (default: response hide).
when_inactive.responsestringhttp_status_403, http_status_404, http_status_503 (tells search engines to come back), hide (as if there were no website) or page (one of manitu's, see page).
when_inactive.pagestringFor response page: disabled, underconstruction or maintenance (default disabled). The customer's duties (imprint, privacy information) stay his.
descriptionstring | nullThe customer's description, for his own overview. Left out: unchanged (set) or none (create); null or empty: none.
Result structuredContent, checked against the schema
fqdnstringrequiredThe name, e.g. www.example.de - a domain or subdomain of the package; what the other tools take. Unicode for an internationalized domain.
fqdn_asciistringrequiredThe same name as DNS has it (xn--... for an internationalized domain).
typestringrequiredwebsite (the customer's files from a folder, or a redirect to a URL), websitebuilder (made with manitu's website builder) or alias (a further name of a website - see alias).
statusstringrequiredinactive: switched off, the files are kept - visitors get when_inactive.
when_inactiveobjectrequiredWhat visitors get while it is inactive.
when_inactive.responsestringrequiredAn HTTP status (403, 404, 503 - 503 tells search engines to come back), hide (as if there were no website) or page (a page of manitu's, see page).
when_inactive.pagestring | nullrequiredWhich page, for response page: disabled, underconstruction or maintenance.
websiteobject | nullrequiredFor type website, else null.
website.target_dirstring | nullrequiredThe folder shown, relative to the web root, e.g. /htdocs/www.example.com/ (the older layout: /web/...) - see manitu_webhosting_web_structure_get; null when it redirects.
website.redirect_urlstring | nullrequiredThe URL every visitor is sent to - null when it shows a folder.
website.allow_wordpress_xmlrpcbooleanrequiredWordPress' XML-RPC interface reachable - off by default, a frequent target of brute force attacks that manitu's firewall cannot block.
websitebuilderobject | nullrequiredFor type websitebuilder, else null. The editor opens with manitu_webhosting_web_vhost_websitebuilder_get.
websitebuilder.target_dirstringrequiredThe folder manitu set for it - not to be changed.
aliasobject | nullrequiredFor type alias, else null. An alias shows what its website shows, with its HTTPS settings; status, certificate and description are its own.
alias.ofstring | nullrequiredThe website it belongs to (fqdn) - null only for an old alias that lost it.
alias.redirect_to_parentbooleanrequiredVisitors are redirected to the website's name (HTTP 301); false: the alias shows the same under its own name.
httpsobject | nullrequiredFor a website or websitebuilder; null for an alias (its website's apply).
https.redirectbooleanrequiredVisitors coming with http:// are sent to https://.
https.hstsobjectrequiredHSTS (Strict-Transport-Security): browsers remember to use only HTTPS.
https.hsts.activebooleanrequiredhttps.hsts.max_ageintegerrequiredHow long browsers remember it, in seconds.
https.hsts.include_subdomainsbooleanrequiredhttps.hsts.preloadbooleanrequiredalternative_hostnameobject | nullrequiredA second name under vhost.manitu.de that shows the same - e.g. before a domain transfer or while DNS is not there yet. Null for an alias.
alternative_hostname.activebooleanrequiredalternative_hostname.fqdnstring | nullrequiredThe name, e.g. 1a2b3c4d.vhost.manitu.de - null while not active. A new one each time it is switched on.
alternative_hostname.noindexbooleanrequiredSearch engines are asked not to index it under this name.
alias_listarray of string | nullrequiredIts aliases (fqdn) - null for an alias.
certificateobject | nullrequiredIts SSL certificate - null if none.
certificate.typestringrequiredcertificate.statusstringrequiredpending: asked for, usually issued within an hour; error: could not be issued - often the name does not point to manitu yet.
certificate.expires_atstring | nullrequiredWhen it runs out (the same as manitu_webhosting_web_certificate_get) - Let's Encrypt renews in time; null while pending.
descriptionstring | nullrequiredWhat the customer wrote about it (his description), null if nothing - not its name or user name.
created_atstring | nullrequiredAuthentication
One of X-API-Key, Authorization: Bearer … - never more than one in a request. More
Request body JSON; unknown fields are refused
site_idinteger | stringrequiredThe site_id from manitu_webhosting_list - never guess one.
fqdnstringrequiredThe name, in full - a domain of the package or a subdomain for the web, e.g. www.example.de; Unicode or ASCII, any case.
typestringrequiredwebsite, websitebuilder or alias - set does not change it; between website and alias manitu_webhosting_web_vhost_convert does, a websitebuilder stays one.
websiteobjectOnly for type website: what it shows.
website.target_dirstringShow this folder, relative to the web root - for a new website its own folder in htdocs, website_folder_template.api of manitu_webhosting_web_structure_get (e.g. /htdocs/www.example.com/; the older layout: /web/www.example.com/). Default: htdocs itself for a domain, htdocs/<fqdn> for a subdomain - pass it instead. Not together with redirect_url.
website.redirect_urlstringInstead of a folder: send every visitor to this URL, e.g. https://www.example.com/ - https:// is put in front when there is no scheme.
website.create_target_dirbooleanCreate target_dir if it is not there (default true); false: it must be there.
website.allow_wordpress_xmlrpcbooleanMake WordPress' XML-RPC interface reachable (default false) - only if the customer needs it: a frequent target of brute force attacks that manitu's firewall cannot block. Tell him so.
website.setup_default_pagebooleanPut manitu's placeholder page into an empty target_dir (default true). false when the website's own files follow right after (manitu_webhosting_web_file_write) - nothing to replace then.
aliasobjectOnly for type alias.
alias.ofstringThe website (or websitebuilder) it belongs to, by fqdn from manitu_webhosting_web_vhost_list - required. Not an alias.
alias.redirect_to_parentbooleanRedirect visitors to the website's name (HTTP 301), default true; false: show the same under the alias' own name.
httpsobjectNot for an alias (it has its website's). Change HSTS only if the customer knows what it means: browsers keep using HTTPS only for max_age seconds, even if the certificate is gone.
https.redirectbooleanSend http:// visitors to https:// (default true).
https.hstsobjectDefault: active, max_age 31536000 (a year), include_subdomains, no preload.
https.hsts.activebooleanhttps.hsts.max_ageintegerSeconds, 300 (5 minutes) to 63072000 (2 years).
https.hsts.include_subdomainsbooleanhttps.hsts.preloadbooleanUsually not recommended - needs max_age of at least 31536000 and include_subdomains.
alternative_hostnameobjectNot for an alias: a second name under vhost.manitu.de that shows the same.
alternative_hostname.activebooleanDefault true. Switched off and on again, it gets a new name.
alternative_hostname.noindexbooleanAsk search engines not to index it under this name (default false).
certificatestringletsencrypt (free, added and renewed by manitu; the default) or none (rarely wanted). Let's Encrypt needs the domain at manitu (not while a transfer is pending - then the default is none) and an active website; it is usually there within an hour. A custom certificate is uploaded in the customer panel - here it is only kept.
statusstringinactive: switch it off - the files are kept, visitors get when_inactive; no Let's Encrypt certificate is renewed meanwhile. Default active.
when_inactiveobjectWhat visitors get while it is inactive (default: response hide).
when_inactive.responsestringhttp_status_403, http_status_404, http_status_503 (tells search engines to come back), hide (as if there were no website) or page (one of manitu's, see page).
when_inactive.pagestringFor response page: disabled, underconstruction or maintenance (default disabled). The customer's duties (imprint, privacy information) stay his.
descriptionstring | nullThe customer's description, for his own overview. Left out: unchanged (set) or none (create); null or empty: none.
Response in data; the rest of the body as on every call
fqdnstringrequiredThe name, e.g. www.example.de - a domain or subdomain of the package; what the other tools take. Unicode for an internationalized domain.
fqdn_asciistringrequiredThe same name as DNS has it (xn--... for an internationalized domain).
typestringrequiredwebsite (the customer's files from a folder, or a redirect to a URL), websitebuilder (made with manitu's website builder) or alias (a further name of a website - see alias).
statusstringrequiredinactive: switched off, the files are kept - visitors get when_inactive.
when_inactiveobjectrequiredWhat visitors get while it is inactive.
when_inactive.responsestringrequiredAn HTTP status (403, 404, 503 - 503 tells search engines to come back), hide (as if there were no website) or page (a page of manitu's, see page).
when_inactive.pagestring | nullrequiredWhich page, for response page: disabled, underconstruction or maintenance.
websiteobject | nullrequiredFor type website, else null.
website.target_dirstring | nullrequiredThe folder shown, relative to the web root, e.g. /htdocs/www.example.com/ (the older layout: /web/...) - see manitu_webhosting_web_structure_get; null when it redirects.
website.redirect_urlstring | nullrequiredThe URL every visitor is sent to - null when it shows a folder.
website.allow_wordpress_xmlrpcbooleanrequiredWordPress' XML-RPC interface reachable - off by default, a frequent target of brute force attacks that manitu's firewall cannot block.
websitebuilderobject | nullrequiredFor type websitebuilder, else null. The editor opens with manitu_webhosting_web_vhost_websitebuilder_get.
websitebuilder.target_dirstringrequiredThe folder manitu set for it - not to be changed.
aliasobject | nullrequiredFor type alias, else null. An alias shows what its website shows, with its HTTPS settings; status, certificate and description are its own.
alias.ofstring | nullrequiredThe website it belongs to (fqdn) - null only for an old alias that lost it.
alias.redirect_to_parentbooleanrequiredVisitors are redirected to the website's name (HTTP 301); false: the alias shows the same under its own name.
httpsobject | nullrequiredFor a website or websitebuilder; null for an alias (its website's apply).
https.redirectbooleanrequiredVisitors coming with http:// are sent to https://.
https.hstsobjectrequiredHSTS (Strict-Transport-Security): browsers remember to use only HTTPS.
https.hsts.activebooleanrequiredhttps.hsts.max_ageintegerrequiredHow long browsers remember it, in seconds.
https.hsts.include_subdomainsbooleanrequiredhttps.hsts.preloadbooleanrequiredalternative_hostnameobject | nullrequiredA second name under vhost.manitu.de that shows the same - e.g. before a domain transfer or while DNS is not there yet. Null for an alias.
alternative_hostname.activebooleanrequiredalternative_hostname.fqdnstring | nullrequiredThe name, e.g. 1a2b3c4d.vhost.manitu.de - null while not active. A new one each time it is switched on.
alternative_hostname.noindexbooleanrequiredSearch engines are asked not to index it under this name.
alias_listarray of string | nullrequiredIts aliases (fqdn) - null for an alias.
certificateobject | nullrequiredIts SSL certificate - null if none.
certificate.typestringrequiredcertificate.statusstringrequiredpending: asked for, usually issued within an hour; error: could not be issued - often the name does not point to manitu yet.
certificate.expires_atstring | nullrequiredWhen it runs out (the same as manitu_webhosting_web_certificate_get) - Let's Encrypt renews in time; null while pending.
descriptionstring | nullrequiredWhat the customer wrote about it (his description), null if nothing - not its name or user name.
created_atstring | nullrequiredStatuses
200Success.400The request does not match the declared input schema.401No credential was presented, or it was not recognised.403The credential is not permitted to use this operation.500The server failed. Nothing about the request was wrong. Whether a change took effect is not known - check before trying it again.503The channel this operation forwards through is unavailable.