Reference
Reference: applications
tenants[].applications
| Syntax | applications: [{...}, ...] |
| Default | [] |
| Context | tenants[] |
| Reload | applies on reload |
Applications of the tenant.
tenants[].applications[].acme
| Syntax | acme: true | false |
| Default | false |
| Context | tenants[].applications[] |
| Reload | applies on reload |
Obtain and renew a certificate for all domains via ACME (ADR-0018).
tenants[].applications[].cache
| Syntax | cache: {...} |
| Default | none |
| Context | tenants[].applications[] |
| Reload | applies on reload |
Response cache for this application (ADR-0012); absent: no caching.
tenants[].applications[].cache.bypass_cookies
| Syntax | bypass_cookies: [<string>, ...] |
| Default | [] |
| Context | tenants[].applications[].cache |
| Reload | applies on reload |
Cookie-name prefixes that mark a personalised request (added to the profile’s).
tenants[].applications[].cache.bypass_paths
| Syntax | bypass_paths: [<string>, ...] |
| Default | [] |
| Context | tenants[].applications[].cache |
| Reload | applies on reload |
Path prefixes that are never cached (added to the profile’s).
tenants[].applications[].cache.bypass_query
| Syntax | bypass_query: [<string>, ...] |
| Default | [] |
| Context | tenants[].applications[].cache |
| Reload | applies on reload |
Query parameters that disable caching (added to the profile’s).
tenants[].applications[].cache.default_ttl
| Syntax | default_ttl: <duration> (e.g. 30s) |
| Default | none |
| Context | tenants[].applications[].cache |
| Reload | applies 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
| Syntax | enabled: true | false |
| Default | true |
| Context | tenants[].applications[].cache |
| Reload | applies on reload |
Cache this application’s responses.
tenants[].applications[].cache.stale_while_revalidate
| Syntax | stale_while_revalidate: <duration> (e.g. 30s) |
| Default | none |
| Context | tenants[].applications[].cache |
| Reload | applies on reload |
Serve stale entries this long while refreshing in the background.
tenants[].applications[].domains
| Syntax | domains: [<string>, ...] |
| Default | required |
| Context | tenants[].applications[] |
| Reload | applies 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
| Syntax | htaccess: true | false |
| Default | false |
| Context | tenants[].applications[] |
| Reload | applies on reload |
Read Apache .htaccess files below root (ADR-0031).
tenants[].applications[].https_redirect
| Syntax | https_redirect: true | false |
| Default | none |
| Context | tenants[].applications[] |
| Reload | applies 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
| Syntax | listeners: [<string>, ...] |
| Default | none |
| Context | tenants[].applications[] |
| Reload | applies on reload |
Listeners (by name) that serve the application; empty: every listener.
tenants[].applications[].name
| Syntax | name: <string> |
| Default | required |
| Context | tenants[].applications[] |
| Reload | applies on reload |
Application name, unique within the tenant: 1-63 characters of a-z, 0-9, -, _.
tenants[].applications[].profile
| Syntax | profile: <string> |
| Default | none |
| Context | tenants[].applications[] |
| Reload | applies 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
| Syntax | root: <string> |
| Default | none |
| Context | tenants[].applications[] |
| Reload | applies on reload |
Application root directory; default document root for static runtimes.
tenants[].applications[].root_symlinks
| Syntax | root_symlinks: follow | refuse |
| Default | none |
| Context | tenants[].applications[] |
| Reload | applies 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
| Syntax | runtime: {...} |
| Default | none |
| Context | tenants[].applications[] |
| Reload | applies 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
| Syntax | security: {...} |
| Default | none |
| Context | tenants[].applications[] |
| Reload | applies on reload |
Per-application deny paths and rate limits.
tenants[].applications[].security.deny_paths
| Syntax | deny_paths: [<string>, ...] |
| Default | [] |
| Context | tenants[].applications[].security |
| Reload | applies on reload |
Denied paths (added to the profile’s); * matches any characters.
tenants[].applications[].security.ignore_profile_rules
| Syntax | ignore_profile_rules: true | false |
| Default | false |
| Context | tenants[].applications[].security |
| Reload | applies on reload |
Do not apply the profile’s deny rules.
tenants[].applications[].security.rate_limits
| Syntax | rate_limits: [{...}, ...] |
| Default | [] |
| Context | tenants[].applications[].security |
| Reload | applies on reload |
Request rates per client address for matching paths (first match applies).
tenants[].applications[].security.rate_limits[].burst
| Syntax | burst: <integer> |
| Default | none |
| Context | tenants[].applications[].security.rate_limits[] |
| Reload | applies on reload |
Token-bucket burst (default: equal to the rate).
tenants[].applications[].security.rate_limits[].path
| Syntax | path: <string> |
| Default | required |
| Context | tenants[].applications[].security.rate_limits[] |
| Reload | applies on reload |
Path prefix the limit applies to.
tenants[].applications[].security.rate_limits[].requests_per_second
| Syntax | requests_per_second: <integer> |
| Default | required |
| Context | tenants[].applications[].security.rate_limits[] |
| Reload | applies on reload |
Sustained requests per second per client address on this path.