Reference

Reference: applications

tenants[].applications

Syntaxapplications: [{...}, ...]
Default[]
Contexttenants[]
Reloadapplies on reload

Applications of the tenant.

tenants[].applications[].acme

Syntaxacme: true | false
Defaultfalse
Contexttenants[].applications[]
Reloadapplies on reload

Obtain and renew a certificate for all domains via ACME (ADR-0018).

tenants[].applications[].cache

Syntaxcache: {...}
Defaultnone
Contexttenants[].applications[]
Reloadapplies on reload

Response cache for this application (ADR-0012); absent: no caching.

tenants[].applications[].cache.bypass_cookies

Syntaxbypass_cookies: [<string>, ...]
Default[]
Contexttenants[].applications[].cache
Reloadapplies on reload

Cookie-name prefixes that mark a personalised request (added to the profile’s).

tenants[].applications[].cache.bypass_paths

Syntaxbypass_paths: [<string>, ...]
Default[]
Contexttenants[].applications[].cache
Reloadapplies on reload

Path prefixes that are never cached (added to the profile’s).

tenants[].applications[].cache.bypass_query

Syntaxbypass_query: [<string>, ...]
Default[]
Contexttenants[].applications[].cache
Reloadapplies on reload

Query parameters that disable caching (added to the profile’s).

tenants[].applications[].cache.default_ttl

Syntaxdefault_ttl: <duration> (e.g. 30s)
Defaultnone
Contexttenants[].applications[].cache
Reloadapplies on reload

Freshness for 200 responses that carry no caching headers at all. Default: none (only explicitly cacheable responses are stored).

tenants[].applications[].cache.enabled

Syntaxenabled: true | false
Defaulttrue
Contexttenants[].applications[].cache
Reloadapplies on reload

Cache this application’s responses.

tenants[].applications[].cache.stale_while_revalidate

Syntaxstale_while_revalidate: <duration> (e.g. 30s)
Defaultnone
Contexttenants[].applications[].cache
Reloadapplies on reload

Serve stale entries this long while refreshing in the background.

tenants[].applications[].domains

Syntaxdomains: [<string>, ...]
Defaultrequired
Contexttenants[].applications[]
Reloadapplies on reload

Domains served by the application; *.example.com matches one label, **.example.com one or more; "*" (at most one application per listener) serves the hosts no other domain matches; a domain may be served once per listener.

tenants[].applications[].htaccess

Syntaxhtaccess: true | false
Defaultfalse
Contexttenants[].applications[]
Reloadapplies on reload

Read Apache .htaccess files below root (ADR-0031).

tenants[].applications[].https_redirect

Syntaxhttps_redirect: true | false
Defaultnone
Contexttenants[].applications[]
Reloadapplies on reload

Answer plain-HTTP requests with a 301 to the same URL over HTTPS (ACME HTTP-01 challenges are still answered over HTTP).

tenants[].applications[].listeners

Syntaxlisteners: [<string>, ...]
Defaultnone
Contexttenants[].applications[]
Reloadapplies on reload

Listeners (by name) that serve the application; empty: every listener.

tenants[].applications[].name

Syntaxname: <string>
Defaultrequired
Contexttenants[].applications[]
Reloadapplies on reload

Application name, unique within the tenant: 1-63 characters of a-z, 0-9, -, _.

tenants[].applications[].profile

Syntaxprofile: <string>
Defaultnone
Contexttenants[].applications[]
Reloadapplies on reload

Application profile (ADR-0011), e.g. wordpress. Supplies the runtime when runtime is omitted (static profiles only) and defaults such as health checks.

tenants[].applications[].root

Syntaxroot: <string>
Defaultnone
Contexttenants[].applications[]
Reloadapplies on reload

Application root directory; default document root for static runtimes.

Syntaxroot_symlinks: follow | refuse
Defaultnone
Contexttenants[].applications[]
Reloadapplies on reload

Symbolic links in the path of the document roots (root and the runtimes’ own root): follow (default) or refuse. With refuse a root must be an absolute path without ., .. or a symbolic link in any component; it is opened without following links, so the owner of a directory on the way cannot point the site at another directory. For roots inside home directories of other users (hosting panels).

tenants[].applications[].runtime

Syntaxruntime: {...}
Defaultnone
Contexttenants[].applications[]
Reloadapplies on reload

Handles every request no route matches. Required unless a profile supplies it or routes is not empty; then unmatched requests get 404.

tenants[].applications[].security

Syntaxsecurity: {...}
Defaultnone
Contexttenants[].applications[]
Reloadapplies on reload

Per-application deny paths and rate limits.

tenants[].applications[].security.deny_paths

Syntaxdeny_paths: [<string>, ...]
Default[]
Contexttenants[].applications[].security
Reloadapplies on reload

Denied paths (added to the profile’s); * matches any characters.

tenants[].applications[].security.ignore_profile_rules

Syntaxignore_profile_rules: true | false
Defaultfalse
Contexttenants[].applications[].security
Reloadapplies on reload

Do not apply the profile’s deny rules.

tenants[].applications[].security.rate_limits

Syntaxrate_limits: [{...}, ...]
Default[]
Contexttenants[].applications[].security
Reloadapplies on reload

Request rates per client address for matching paths (first match applies).

tenants[].applications[].security.rate_limits[].burst

Syntaxburst: <integer>
Defaultnone
Contexttenants[].applications[].security.rate_limits[]
Reloadapplies on reload

Token-bucket burst (default: equal to the rate).

tenants[].applications[].security.rate_limits[].path

Syntaxpath: <string>
Defaultrequired
Contexttenants[].applications[].security.rate_limits[]
Reloadapplies on reload

Path prefix the limit applies to.

tenants[].applications[].security.rate_limits[].requests_per_second

Syntaxrequests_per_second: <integer>
Defaultrequired
Contexttenants[].applications[].security.rate_limits[]
Reloadapplies on reload

Sustained requests per second per client address on this path.