diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index ceb4539..a2fdad7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -12,14 +12,15 @@ jobs: id-token: write contents: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v5 with: fetch-depth: 0 - - uses: actions/setup-node@v3 + - uses: actions/setup-node@v5 with: node-version: lts/* registry-url: 'https://registry.npmjs.org' + - run: npm i -g npm@latest - run: npx changelogithub env: @@ -36,6 +37,3 @@ jobs: - name: Publish to NPM run: pnpm publish --access public --no-git-checks - env: - NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - NPM_CONFIG_PROVENANCE: true diff --git a/README.md b/README.md index 61c57a0..cd18c97 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # unplugin-https-reverse-proxy [![NPM version](https://img.shields.io/npm/v/unplugin-https-reverse-proxy?color=a1b858&label=)](https://www.npmjs.com/package/unplugin-https-reverse-proxy) +[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/zcf0508/unplugin-https-reverse-proxy) A plugin for https reverse proxy, support `vite`、`webpack` and `rspack`. @@ -170,6 +171,7 @@ const reverseProxyOptions = { enable: false, target: 'xxx', https: false, + healthCheck: true, } module.exports = { @@ -209,7 +211,10 @@ module.exports = { // nuxt.config.js export default defineNuxtConfig({ modules: [ - ['unplugin-https-reverse-proxy/nuxt', { /* options */ }], + ['unplugin-https-reverse-proxy/nuxt', { + /* options */ + healthCheck: false, // important for nuxt + }], ], }) ``` diff --git a/docs/caddy/docs/docs/api-tutorial.md b/docs/caddy/api-tutorial.md similarity index 84% rename from docs/caddy/docs/docs/api-tutorial.md rename to docs/caddy/api-tutorial.md index d061aa6..d467e84 100644 --- a/docs/caddy/docs/docs/api-tutorial.md +++ b/docs/caddy/api-tutorial.md @@ -24,20 +24,14 @@ This tutorial will show you how to use Caddy's [admin API](https://caddyserver.c To start the Caddy daemon, use the `run` subcommand: -``` -caddy run -``` - +`caddy run` This blocks forever, but what is it doing? At the moment... nothing. By default, Caddy's configuration ("config") is blank. We can verify this using the [admin API](https://caddyserver.com/docs/api) in another terminal: -``` -curl localhost:2019/config/ -``` - +`curl localhost:2019/config/` We can make Caddy useful by giving it a config. One way to do this is by making a POST request to the [/load](https://caddyserver.com/docs/api#post-load) endpoint. Just like any HTTP request, there are many ways to do this, but in this tutorial we'll use `curl`. -Your first config[🔗](https://caddyserver.com/docs/api-tutorial#your-first-config "Direct link") ------------------------------------------------------------------------------------------------- +Your first config +----------------- To prepare our request, we need to make a config. Caddy's configuration is simply a [JSON document](https://caddyserver.com/docs/json/) (or [anything that converts to JSON](https://caddyserver.com/docs/config-adapters)). @@ -75,10 +69,7 @@ curl localhost:2019/load \ We can verify that Caddy applied our new config with another GET request: -``` -curl localhost:2019/config/ -``` - +`curl localhost:2019/config/` Test that it works by going to [localhost:2015](http://localhost:2015/) in your browser or using `curl`: ``` @@ -107,14 +98,11 @@ curl localhost:2019/load \ For good measure, verify that the config was updated: -``` -curl localhost:2019/config/ -``` - +`curl localhost:2019/config/` Test it by refreshing the page in your browser (or running `curl` again), and you will see an inspirational message! -Config traversal[🔗](https://caddyserver.com/docs/api-tutorial#config-traversal "Direct link") ----------------------------------------------------------------------------------------------- +Config traversal +---------------- Instead of uploading the entire config file for a small change, let's use a powerful feature of Caddy's API to make the change without ever touching our config file. @@ -129,10 +117,7 @@ curl \ You can verify that it worked with a similar GET request, for example: -``` -curl localhost:2019/config/apps/http/servers/example/routes -``` - +`curl localhost:2019/config/apps/http/servers/example/routes` You should see: ``` @@ -145,8 +130,8 @@ You should see: * Don't mix the use of config files with changes via the API; have one source of truth. * [Export Caddy's new configuration](https://caddyserver.com/docs/api#get-configpath) with a subsequent GET request (less recommended than the first two options). -Using `@id` in JSON[🔗](https://caddyserver.com/docs/api-tutorial#using-id-in-json "Direct link") -------------------------------------------------------------------------------------------------- +Using `@id` in JSON +------------------- Config traversal is certainly useful, but the paths are little long, don't you think? @@ -171,10 +156,7 @@ This adds a property to our handler object: `"@id": "msg"`, so it now looks like We can then access it directly: -``` -curl localhost:2019/id/msg -``` - +`curl localhost:2019/id/msg` And now we can change the message with a shorter path: ``` @@ -186,6 +168,4 @@ curl \ And check it again: -``` -curl localhost:2019/id/msg/body -``` +`curl localhost:2019/id/msg/body` diff --git a/docs/caddy/docs/docs/api.md b/docs/caddy/api.md similarity index 69% rename from docs/caddy/docs/docs/api.md rename to docs/caddy/api.md index 67eedc1..d5f6151 100644 --- a/docs/caddy/docs/docs/api.md +++ b/docs/caddy/api.md @@ -3,7 +3,7 @@ Title: API - Caddy Documentation URL Source: https://caddyserver.com/docs/api Markdown Content: -Caddy is configured through an administration endpoint which can be accessed via HTTP using a [REST ![Image 10](https://caddyserver.com/old/resources/images/external-link.svg)](https://en.wikipedia.org/wiki/Representational_state_transfer) API. You can [configure this endpoint](https://caddyserver.com/docs/json/admin/) in your Caddy config. +Caddy is configured through an administration endpoint which can be accessed via HTTP using a [REST ![Image 1](https://caddyserver.com/old/resources/images/external-link.svg)](https://en.wikipedia.org/wiki/Representational_state_transfer) API. You can [configure this endpoint](https://caddyserver.com/docs/json/admin/) in your Caddy config. **Default address: `localhost:2019`** @@ -16,34 +16,33 @@ To get started with the API, try our [API tutorial](https://caddyserver.com/docs * * * * **[POST /load](https://caddyserver.com/docs/api#post-load)** Sets or replaces the active configuration - + * **[POST /stop](https://caddyserver.com/docs/api#post-stop)** Stops the active configuration and exits the process - -* **[GET /config/\[path\]](https://caddyserver.com/docs/api#get-configpath)** Exports the config at the named path - -* **[POST /config/\[path\]](https://caddyserver.com/docs/api#post-configpath)** Sets or replaces object; appends to array - -* **[PUT /config/\[path\]](https://caddyserver.com/docs/api#put-configpath)** Creates new object; inserts into array - -* **[PATCH /config/\[path\]](https://caddyserver.com/docs/api#patch-configpath)** Replaces an existing object or array element - -* **[DELETE /config/\[path\]](https://caddyserver.com/docs/api#delete-configpath)** Deletes the value at the named path - + +* **[GET /config/[path]](https://caddyserver.com/docs/api#get-configpath)** Exports the config at the named path + +* **[POST /config/[path]](https://caddyserver.com/docs/api#post-configpath)** Sets or replaces object; appends to array + +* **[PUT /config/[path]](https://caddyserver.com/docs/api#put-configpath)** Creates new object; inserts into array + +* **[PATCH /config/[path]](https://caddyserver.com/docs/api#patch-configpath)** Replaces an existing object or array element + +* **[DELETE /config/[path]](https://caddyserver.com/docs/api#delete-configpath)** Deletes the value at the named path + * **[Using `@id` in JSON](https://caddyserver.com/docs/api#using-id-in-json)** Easily traverse into the config structure - + * **[Concurrent config changes](https://caddyserver.com/docs/api#concurrent-config-changes)** Avoid collisions when making unsynchronized changes to config - + * **[POST /adapt](https://caddyserver.com/docs/api#post-adapt)** Adapts a configuration to JSON without running it - -* **[GET /pki/ca/](https://caddyserver.com/docs/api#get-pkicaltidgt)** Returns information about a particular [PKI app](https://caddyserver.com/docs/json/apps/pki/) CA - -* **[GET /pki/ca//certificates](https://caddyserver.com/docs/api#get-pkicaltidgtcertificates)** Returns the certificate chain of a particular [PKI app](https://caddyserver.com/docs/json/apps/pki/) CA - -* **[GET /reverse\_proxy/upstreams](https://caddyserver.com/docs/api#get-reverse-proxyupstreams)** Returns the current status of the configured proxy upstreams - -POST /load ----------- +* **[GET /pki/ca/](https://caddyserver.com/docs/api#get-pkicaltidgt)** Returns information about a particular [PKI app](https://caddyserver.com/docs/json/apps/pki/) CA + +* **[GET /pki/ca//certificates](https://caddyserver.com/docs/api#get-pkicaltidgtcertificates)** Returns the certificate chain of a particular [PKI app](https://caddyserver.com/docs/json/apps/pki/) CA + +* **[GET /reverse_proxy/upstreams](https://caddyserver.com/docs/api#get-reverse-proxyupstreams)** Returns the current status of the configured proxy upstreams + +POST /load[🔗](https://caddyserver.com/docs/api#post-load "Direct link") +------------------------------------------------------------------------ Sets Caddy's configuration, overriding any previous configuration. It blocks until the reload completes or fails. Configuration changes are lightweight, efficient, and incur zero downtime. If the new config fails for any reason, the old config is rolled back into place without downtime. @@ -51,7 +50,7 @@ This endpoint supports different config formats using config adapters. The reque If the new config is the same as the current one, no reload will occur. To force a reload, set `Cache-Control: must-revalidate` in the request headers. -### Examples +### Examples[🔗](https://caddyserver.com/docs/api#examples "Direct link") Set a new active configuration: @@ -69,25 +68,22 @@ curl "http://localhost:2019/load" \ --data-binary @Caddyfile ``` -POST /stop ----------- +POST /stop[🔗](https://caddyserver.com/docs/api#post-stop "Direct link") +------------------------------------------------------------------------ Gracefully shuts down the server and exits the process. To only stop the running configuration without exiting the process, use [DELETE /config/](https://caddyserver.com/docs/api#delete-configpath). -### Example +### Example[🔗](https://caddyserver.com/docs/api#example "Direct link") Stop the process: -``` -curl -X POST "http://localhost:2019/stop" -``` - -GET /config/\[path\] --------------------- +`curl -X POST "http://localhost:2019/stop"` +GET /config/[path][🔗](https://caddyserver.com/docs/api#get-configpath "Direct link") +------------------------------------------------------------------------------------- Exports Caddy's current configuration at the named path. Returns a JSON body. -### Examples +### Examples[🔗](https://caddyserver.com/docs/api#examples-1 "Direct link") Export entire config and pretty-print it: @@ -131,16 +127,16 @@ curl "http://localhost:2019/config/apps/http/servers/myserver/listen" [":443"] ``` -POST /config/\[path\] ---------------------- +POST /config/[path][🔗](https://caddyserver.com/docs/api#post-configpath "Direct link") +--------------------------------------------------------------------------------------- Changes Caddy's configuration at the named path to the JSON body of the request. If the destination value is an array, POST appends; if an object, it creates or replaces. As a special case, many items can be added to an array if: -1. the path ends in `/...` -2. the element of the path before `/...` refers to an array -3. the payload is an array +1. the path ends in `/...` +2. the element of the path before `/...` refers to an array +3. the payload is an array In this case, the elements in the payload's array will be expanded, and each one will be appended to the destination array. In Go terms, this would have the same effect as: @@ -148,7 +144,7 @@ In this case, the elements in the payload's array will be expanded, and each one baseSlice = append(baseSlice, newElems...) ``` -### Examples +### Examples[🔗](https://caddyserver.com/docs/api#examples-2 "Direct link") Add a listener address: @@ -168,12 +164,12 @@ curl \ "http://localhost:2019/config/apps/http/servers/myserver/listen/..." ``` -PUT /config/\[path\] --------------------- +PUT /config/[path][🔗](https://caddyserver.com/docs/api#put-configpath "Direct link") +------------------------------------------------------------------------------------- Changes Caddy's configuration at the named path to the JSON body of the request. If the destination value is a position (index) in an array, PUT inserts; if an object, it strictly creates a new value. -### Example +### Example[🔗](https://caddyserver.com/docs/api#example-1 "Direct link") Add a listener address in the first slot: @@ -184,12 +180,12 @@ curl -X PUT \ "http://localhost:2019/config/apps/http/servers/myserver/listen/0" ``` -PATCH /config/\[path\] ----------------------- +PATCH /config/[path][🔗](https://caddyserver.com/docs/api#patch-configpath "Direct link") +----------------------------------------------------------------------------------------- Changes Caddy's configuration at the named path to the JSON body of the request. PATCH strictly replaces an existing value or array element. -### Example +### Example[🔗](https://caddyserver.com/docs/api#example-2 "Direct link") Replace the listener addresses: @@ -200,27 +196,21 @@ curl -X PATCH \ "http://localhost:2019/config/apps/http/servers/myserver/listen" ``` -DELETE /config/\[path\] ------------------------ +DELETE /config/[path][🔗](https://caddyserver.com/docs/api#delete-configpath "Direct link") +------------------------------------------------------------------------------------------- Removes Caddy's configuration at the named path. DELETE deletes the target value. -### Examples +### Examples[🔗](https://caddyserver.com/docs/api#examples-3 "Direct link") To unload the entire current configuration but leave the process running: -``` -curl -X DELETE "http://localhost:2019/config/" -``` - +`curl -X DELETE "http://localhost:2019/config/"` To stop only one of your HTTP servers: -``` -curl -X DELETE "http://localhost:2019/config/apps/http/servers/myserver" -``` - -Using `@id` in JSON -------------------- +`curl -X DELETE "http://localhost:2019/config/apps/http/servers/myserver"` +Using `@id` in JSON[🔗](https://caddyserver.com/docs/api#using-id-in-json "Direct link") +---------------------------------------------------------------------------------------- You can embed IDs in your JSON document for easier direct access to those parts of the JSON. @@ -249,10 +239,10 @@ but with an ID, the path becomes which is much easier to remember and write by hand. -Concurrent config changes -------------------------- +Concurrent config changes[🔗](https://caddyserver.com/docs/api#concurrent-config-changes "Direct link") +------------------------------------------------------------------------------------------------------- -Caddy's config API provides [ACID guarantees ![Image 11](https://caddyserver.com/old/resources/images/external-link.svg)](https://en.wikipedia.org/wiki/ACID) for individual requests, but changes that involve more than a single request are subject to collisions or data loss if not properly synchronized. +Caddy's config API provides [ACID guarantees ![Image 2](https://caddyserver.com/old/resources/images/external-link.svg)](https://en.wikipedia.org/wiki/ACID) for individual requests, but changes that involve more than a single request are subject to collisions or data loss if not properly synchronized. For example, two clients may `GET /config/foo` at the same time, make an edit within that scope (config path), then call `POST|PUT|PATCH|DELETE /config/foo/...` at the same time to apply their changes, resulting in a collision: either one will overwrite the other, or the second might leave the config in an unintended state since it was applied to a different version of the config than it was prepared against. This is because the changes are not aware of each other. @@ -260,15 +250,15 @@ Caddy's API does not support transactions spanning multiple requests, and HTTP i The basic algorithm for this is as follows: -1. Perform a `GET` request to any scope `S` within the config. Hold onto the `Etag` header of the response. -2. Make your desired change on the returned config. -3. Perform a `POST|PUT|PATCH|DELETE` request within scope `S`, setting the `If-Match` request header to the stored `Etag` value. -4. If the response is HTTP 412 (Precondition Failed), repeat from step 1, or give up after too many attempts. +1. Perform a `GET` request to any scope `S` within the config. Hold onto the `Etag` header of the response. +2. Make your desired change on the returned config. +3. Perform a `POST|PUT|PATCH|DELETE` request within scope `S`, setting the `If-Match` request header to the stored `Etag` value. +4. If the response is HTTP 412 (Precondition Failed), repeat from step 1, or give up after too many attempts. This algorithm safely allows multiple, overlapping changes to Caddy's configuration without explicit synchronization. It is designed so that simultaneous changes to different parts of the config don't require a retry: only changes that overlap the same scope of the config can possibly cause a collision and thus require a retry. -POST /adapt ------------ +POST /adapt[🔗](https://caddyserver.com/docs/api#post-adapt "Direct link") +-------------------------------------------------------------------------- Adapts a configuration to Caddy JSON without loading or running it. If successful, the resulting JSON document is returned in the response body. @@ -276,7 +266,7 @@ The Content-Type header is used to specify the configuration format in the same This endpoint will adapt any configuration format as long as the associated [config adapter](https://caddyserver.com/docs/config-adapters) is plugged in to your Caddy build. -### Examples +### Examples[🔗](https://caddyserver.com/docs/api#examples-4 "Direct link") Adapt a Caddyfile to JSON: @@ -286,8 +276,8 @@ curl "http://localhost:2019/adapt" \ --data-binary @Caddyfile ``` -GET /pki/ca/ ------------------ +GET /pki/ca/[🔗](https://caddyserver.com/docs/api#get-pkicaltidgt "Direct link") +------------------------------------------------------------------------------------ Returns information about a particular [PKI app](https://caddyserver.com/docs/json/apps/pki/) CA by its ID. If the requested CA ID is the default (`local`), then the CA will be provisioned if it has not already been. Other CA IDs will return an error if they have not been previously provisioned. @@ -303,8 +293,8 @@ curl "http://localhost:2019/pki/ca/local" | jq } ``` -GET /pki/ca//certificates ------------------------------- +GET /pki/ca//certificates[🔗](https://caddyserver.com/docs/api#get-pkicaltidgtcertificates "Direct link") +------------------------------------------------------------------------------------------------------------- Returns the certificate chain of a particular [PKI app](https://caddyserver.com/docs/json/apps/pki/) CA by its ID. If the requested CA ID is the default (`local`), then the CA will be provisioned if it has not already been. Other CA IDs will return an error if they have not been previously provisioned. @@ -324,8 +314,8 @@ MIIBpDCCAUmgAwIBAgIQTS5a+3LUKNxC6qN3ZDR8bDAKBggqhkjOPQQDAjAwMS4w -----END CERTIFICATE----- ``` -GET /reverse\_proxy/upstreams ------------------------------ +GET /reverse_proxy/upstreams[🔗](https://caddyserver.com/docs/api#get-reverse-proxyupstreams "Direct link") +----------------------------------------------------------------------------------------------------------- Returns the current status of the configured reverse proxy upstreams (backends) as a JSON document. @@ -341,7 +331,7 @@ curl "http://localhost:2019/reverse_proxy/upstreams" | jq Each entry in the JSON array is a configured [upstream](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/) stored in the global upstream pool. * **address** is the dial address of the upstream. -* **num\_requests** is the amount of active requests currently being handled by the upstream. +* **num_requests** is the amount of active requests currently being handled by the upstream. * **fails** the current number of failed requests remembered, as configured by passive health checks. If your goal is to determine a backend's availability, you will need to cross-check relevant properties of the upstream against the handler configuration you are utilizing. For example, if you've enabled [passive health checks](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/) for your proxies, then you need to also take into consideration the `fails` and `num_requests` values to determine if an upstream is considered available: check that the `fails` amount is less than your configured maximum amount of failures for your proxy (i.e. [`max_fails`](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/max_fails/)), and that `num_requests` is less than or equal to your configured amount of maximum requests per upstream (i.e. [`unhealthy_request_count`](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/unhealthy_request_count/) for the whole proxy, or [`max_requests`](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/max_requests/) for individual upstreams). diff --git a/docs/caddy/docs/docs/architecture.md b/docs/caddy/architecture.md similarity index 99% rename from docs/caddy/docs/docs/architecture.md rename to docs/caddy/architecture.md index cfad04b..6174241 100644 --- a/docs/caddy/docs/docs/architecture.md +++ b/docs/caddy/architecture.md @@ -43,8 +43,8 @@ The core of Caddy knows how to work with some of these fields natively: But other top-level fields (like [`apps`](https://caddyserver.com/docs/json/apps/)) are opaque to the core of Caddy. In fact, all Caddy knows to do with the bytes in `apps` is deserialize them into an interface type that it can call two methods on: -1. `Start()` -2. `Stop()` +1. `Start()` +2. `Stop()` ... and that's it. It calls `Start()` on each app when a config is loaded, and `Stop()` on each app when a config is unloaded. @@ -61,10 +61,10 @@ There are two kinds of modules: _host modules_ and _guest modules_. Modules get loaded, are provisioned and validated, get used, then are cleaned up, in this sequence: -1. Loaded -2. Provisioned and validated -3. Used -4. Cleaned up +1. Loaded +2. Provisioned and validated +3. Used +4. Cleaned up Caddy kicks off the module lifecycle when a config is loaded first by initializing all the configured app modules. From there, it's turtles all the way down as each app module takes it the rest of the way. diff --git a/docs/caddy/docs/docs/automatic-https.md b/docs/caddy/automatic-https.md similarity index 53% rename from docs/caddy/docs/docs/automatic-https.md rename to docs/caddy/automatic-https.md index 1ba898d..c0f2fb2 100644 --- a/docs/caddy/docs/docs/automatic-https.md +++ b/docs/caddy/automatic-https.md @@ -22,6 +22,7 @@ Here's a 28-second video showing how it works: * [Errors](https://caddyserver.com/docs/automatic-https#errors) * [Storage](https://caddyserver.com/docs/automatic-https#storage) * [Wildcard certificates](https://caddyserver.com/docs/automatic-https#wildcard-certificates) +* [Encrypted ClientHello (ECH)](https://caddyserver.com/docs/automatic-https#encrypted-clienthello-ech) Overview[🔗](https://caddyserver.com/docs/automatic-https#overview "Direct link") --------------------------------------------------------------------------------- @@ -73,11 +74,11 @@ Effects[🔗](https://caddyserver.com/docs/automatic-https#effects "Direct link" When automatic HTTPS is activated, the following occurs: * Certificates are obtained and renewed for [all qualifying domain names](https://caddyserver.com/docs/automatic-https#hostname-requirements) -* HTTP is redirected to HTTPS (this uses [HTTP port](https://caddyserver.com/docs/modules/http#http_port) `80`) +* HTTP is redirected to HTTPS (this uses [HTTP port](https://caddyserver.com/docs/modules/http#http_port)`80`) Automatic HTTPS never overrides explicit configuration, it only augments it. -If you already have a [server](https://caddyserver.com/docs/json/apps/http/servers/) listening on the HTTP port, the HTTP-\>HTTPS redirect routes will be inserted after your routes with a host matcher, but before a user-defined catch-all route. +If you already have a [server](https://caddyserver.com/docs/json/apps/http/servers/) listening on the HTTP port, the HTTP->HTTPS redirect routes will be inserted after your routes with a host matcher, but before a user-defined catch-all route. You can [customize or disable automatic HTTPS](https://caddyserver.com/docs/json/apps/http/servers/automatic_https/) if necessary; for example, you can skip certain domain names or disable redirects (for Caddyfile, do this with [global options](https://caddyserver.com/docs/caddyfile/options)). @@ -92,7 +93,7 @@ All hostnames (domain names) qualify for fully-managed certificates if they: In addition, hostnames qualify for publicly-trusted certificates if they: -* are not localhost (including `.localhost`, `.local` and `.home.arpa` TLDs) +* are not localhost (including `.localhost`, `.local`, `.internal` and `.home.arpa` TLDs) * are not an IP address * have only a single wildcard `*` as the left-most label @@ -103,7 +104,7 @@ Caddy uses HTTPS automatically for all sites with a host (domain, IP, or hostnam To serve non-public sites over HTTPS, Caddy generates its own certificate authority (CA) and uses it to sign certificates. The trust chain consists of a root and intermediate certificate. Leaf certificates are signed by the intermediate. They are stored in [Caddy's data directory](https://caddyserver.com/docs/conventions#data-directory) at `pki/authorities/local`. -Caddy's local CA is powered by [Smallstep libraries ![Image 28](https://caddyserver.com/old/resources/images/external-link.svg)](https://smallstep.com/certificates/) . +Caddy's local CA is powered by [Smallstep libraries ![Image 1](https://caddyserver.com/old/resources/images/external-link.svg)](https://smallstep.com/certificates/). Local HTTPS does not use ACME nor does it perform any DNS validation. It works only on the local machine and is trusted only where the CA's root certificate is installed. @@ -130,7 +131,7 @@ Testing[🔗](https://caddyserver.com/docs/automatic-https#testing "Direct link" To test or experiment with your Caddy configuration, make sure you [change the ACME endpoint](https://caddyserver.com/docs/modules/tls.issuance.acme#ca) to a staging or development URL, otherwise you are likely to hit rate limits which can block your access to HTTPS for up to a week, depending on which rate limit you hit. -One of Caddy's default CAs is [Let's Encrypt ![Image 29](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/) , which has a [staging endpoint ![Image 30](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/staging-environment/) that is not subject to the same [rate limits ![Image 31](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/rate-limits/) : +One of Caddy's default CAs is [Let's Encrypt ![Image 2](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/), which has a [staging endpoint ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/staging-environment/) that is not subject to the same [rate limits ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/rate-limits/): ``` https://acme-staging-v02.api.letsencrypt.org/directory @@ -139,7 +140,7 @@ https://acme-staging-v02.api.letsencrypt.org/directory ACME challenges[🔗](https://caddyserver.com/docs/automatic-https#acme-challenges "Direct link") ----------------------------------------------------------------------------------------------- -Obtaining a publicly-trusted TLS certificate requires validation from a publicly-trusted, third-party authority. These days, this validation process is automated with the [ACME protocol ![Image 32](https://caddyserver.com/old/resources/images/external-link.svg)](https://tools.ietf.org/html/rfc8555) , and can be performed one of three ways ("challenge types"), described below. +Obtaining a publicly-trusted TLS certificate requires validation from a publicly-trusted, third-party authority. These days, this validation process is automated with the [ACME protocol ![Image 5](https://caddyserver.com/old/resources/images/external-link.svg)](https://tools.ietf.org/html/rfc8555), and can be performed one of three ways ("challenge types"), described below. The first two challenge types are enabled by default. If multiple challenges are enabled, Caddy chooses one at random to avoid accidental dependence on a particular challenge. Over time, it learns which challenge type is most successful and will begin to prefer it first, but will fall back to other available challenge types if necessary. @@ -207,16 +208,17 @@ By default, certificate management is performed in the background. This means it Here's what happens if there's an error obtaining or renewing a certificate: -1. Caddy retries once after a brief pause just in case it was a fluke -2. Caddy pauses briefly, then switches to the next enabled challenge type -3. After all enabled challenge types have been tried, [it tries the next configured issuer](https://caddyserver.com/docs/automatic-https#issuer-fallback) +1. Caddy retries once after a brief pause just in case it was a fluke +2. Caddy pauses briefly, then switches to the next enabled challenge type +3. After all enabled challenge types have been tried, [it tries the next configured issuer](https://caddyserver.com/docs/automatic-https#issuer-fallback) * Let's Encrypt * ZeroSSL -4. After all issuers have been tried, it backs off exponentially + +4. After all issuers have been tried, it backs off exponentially * Maximum of 1 day between attempts * For up to 30 days -During retries with Let's Encrypt, Caddy switches to their [staging environment ![Image 33](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/staging-environment/) to avoid rate limit concerns. This isn't a perfect strategy, but in general it's helpful. +During retries with Let's Encrypt, Caddy switches to their [staging environment ![Image 6](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/staging-environment/) to avoid rate limit concerns. This isn't a perfect strategy, but in general it's helpful. ACME challenges take at least a few seconds, and internal rate limiting helps mitigate accidental abuse. Caddy uses internal rate limiting in addition to what you or the CA configure so that you can hand Caddy a platter with a million domain names and it will gradually -- but as fast as it can -- obtain certificates for all of them. Caddy's internal rate limit is currently 10 attempts per ACME account per 10 seconds. @@ -226,7 +228,7 @@ To avoid leaking resources, Caddy aborts in-flight tasks (including ACME transac Caddy is the first (and so far only) server to support fully-redundant, automatic failover to other CAs in the event it cannot successfully get a certificate. -By default, Caddy enables two ACME-compatible CAs: [**Let's Encrypt** ![Image 34](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/) and [**ZeroSSL** ![Image 35](https://caddyserver.com/old/resources/images/external-link.svg)](https://zerossl.com/) . If Caddy cannot get a certificate from Let's Encrypt, it will try with ZeroSSL; if both fail, it will backoff and retry again later. In your config, you can customize which issuers Caddy uses to obtain certificates, either universally or for specific names. +By default, Caddy enables two ACME-compatible CAs: [**Let's Encrypt**![Image 7](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/) and [**ZeroSSL**![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://zerossl.com/). If Caddy cannot get a certificate from Let's Encrypt, it will try with ZeroSSL; if both fail, it will backoff and retry again later. In your config, you can customize which issuers Caddy uses to obtain certificates, either universally or for specific names. Storage[🔗](https://caddyserver.com/docs/automatic-https#storage "Direct link") ------------------------------------------------------------------------------- @@ -242,10 +244,162 @@ Before attempting any ACME transactions, Caddy will test the configured storage Wildcard certificates[🔗](https://caddyserver.com/docs/automatic-https#wildcard-certificates "Direct link") ----------------------------------------------------------------------------------------------------------- -Caddy can obtain and manage wildcard certificates when it is configured to serve a site with a qualifying wildcard name. A site name qualifies for a wildcard if only its left-most domain label is a wildcard. For example, `*.example.com` qualifies, but these do not: `sub.*.example.com`, `foo*.example.com`, `*bar.example.com`, and `*.*.example.com`. +Caddy can obtain and manage wildcard certificates when it is configured to serve a site with a qualifying wildcard name. A site name qualifies for a wildcard if only its left-most domain label is a wildcard. For example, `*.example.com` qualifies, but these do not: `sub.*.example.com`, `foo*.example.com`, `*bar.example.com`, and `*.*.example.com`. (This is a restriction of the WebPKI.) If using the Caddyfile, Caddy takes site names literally with regards to the certificate subject names. In other words, a site defined as `sub.example.com` will cause Caddy to manage a certificate for `sub.example.com`, and a site defined as `*.example.com` will cause Caddy to manage a wildcard certificate for `*.example.com`. You can see this demonstrated on our [Common Caddyfile Patterns](https://caddyserver.com/docs/caddyfile/patterns#wildcard-certificates) page. If you need different behavior, the [JSON config](https://caddyserver.com/docs/json/) gives you more precise control over certificate subjects and site names ("host matchers"). -Wildcard certificates represent a wide degree of authority and should only be used when you have so many subdomains that managing individual certificates for them would strain the PKI or cause you to hit CA-enforced rate limits. +As of Caddy 2.10, when automating a wildcard certificate, Caddy will use the wildcard certificate for individual subdomains in the configuration. It will not get certificates for individual subdomains unless explicitly configured to do so. + +Wildcard certificates represent a wide degree of authority and should only be used when you have so many subdomains that managing individual certificates for them would strain the PKI or cause you to hit CA-enforced rate limits, or if the privacy tradeoff is worth the risk of exposing that much of the DNS zone in the case of a key compromise. Note that wildcard certificates alone do not offer privacy of concealing specific subdomains: they are still exposed in TLS ClientHello packets unless Encrypted ClientHello (ECH) is enabled. (See below.) + +**Note:**[Let's Encrypt requires ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/challenge-types/) the [DNS challenge](https://caddyserver.com/docs/automatic-https#dns-challenge) to obtain wildcard certificates. + +Encrypted ClientHello (ECH)[🔗](https://caddyserver.com/docs/automatic-https#encrypted-clienthello-ech "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +Normally, TLS handshakes involve sending the ClientHello, including the Server Name Indicator (SNI; the domain being connected to), in plaintext. That's because it contains the parameters necessary for encrypting the connection that comes after the handshake. This, of course, exposes the domain name, which is the most sensitive part of the ClientHello, to anyone who can eavesdrop connections, even if they are not in your immediate physical vicinity. It reveals which service you are connecting to when the destination IP may serve many different sites, and it's how some governments censor the Internet. + +With Encrypted ClientHello, the client can protect the domain name by wrapping the true ClientHello in an "outer" ClientHello that establishes parameters for decrypting the "inner" ClientHello. However, many moving parts need to come together perfectly for this to work and deliver actual privacy benefits. + +First, the client needs to know what parameters, or configuration, to use to encrypt the ClientHello. This information includes a public key and "outer" domain (the "public name"), among other things. This configuration has to be published or distributed somehow in a reliable fashion. + +You could theoretically write it down on a piece of paper and hand it out to everybody, but most major browsers support looking up HTTPS-type DNS records containing ECH parameters when connecting to a site. Hence, you will need to: (1) generate an ECH configuration (public/private key pair, among other parameters), and then (2) create an HTTPS-type DNS record containing the base64-encoded ECH configuration. + +Or... you could let Caddy do that all for you. Caddy is the first and only web server that can automatically generate, publish, and serve ECH configurations. + +Once the HTTPS record is published, clients will need to perform a DNS lookup for the HTTPS record when connecting to your site. Normally, DNS lookups are in plaintext, which compromises the security of the resulting ECH handshakes, so browsers will need to use a secure DNS protocol like DNS-over-HTTPS (DoH) or DNS-over-TLS (DoT). Depending on the browser, this may need to be manually enabled. + +Once the client has securely downloaded the ECH config, it uses the embedded public key to encrypt the ClientHello, and proceeds to connect to your site. Caddy then decrypts the inner ClientHello and proceeds to serve your site, without the domain name ever appearing in plaintext over the wire. + +### Deployment considerations[🔗](https://caddyserver.com/docs/automatic-https#deployment-considerations "Direct link") + +ECH is a nuanced technology. Even though Caddy completely automates ECH, many things need to be considered in order for maximum privacy benefits. You should also be aware of various trade-offs. + +#### Publication[🔗](https://caddyserver.com/docs/automatic-https#publication "Direct link") + +Caddy will only create an HTTPS record for a domain if there is already a record for that domain. This prevents breaking DNS lookups for a subdomain that may be covered by a wildcard. Ensure that your sites have at least an A/AAAA record pointing to your server. If you only use a wildcard for DNS records, then the wildcard domain will need to appear in your Caddy config as well. + +Caddy will not publish an HTTPS record for a domain that has a CNAME record. + +#### ECH GREASE[🔗](https://caddyserver.com/docs/automatic-https#ech-grease "Direct link") + +If you open Wireshark and then connect to any site (even one that does not support ECH) in a modern version of a major browser like Firefox or Chrome (even with ECH disabled), you may notice its handshake includes the `encrypted_client_hello` extension: + +![Image 10: ECH GREASE](https://caddyserver.com/resources/images/ech-grease.png) + +The purpose of this is to make true ECH handshakes indistinguishable from plaintext ones. If ECH handshakes looked different than normal ones, censors could just block ECH handshakes with minimal fallout/collateral damage. But if they blocked any handshake with a plausible ECH extension, they would essentially turn off most of the Internet. (The goal is to increase the cost of widespread censorship.) + +This is mainly important to know when troubleshooting connections. + +#### Key rotation[🔗](https://caddyserver.com/docs/automatic-https#key-rotation "Direct link") + +Like certificate keys, it is not good practice (and can be downright insecure) to use the same key for a long time. As such, ECH keys should be rotated on a regular basis. Unlike certificates, ECH configs don't strictly expire. But servers should rotate them nonetheless. + +Key rotation is tricky though, because clients need to know about the updated keys. If the server simply replaced old keys with new ones, all ECH handshakes would fail unless clients were immediately notified about the new keys. But simply publishing the updated keys isn't enough. The reality is, DNS records have TTLs, and resolvers cache responses, etc. It can take minutes, hours, or even days for clients to query the updated HTTPS records and start using the new ECH config. + +For that reason, servers should keep supporting old ECH configs for a period of time. Not doing so risks exposing server names in plaintext _at scale_. + +However, that may not be enough. Some clients still won't get the updated keys for various reasons, and any time that happens, there is a risk of exposing the server name. So there needs to be another way to give clients the updated config _in band_ with the connection. That's what the _outer name_ is for. + +#### Public name[🔗](https://caddyserver.com/docs/automatic-https#public-name "Direct link") + +The "outer" ClientHello is a normal ClientHello with two subtle differences that are only known to the origin server: + +1. The SNI extension is fake +2. The ECH extension is real + +That "outer" SNI extension contains the public name that protects your real domains. This name can be anything, but **your server must be authoritative for the public name** because Caddy _will_ obtain a certificate for it. + +If a client tries to make an ECH connection but the server can't decrypt the inner ClientHello, it can actually complete the handshake using the _outer_ ClientHello with a certificate for the outer name. This secure connection is strictly _only_ used to send the client the current ECH config; i.e. it is a temporary TLS connection for the sole purposes of completing the initial TLS connection. No application data is transmitted: just the ECH key. Once the client has the updated key, it can establish the TLS connection as intended. + +In this manner, the true server name remains protected and out-of-sync clients remain able to connect, which are both vital elements of security. + +The outer name may be one of your site's domains, a subdomain, or any other domain name that points to your server. We recommend choosing exactly one generic name. For example, Cloudflare serves millions of sites behind `cloudflare-ech.com`. This is important for increasing the size of your anonymity set. + +Public names should not be empty; i.e. a public name must be configured for things to work. Caddy does not currently enforce this (and may later), but the ECH specification requires the public name to be at least 1 byte long. Some software will accept empty names, others won't. This can lead to confusing behaviors such as browsers using ECH but servers rejecting it as invalid; or browsers not using ECH (because it is invalid) even though the config is in the DNS record properly. It is the responsibility of the site owner to ensure proper ECH configuration and publication to ensure privacy. + +#### Anonymity set[🔗](https://caddyserver.com/docs/automatic-https#anonymity-set "Direct link") + +To maximize the privacy benefits of ECH, strive to maximize the size of your _anonymity set_. In essense, this set is comprised of client-facing servers that have identical behavior to observers. The idea is that an observer cannot easily reduce/deduce the possible sites or services clients are connecting to. + +In practice, we recommend having only one public name for all your sites. (There is only 1 public name per ECH config, so this implies having only 1 active ECH config at any given time.) If you operate Caddy in a cluster, Caddy automatically shares and coordinates ECH configs with other instances, which takes care of this for you. + +Taken to the extreme, this implies that every site on the Internet could or should be behind a single IP address and one public name... + +#### Centralization[🔗](https://caddyserver.com/docs/automatic-https#centralization "Direct link") + +... which brings us to our next topic: centralization. One of the criticisms of ECH is that it tends to motivate centralization. It does this in at least two ways: (1) by clients favoring DoH/DoT for DNS lookups, which sends all DNS lookups through a small handful of providers, and (2) by maximizing the size of the anonymity set at scale. + +When DoH or DoT is used, DNS lookups all go through the DoH/DoT provider. Between the client and the provider, the DNS data is encrypted, but between the provider and the DNS server, it is not encrypted. Global DoH/DoT effectively funnels all the juicy plaintext DNS traffic into a few big pipes that are ripe for observation... or failure. + +Similarly, if we truly maximize the anonymity set at scale, all sites would be protected behind a single public name, like `cloudflare-ech.com`. This is good for privacy, but then the entire Internet is at the mercy of Cloudflare and that one domain name. Now, maximizing to that extent is not necessary or practical, but the theoretical implications remain valid. + +We recommend each organization or individual choose a single name for all their sites and use that, and in most cases that should offer sufficient privacy. However, please consult experts with your your individual threat models for your specific case. + +#### Subdomain privacy[🔗](https://caddyserver.com/docs/automatic-https#subdomain-privacy "Direct link") + +With ECH, it is now theoretically possible to keep subdomains secret/private from side channels if deployed correctly. + +Most sites do not need this, as, generally speaking, subdomains are public information. We advise against putting sensitive information in domain names. That said... + +To avoid leaking sensitive subdomains to Certificate Transparency (CT) logs, use a wildcard certificate instead. In other words, instead of putting `sub.example.com` in your config, put `*.example.com`. (See [Wildcard certificates](https://caddyserver.com/docs/automatic-https#wildcard-certificates) for important information.) + +Then, enable ECH in Caddy. A wildcard certificate combined with ECH should properly hide subdomains, as long as every client that tries to connect to it uses ECH and has a strong implementation. (You are still at the mercy of clients to preserve privacy.) + +### Enabling ECH[🔗](https://caddyserver.com/docs/automatic-https#enabling-ech "Direct link") + +Since functioning ECH requires publishing configs to DNS records, you will need a Caddy build with a [caddy-dns module](https://github.com/caddy-dns) plugged in for your DNS provider. + +Then, with a Caddyfile, specify your DNS provider config in the global options, as well as the ECH public name you want to use: + +``` +{ + dns + ech example.com +} +``` + +Remember: + +* The DNS provider module must be plugged in and you must have the right configuration for your provider/account. +* The ECH public name should point to your server. Caddy will get a certificate for it. It does not have to be one of your site's domains. + +If using JSON, add these properties to the `tls` app: + +``` +"encrypted_client_hello": { + "configs": [ + { + "public_name": "example.com" + } + ] +}, +"dns": { + "name": "", + // provider configuration +} +``` + +These configurations will enable ECH and publish ECH configs for all your sites. The JSON config offers more flexibility if you need to customize the behavior or have an advanced setup. + +### Verifying ECH[🔗](https://caddyserver.com/docs/automatic-https#verifying-ech "Direct link") + +There is still not much tooling around ECH, so at time of writing, the best and most universal way to verify that it's working is to use Wireshark and look for your public name in the ServerName field. + +First, start your server and see that the logs mention something like "published ECH configuration list" for your domains. (If you get any errors with publication, ensure your DNS provider module supports [libdns 1.0](https://github.com/libdns/libdns) and file an issue with your provider's repository if you encounter problems.) Caddy should also get a certificate for the public name. + +Next, make sure your browser has ECH enabled; this may require enabling DoH/DoT. It's also a good idea to clear your browser's (or system's) DNS cache, to ensure it will pick up the newly published HTTPS records. We also recommend closing the browser or at least opening a new private tab to ensure it does not reuse existing connections. + +Then, open Wireshark and start listening on the appropriate network interface. While Wireshark is collecting packets, load your site in your browser. You can then pause Wireshark. Find your TLS ClientHello, and you should see the _public name_ in the ServerName field, rather than the actual domain name you connected to. + +Remember: you may still see an `encrypted_client_hello` extension even if ECH is not used. The key indicator is the SNI value. You should never see the true site name in plaintext with Wireshark if ECH is working properly. + +If you encounter deployment issues with ECH, first ask in our [forum](https://caddy.community/). If it's a bug, you can [file an issue](https://github.com/caddyserver/caddy/issues) on GitHub. + +### ECH in storage[🔗](https://caddyserver.com/docs/automatic-https#ech-in-storage "Direct link") + +ECH configurations are stored in the [data directory](https://caddyserver.com/docs/conventions#data-directory) in the configured storage module (the default being the file system) under the `ech/configs` folder. + +The next folder is an ECH config ID, which are randomly generated and relatively unimportant. The randomness is recommended by the spec to help mitigate fingerprinting/tracking. -**Note:** [Let's Encrypt requires ![Image 36](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/challenge-types/) the [DNS challenge](https://caddyserver.com/docs/automatic-https#dns-challenge) to obtain wildcard certificates. +A metadata sidecar file helps Caddy keep track of when publications last occurred. This prevents hammering your DNS provider at every config reload. If you have to reset this state, you may safely delete the metadata file. However, this may also reset the time when the key will be rotated. You can also go into the file and clear out just the information about publication. diff --git a/docs/caddy/docs/docs/build.md b/docs/caddy/build.md similarity index 88% rename from docs/caddy/docs/docs/build.md rename to docs/caddy/build.md index dc983d2..cf2f69b 100644 --- a/docs/caddy/docs/docs/build.md +++ b/docs/caddy/build.md @@ -24,10 +24,7 @@ Requirements: Clone the repository: -``` -git clone "https://github.com/caddyserver/caddy.git" -``` - +`git clone "https://github.com/caddyserver/caddy.git"` If you don't have git, you can download the source code as a file archive [from GitHub](https://github.com/caddyserver/caddy). Each [release](https://github.com/caddyserver/caddy/releases) also has source snapshots. Build: @@ -41,16 +38,10 @@ Go programs are easy to compile for other platforms. Just set the `GOOS`, `GOARC For example, to compile Caddy for Windows when you're not on Windows: -``` -GOOS=windows go build -``` - +`GOOS=windows go build` Or similarly for Linux ARMv6 when you're not on Linux or on ARMv6: -``` -GOOS=linux GOARCH=arm GOARM=6 go build -``` - +`GOOS=linux GOARCH=arm GOARM=6 go build` xcaddy ------ @@ -65,10 +56,7 @@ You do **not** need to download the Caddy source code (it will do that for you). Then building Caddy (with version information) is as easy as: -``` -xcaddy build -``` - +`xcaddy build` To build with plugins, use `--with`: ``` @@ -81,10 +69,7 @@ As you can see, you can customize the versions of plugins with `@` syntax. Versi Cross-platform compilation with `xcaddy` works the same as with the `go` command. For example, to cross-compile for macOS: -``` -GOOS=darwin xcaddy build -``` - +`GOOS=darwin xcaddy build` Docker ------ @@ -93,7 +78,9 @@ You can use the `:builder` image as a short-cut to building a new Caddy binary w ``` FROM caddy:-builder AS builder -RUN xcaddy build \ +RUN --mount=type=cache,target=/go/pkg/mod \ + --mount=type=cache,target=/root/.cache/go-build \ + xcaddy build \ --with github.com/caddyserver/nginx-adapter \ --with github.com/hairyhenderson/caddy-teapot-module@v0.0.3-0 @@ -106,7 +93,7 @@ Make sure to replace `` with the latest version of Caddy to start. Note the second `FROM` instruction — this produces a much smaller image by simply overlaying the newly-built binary on top of the regular `caddy` image. -The builder uses `xcaddy` to build Caddy with the provided modules, similar to the process [outlined above](https://caddyserver.com/docs/build#xcaddy). +The builder uses `xcaddy` to build Caddy with the provided modules, similar to the process [outlined above](https://caddyserver.com/docs/build#xcaddy). The `--mount=type=cache,target=/go/pkg/mod` and `--mount=type=cache,target=/root/.cache/go-build` options are used to cache the Go module dependencies and build artifacts, respectively, which speeds up subsequent builds. The flag is [a feature of Docker](https://docs.docker.com/build/cache/optimize/#use-cache-mounts), not of `xcaddy`. To use Docker Compose, see our recommended [`compose.yml`](https://caddyserver.com/docs/running#docker-compose) and usage instructions. @@ -136,16 +123,12 @@ sudo systemctl restart caddy Explanation: * `dpkg-divert` will move `/usr/bin/caddy` binary to `/usr/bin/caddy.default` and put a diversion in place in case any package want to install a file to this location. - + * `update-alternatives` will create a symlink from the desired caddy binary to `/usr/bin/caddy` - + * `systemctl restart caddy` will shut down the default version of the Caddy server and start the custom one. - You can change between the custom and default `caddy` binaries by executing the below, and following the on screen information. Then, restart the Caddy service. -``` -update-alternatives --config caddy -``` - +`update-alternatives --config caddy` To upgrade Caddy after this point, you may run [`caddy upgrade`](https://caddyserver.com/docs/command-line#caddy-upgrade). This attempts to [download](https://caddyserver.com/download) a build with the same plugins as your current build, with the latest version of Caddy, then replace the current binary with the new one. diff --git a/docs/caddy/docs/docs/caddyfile-tutorial.md b/docs/caddy/caddyfile-tutorial.md similarity index 96% rename from docs/caddy/docs/docs/caddyfile-tutorial.md rename to docs/caddy/caddyfile-tutorial.md index 4cd26c3..35b7341 100644 --- a/docs/caddy/docs/docs/caddyfile-tutorial.md +++ b/docs/caddy/caddyfile-tutorial.md @@ -42,10 +42,7 @@ respond "Hello, world!" Save that and run Caddy (since this is a training tutorial, we'll use the `--watch` flag so changes to our Caddyfile are applied automatically): -``` -caddy run --watch -``` - +`caddy run --watch` The first time, you'll be asked for your password. This is so Caddy can serve your site over HTTPS. Open [localhost](https://localhost/) in your browser and see your web server working, complete with HTTPS! @@ -97,7 +94,7 @@ file_server browse Save that, then reload the browser tab. You should see: ``` -Page loaded at: Wed Nov 27 04:19:02 UTC 2024 +Page loaded at: Tue Oct 21 12:45:24 UTC 2025 ``` With Caddy's [templates module](https://caddyserver.com/docs/modules/http.handlers.templates), you can do a lot of useful things with static files, such as including other HTML files, making sub-requests, setting response headers, working with data structures, and more! @@ -107,7 +104,7 @@ It's good practice to compress responses with a quick and modern compression alg ``` localhost -encode zstd gzip +encode templates file_server browse ``` @@ -128,7 +125,7 @@ Our Caddyfile so far: ``` localhost -encode zstd gzip +encode templates file_server browse ``` @@ -137,7 +134,7 @@ is equivalent to this one: ``` localhost { - encode zstd gzip + encode templates file_server browse } @@ -176,7 +173,7 @@ Matchers[🔗](https://caddyserver.com/docs/caddyfile-tutorial#matchers "Direct We may want to apply some directives only to certain requests. For example, let's suppose we want to have both a file server and a reverse proxy, but we obviously can't do both on every request! Either the file server will write a response with a static file, or the reverse proxy will pass the request to a backend and write back its response. -This config will not work like we want (`reverse_proxy` will take precendence due to the [directive order](https://caddyserver.com/docs/caddyfile/directives#directive-order)): +This config will not work like we want (`reverse_proxy` will take precedence due to the [directive order](https://caddyserver.com/docs/caddyfile/directives#directive-order)): ``` localhost @@ -207,10 +204,7 @@ The Caddyfile adapter allows substituting [environment variables](https://caddys First, set an environment variable (in the same shell that runs Caddy): -``` -export SITE_ADDRESS=localhost:9055 -``` - +`export SITE_ADDRESS=localhost:9055` Then you can use it like this in the Caddyfile: ``` diff --git a/docs/caddy/docs/docs/caddyfile.md b/docs/caddy/caddyfile.md similarity index 79% rename from docs/caddy/docs/docs/caddyfile.md rename to docs/caddy/caddyfile.md index 4b783b5..38b478f 100644 --- a/docs/caddy/docs/docs/caddyfile.md +++ b/docs/caddy/caddyfile.md @@ -10,7 +10,7 @@ It looks like this: ``` example.com { root * /var/www/wordpress - encode gzip + encode php_fastcgi unix//run/php/php-version-fpm.sock file_server } @@ -21,26 +21,26 @@ example.com { The basic idea is that you first type the address of your site, then the features or functionality you need your site to have. [View more common patterns.](https://caddyserver.com/docs/caddyfile/patterns) * #### [Quick start guide](https://caddyserver.com/docs/quick-starts/caddyfile) - - A good place to begin getting familiar with the Caddyfile. + + A good place to begin getting familiar with the Caddyfile. * #### [Full Caddyfile tutorial](https://caddyserver.com/docs/caddyfile-tutorial) - - Learn to do a variety of common things with the Caddyfile. + + Learn to do a variety of common things with the Caddyfile. * #### [Caddyfile concepts](https://caddyserver.com/docs/caddyfile/concepts) - - Required reading! Structure, site addresses, matchers, placeholders, and more. + + Required reading! Structure, site addresses, matchers, placeholders, and more. * #### [Directives](https://caddyserver.com/docs/caddyfile/directives) - - Keywords at the beginning of lines that enable features for your sites. + + Keywords at the beginning of lines that enable features for your sites. * #### [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - - Filter requests by using matchers with your directives. + + Filter requests by using matchers with your directives. * #### [Global options](https://caddyserver.com/docs/caddyfile/options) - - Settings that apply to the whole server rather than individual sites. + + Settings that apply to the whole server rather than individual sites. * #### [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) - - Simple ways to do common things. + + Simple ways to do common things. Note[🔗](https://caddyserver.com/docs/caddyfile#note "Direct link") ------------------------------------------------------------------- diff --git a/docs/caddy/docs/docs/caddyfile/concepts.md b/docs/caddy/caddyfile/concepts.md similarity index 84% rename from docs/caddy/docs/docs/caddyfile/concepts.md rename to docs/caddy/caddyfile/concepts.md index 48b266b..a657de9 100644 --- a/docs/caddy/docs/docs/caddyfile/concepts.md +++ b/docs/caddy/caddyfile/concepts.md @@ -5,42 +5,42 @@ URL Source: https://caddyserver.com/docs/caddyfile/concepts Markdown Content: This document will help you learn about the HTTP Caddyfile in detail. -1. [Structure](https://caddyserver.com/docs/caddyfile/concepts#structure) +1. [Structure](https://caddyserver.com/docs/caddyfile/concepts#structure) * [Blocks](https://caddyserver.com/docs/caddyfile/concepts#blocks) * [Directives](https://caddyserver.com/docs/caddyfile/concepts#directives) * [Tokens and quotes](https://caddyserver.com/docs/caddyfile/concepts#tokens-and-quotes) -2. [Global options](https://caddyserver.com/docs/caddyfile/concepts#global-options) -3. [Addresses](https://caddyserver.com/docs/caddyfile/concepts#addresses) -4. [Matchers](https://caddyserver.com/docs/caddyfile/concepts#matchers) -5. [Placeholders](https://caddyserver.com/docs/caddyfile/concepts#placeholders) -6. [Snippets](https://caddyserver.com/docs/caddyfile/concepts#snippets) -7. [Named Routes](https://caddyserver.com/docs/caddyfile/concepts#named-routes) -8. [Comments](https://caddyserver.com/docs/caddyfile/concepts#comments) -9. [Environment variables](https://caddyserver.com/docs/caddyfile/concepts#environment-variables) - -Structure[🔗](https://caddyserver.com/docs/caddyfile/concepts#structure "Direct link") --------------------------------------------------------------------------------------- + +2. [Global options](https://caddyserver.com/docs/caddyfile/concepts#global-options) +3. [Addresses](https://caddyserver.com/docs/caddyfile/concepts#addresses) +4. [Matchers](https://caddyserver.com/docs/caddyfile/concepts#matchers) +5. [Placeholders](https://caddyserver.com/docs/caddyfile/concepts#placeholders) +6. [Snippets](https://caddyserver.com/docs/caddyfile/concepts#snippets) +7. [Named Routes](https://caddyserver.com/docs/caddyfile/concepts#named-routes) +8. [Comments](https://caddyserver.com/docs/caddyfile/concepts#comments) +9. [Environment variables](https://caddyserver.com/docs/caddyfile/concepts#environment-variables) + +Structure +--------- The Caddyfile's structure can be described visually: -![Image 10: Caddyfile structure](https://caddyserver.com/old/resources/images/caddyfile-visual.png) +![Image 1: Caddyfile structure](https://caddyserver.com/old/resources/images/caddyfile-visual.png) Key points: * An optional [**global options block**](https://caddyserver.com/docs/caddyfile/concepts#global-options) can be the very first thing in the file. - + * [Snippets](https://caddyserver.com/docs/caddyfile/concepts#snippets) or [named routes](https://caddyserver.com/docs/caddyfile/concepts#named-routes) may optionally appear next. - + * Otherwise, the first line of the Caddyfile is **always** the [address(es)](https://caddyserver.com/docs/caddyfile/concepts#addresses) of the site to serve. - -* All [directives](https://caddyserver.com/docs/caddyfile/concepts#directives) and [matchers](https://caddyserver.com/docs/caddyfile/concepts#matchers) **must** go in a site block. There is no global scope or inheritance across site blocks. - + +* All [directives](https://caddyserver.com/docs/caddyfile/concepts#directives) and [matchers](https://caddyserver.com/docs/caddyfile/concepts#matchers)**must** go in a site block. There is no global scope or inheritance across site blocks. + * If there is only one site block, its curly braces `{ }` are optional. - A Caddyfile consists of at least one or more site blocks, which always starts with one or more [addresses](https://caddyserver.com/docs/caddyfile/concepts#addresses) for the site. Any directives appearing before the address will be confusing to the parser. -### Blocks[🔗](https://caddyserver.com/docs/caddyfile/concepts#blocks "Direct link") +### Blocks Opening and closing a **block** is done with curly braces: @@ -51,9 +51,8 @@ Opening and closing a **block** is done with curly braces: ``` * The open curly brace `{` must be at the end of its line and preceded by a space. - + * The close curly brace `}` must be on its own line. - When there is only one site block, the curly braces (and indentation) are optional. This is for convenience to quickly define a single site, for example, this: @@ -90,7 +89,7 @@ example2.com { If a request matches multiple site blocks, the site block with the most specific matching address is chosen. Requests don't cascade into to other site blocks. -### Directives[🔗](https://caddyserver.com/docs/caddyfile/concepts#directives "Direct link") +### Directives [**Directives**](https://caddyserver.com/docs/caddyfile/directives) are functional keywords which customize how the site is served. They **must** appear within site blocks. For example, a complete file server config might look like this: @@ -128,7 +127,7 @@ Here, `lb_policy` is a subdirective to [`reverse_proxy`](https://caddyserver.com Note that when the HTTP Caddyfile is adapted, HTTP handler directives are sorted according to a specific default [directive order](https://caddyserver.com/docs/caddyfile/directives#directive-order) unless in a [`route`](https://caddyserver.com/docs/caddyfile/directives/route) block, so the order of appearance of the directives does not matter except in `route` blocks. -### Tokens and quotes[🔗](https://caddyserver.com/docs/caddyfile/concepts#tokens-and-quotes "Direct link") +### Tokens and quotes The Caddyfile is lexed into tokens before being parsed. Whitespace is significant in the Caddyfile, because tokens are separated by whitespace. @@ -152,7 +151,7 @@ Quotes can be escaped if you need to use quotes in quoted tokens, too: directive "\"abc def\"" ``` -To avoid escaping quotes, you can instead use backticks `` ` ``` to enclose tokens; for example: +To avoid escaping quotes, you can instead use backticks `` `` to enclose tokens; for example: ``` directive `{"foo": "bar"}` @@ -165,7 +164,7 @@ directive "first line second line" ``` -Heredocs are also supported: +Heredocs are also supported: ``` example.com { @@ -184,8 +183,8 @@ The closing marker can be indented, which causes every line of text to have that Additional tokens may follow the closing marker as arguments to the directive (such as in the example above, the status code `200`). -Global options[🔗](https://caddyserver.com/docs/caddyfile/concepts#global-options "Direct link") ------------------------------------------------------------------------------------------------- +Global options +-------------- A Caddyfile may optionally start with a special block that has no keys, called a [global options block](https://caddyserver.com/docs/caddyfile/options): @@ -209,8 +208,8 @@ For example, to enable the `debug` global option, which is commonly used to prod **[Read the Global Options page](https://caddyserver.com/docs/caddyfile/options) to learn more.** -Addresses[🔗](https://caddyserver.com/docs/caddyfile/concepts#addresses "Direct link") --------------------------------------------------------------------------------------- +Addresses +--------- An address always appears at the top of the site block, and is usually the first thing in the Caddyfile. @@ -271,7 +270,7 @@ www.example.com { An address must be unique; you cannot specify the same address more than once. -[Placeholders](https://caddyserver.com/docs/caddyfile/concepts#placeholders) **cannot** be used in addresses, but you may use Caddyfile-style [environment variables](https://caddyserver.com/docs/caddyfile/concepts#environment-variables) in them: +[Placeholders](https://caddyserver.com/docs/caddyfile/concepts#placeholders)**cannot** be used in addresses, but you may use Caddyfile-style [environment variables](https://caddyserver.com/docs/caddyfile/concepts#environment-variables) in them: ``` {$DOMAIN:localhost} { @@ -281,8 +280,8 @@ An address must be unique; you cannot specify the same address more than once. By default, sites bind on all network interfaces. If you wish to override this, use the [`bind` directive](https://caddyserver.com/docs/caddyfile/directives/bind) or the [`default_bind` global option](https://caddyserver.com/docs/caddyfile/options#default-bind) to do so. -Matchers[🔗](https://caddyserver.com/docs/caddyfile/concepts#matchers "Direct link") ------------------------------------------------------------------------------------- +Matchers +-------- HTTP handler [directives](https://caddyserver.com/docs/caddyfile/concepts#directives) apply to all requests by default (unless otherwise documented). @@ -300,8 +299,8 @@ Matcher tokens can be omitted entirely to match all requests; for example, `*` d **[Read the Request Matchers page](https://caddyserver.com/docs/caddyfile/matchers) to learn more.** -Placeholders[🔗](https://caddyserver.com/docs/caddyfile/concepts#placeholders "Direct link") --------------------------------------------------------------------------------------------- +Placeholders +------------ [Placeholders](https://caddyserver.com/docs/conventions#placeholders) are a simple way to inject dynamic values into your static configuration. They can be used as arguments to directives and subdirectives. @@ -352,8 +351,8 @@ You can use any placeholders in the Caddyfile, but for convenience you can also Not all config fields support placeholders, but most do where you would expect it. Support for placeholders needs to have been explicitly added to those fields. Plugin authors can [read this article](https://caddyserver.com/docs/extending-caddy/placeholders) to learn how to add support for placeholders in their own modules. -Snippets[🔗](https://caddyserver.com/docs/caddyfile/concepts#snippets "Direct link") ------------------------------------------------------------------------------------- +Snippets +-------- You can define special blocks called snippets by giving them a name surrounded in parentheses: @@ -404,10 +403,33 @@ b.example.com { } ``` +⚠️ _Experimental_ | v2.9.x+ + +You can also pass an optional block to an imported snippet, and use them as follows. + +``` +(snippet) { + {block} + respond "OK" +} + +a.example.com { + import snippet { + header +foo bar + } +} + +b.example.com { + import snippet { + header +bar foo + } +} +``` + **[Read the `import` directive page](https://caddyserver.com/docs/caddyfile/directives/import) to learn more.** -Named Routes[🔗](https://caddyserver.com/docs/caddyfile/concepts#named-routes "Direct link") --------------------------------------------------------------------------------------------- +Named Routes +------------ ⚠️ _Experimental_ @@ -444,8 +466,8 @@ directive # or go at the end The hash character `#` for a comment cannot appear in the middle of a token (i.e. it must be preceded by a space or appear at the beginning of a line). This allows the use of hashes within URIs or other values without requiring quoting. -Environment variables[🔗](https://caddyserver.com/docs/caddyfile/concepts#environment-variables "Direct link") --------------------------------------------------------------------------------------------------------------- +Environment variables +--------------------- If your configuration relies on environment variables, you can use them in the Caddyfile: @@ -473,7 +495,7 @@ A default value can be specified for when the environment variable is not found, If you want to **defer the substitution** of an environment variable until runtime, you can use the [standard `{env.*}` placeholders](https://caddyserver.com/docs/conventions#placeholders). Note that not all config parameters support these placeholders though, since module developers need to add a line of code to perform the replacement. If it doesn't seem to work, please file an issue to request support for it. -For example, if you have the [`caddy-dns/cloudflare` plugin ![Image 11](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddy-dns/cloudflare) installed and wish to configure the [DNS challenge](https://caddyserver.com/docs/automatic-https#dns-challenge), you can pass your `CLOUDFLARE_API_TOKEN` environment variable to the plugin like this: +For example, if you have the [`caddy-dns/cloudflare` plugin ![Image 2](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddy-dns/cloudflare) installed and wish to configure the [DNS challenge](https://caddyserver.com/docs/automatic-https#dns-challenge), you can pass your `CLOUDFLARE_API_TOKEN` environment variable to the plugin like this: ``` { diff --git a/docs/caddy/docs/docs/caddyfile/directives.md b/docs/caddy/caddyfile/directives.md similarity index 76% rename from docs/caddy/docs/docs/caddyfile/directives.md rename to docs/caddy/caddyfile/directives.md index 96abb85..0fe6237 100644 --- a/docs/caddy/docs/docs/caddyfile/directives.md +++ b/docs/caddy/caddyfile/directives.md @@ -14,42 +14,42 @@ The following directives come standard with Caddy, and can be used in the HTTP C | Directive | Description | | --- | --- | | **[abort](https://caddyserver.com/docs/caddyfile/directives/abort)** | Aborts the HTTP request | -| **[acme\_server](https://caddyserver.com/docs/caddyfile/directives/acme_server)** | An embedded ACME server | -| **[basic\_auth](https://caddyserver.com/docs/caddyfile/directives/basic_auth)** | Enforces HTTP Basic Authentication | +| **[acme_server](https://caddyserver.com/docs/caddyfile/directives/acme_server)** | An embedded ACME server | +| **[basic_auth](https://caddyserver.com/docs/caddyfile/directives/basic_auth)** | Enforces HTTP Basic Authentication | | **[bind](https://caddyserver.com/docs/caddyfile/directives/bind)** | Customize the server's socket address | | **[encode](https://caddyserver.com/docs/caddyfile/directives/encode)** | Encodes (usually compresses) responses | | **[error](https://caddyserver.com/docs/caddyfile/directives/error)** | Trigger an error | -| **[file\_server](https://caddyserver.com/docs/caddyfile/directives/file_server)** | Serve files from disk | -| **[forward\_auth](https://caddyserver.com/docs/caddyfile/directives/forward_auth)** | Delegate authentication to an external service | +| **[file_server](https://caddyserver.com/docs/caddyfile/directives/file_server)** | Serve files from disk | +| **[forward_auth](https://caddyserver.com/docs/caddyfile/directives/forward_auth)** | Delegate authentication to an external service | | **[fs](https://caddyserver.com/docs/caddyfile/directives/fs)** | Set the file system to use for file I/O | | **[handle](https://caddyserver.com/docs/caddyfile/directives/handle)** | A mutually-exclusive group of directives | -| **[handle\_errors](https://caddyserver.com/docs/caddyfile/directives/handle_errors)** | Defines routes for handling errors | -| **[handle\_path](https://caddyserver.com/docs/caddyfile/directives/handle_path)** | Like handle, but strips path prefix | +| **[handle_errors](https://caddyserver.com/docs/caddyfile/directives/handle_errors)** | Defines routes for handling errors | +| **[handle_path](https://caddyserver.com/docs/caddyfile/directives/handle_path)** | Like handle, but strips path prefix | | **[header](https://caddyserver.com/docs/caddyfile/directives/header)** | Sets or removes response headers | | **[import](https://caddyserver.com/docs/caddyfile/directives/import)** | Include snippets or files | | **[intercept](https://caddyserver.com/docs/caddyfile/directives/intercept)** | Intercept responses written by other handlers | | **[invoke](https://caddyserver.com/docs/caddyfile/directives/invoke)** | Invoke a named route | | **[log](https://caddyserver.com/docs/caddyfile/directives/log)** | Enables access/request logging | -| **[log\_append](https://caddyserver.com/docs/caddyfile/directives/log_append)** | Append a field to the access log | -| **[log\_skip](https://caddyserver.com/docs/caddyfile/directives/log_skip)** | Skip access logging for matched requests | -| **[log\_name](https://caddyserver.com/docs/caddyfile/directives/log_name)** | Override the logger name(s) to write to | +| **[log_append](https://caddyserver.com/docs/caddyfile/directives/log_append)** | Append a field to the access log | +| **[log_skip](https://caddyserver.com/docs/caddyfile/directives/log_skip)** | Skip access logging for matched requests | +| **[log_name](https://caddyserver.com/docs/caddyfile/directives/log_name)** | Override the logger name(s) to write to | | **[map](https://caddyserver.com/docs/caddyfile/directives/map)** | Maps an input value to one or more outputs | | **[method](https://caddyserver.com/docs/caddyfile/directives/method)** | Change the HTTP method internally | | **[metrics](https://caddyserver.com/docs/caddyfile/directives/metrics)** | Configures the Prometheus metrics exposition endpoint | -| **[php\_fastcgi](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi)** | Serve PHP sites over FastCGI | +| **[php_fastcgi](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi)** | Serve PHP sites over FastCGI | | **[push](https://caddyserver.com/docs/caddyfile/directives/push)** | Push content to the client using HTTP/2 server push | | **[redir](https://caddyserver.com/docs/caddyfile/directives/redir)** | Issues an HTTP redirect to the client | -| **[request\_body](https://caddyserver.com/docs/caddyfile/directives/request_body)** | Manipulates request body | -| **[request\_header](https://caddyserver.com/docs/caddyfile/directives/request_header)** | Manipulates request headers | +| **[request_body](https://caddyserver.com/docs/caddyfile/directives/request_body)** | Manipulates request body | +| **[request_header](https://caddyserver.com/docs/caddyfile/directives/request_header)** | Manipulates request headers | | **[respond](https://caddyserver.com/docs/caddyfile/directives/respond)** | Writes a hard-coded response to the client | -| **[reverse\_proxy](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy)** | A powerful and extensible reverse proxy | +| **[reverse_proxy](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy)** | A powerful and extensible reverse proxy | | **[rewrite](https://caddyserver.com/docs/caddyfile/directives/rewrite)** | Rewrites the request internally | | **[root](https://caddyserver.com/docs/caddyfile/directives/root)** | Set the path to the site root | | **[route](https://caddyserver.com/docs/caddyfile/directives/route)** | A group of directives treated literally as single unit | | **[templates](https://caddyserver.com/docs/caddyfile/directives/templates)** | Execute templates on the response | | **[tls](https://caddyserver.com/docs/caddyfile/directives/tls)** | Customize TLS settings | | **[tracing](https://caddyserver.com/docs/caddyfile/directives/tracing)** | Integration with OpenTelemetry tracing | -| **[try\_files](https://caddyserver.com/docs/caddyfile/directives/try_files)** | Rewrite that depends on file existence | +| **[try_files](https://caddyserver.com/docs/caddyfile/directives/try_files)** | Rewrite that depends on file existence | | **[uri](https://caddyserver.com/docs/caddyfile/directives/uri)** | Manipulate the URI | | **[vars](https://caddyserver.com/docs/caddyfile/directives/vars)** | Set arbitrary variables | @@ -145,26 +145,27 @@ Sorting algorithm[🔗](https://caddyserver.com/docs/caddyfile/directives#sortin For ease of use, the Caddyfile adapter sorts directives according to the following rules: * Differently named directives are sorted by their position in the [default order](https://caddyserver.com/docs/caddyfile/directives#directive-order). The default order can be overridden with the [`order` global option](https://caddyserver.com/docs/caddyfile/options). Directives from plugins _do not_ have an order, so the [`order`](https://caddyserver.com/docs/caddyfile/options) global option or the [`route`](https://caddyserver.com/docs/caddyfile/directives/route) directive should be used to set one. - + * Same-named directives are sorted according to their [matchers](https://caddyserver.com/docs/caddyfile/matchers#syntax). - + * The highest priority is a directive with a single [path matcher](https://caddyserver.com/docs/caddyfile/matchers#path-matchers). - - Path matchers are sorted by specificity, from most specific to least specific. - - In general, this is performed by sorting by the length of the path matcher. There is one exception where if the path ends in a `*` and the paths of the two matchers are otherwise the same, the matcher with no `*` is considered more specific and sorted higher. - - For example: - + +Path matchers are sorted by specificity, from most specific to least specific. + +In general, this is performed by sorting by the length of the path matcher. There is one exception where if the path ends in a `*` and the paths of the two matchers are otherwise the same, the matcher with no `*` is considered more specific and sorted higher. + +For example: + * `/foobar` is more specific than `/foo` * `/foo` is more specific than `/foo*` * `/foo/*` is more specific than `/foo*` + * A directive with any other matcher is sorted next, in the order it appears in the Caddyfile. - - This includes path matchers with multiple values, and [named matchers](https://caddyserver.com/docs/caddyfile/matchers#named-matchers). - + +This includes path matchers with multiple values, and [named matchers](https://caddyserver.com/docs/caddyfile/matchers#named-matchers). + * A directive with no matcher (i.e. matching all requests) is sorted last. - -* The [`vars`](https://caddyserver.com/docs/caddyfile/directives/vars) directive has its ordering by matcher reversed, because it involves setting values which can overwrite eachother, so the most specific matcher should be evaluated last. - + +* The [`vars`](https://caddyserver.com/docs/caddyfile/directives/vars) directive has its ordering by matcher reversed, because it involves setting values which can overwrite each other, so the most specific matcher should be evaluated last. + * The contents of the [`route`](https://caddyserver.com/docs/caddyfile/directives/route) directive ignores all the above rules, and preserves the order the directives appear within. diff --git a/docs/caddy/docs/docs/caddyfile/directives/file_server.md b/docs/caddy/caddyfile/directives/file_server.md similarity index 58% rename from docs/caddy/docs/docs/caddyfile/directives/file_server.md rename to docs/caddy/caddyfile/directives/file_server.md index 62db33a..548e4ed 100644 --- a/docs/caddy/docs/docs/caddyfile/directives/file_server.md +++ b/docs/caddy/caddyfile/directives/file_server.md @@ -13,8 +13,8 @@ When errors occur (e.g. file not found `404`, permission denied `403`), the erro When using `browse`, the default output is produced by the the HTML template. Clients may request the directory listing as either JSON or plaintext, by using the `Accept: application/json` or `Accept: text/plain` headers respectively. The JSON output can be useful for scripting, and the plaintext output can be useful for human terminal usage. -Syntax ------- +Syntax[🔗](https://caddyserver.com/docs/caddyfile/directives/file_server#syntax "Direct link") +---------------------------------------------------------------------------------------------- ``` file_server [] [browse] { @@ -24,8 +24,9 @@ file_server [] [browse] { index browse [] { reveal_symlinks + sort [] } - precompressed + precompressed [] status disable_canonical_uris pass_thru @@ -33,34 +34,35 @@ file_server [] [browse] { ``` * **fs** specifies an alternate (perhaps virtual) file system to use. Any Caddy module in the `caddy.fs` namespace can be used here. Any root path/prefix will still apply to alternate file system modules. By default, the local disk is used. - - [`xcaddy`](https://caddyserver.com/docs/build#xcaddy) v0.4.0 introduces the [`--embed` flag](https://github.com/caddyserver/xcaddy#custom-builds) to embed a filesystem tree into the custom Caddy build, and registers an `fs` module named `embedded` which allows your static site to be distributed as a Caddy executable. - + +[`xcaddy`](https://caddyserver.com/docs/build#xcaddy) v0.4.0 introduces the [`--embed` flag](https://github.com/caddyserver/xcaddy#custom-builds) to embed a filesystem tree into the custom Caddy build, and registers an `fs` module named `embedded` which allows your static site to be distributed as a Caddy executable. + * **root** sets the path to the site root. It's similar to the [`root`](https://caddyserver.com/docs/caddyfile/directives/root) directive except it applies to this file server instance only and overrides any other site root that may have been defined. Default: `{http.vars.root}` or the current working directory. Note: This subdirective only changes the root for this handler. For other directives (like [`try_files`](https://caddyserver.com/docs/caddyfile/directives/try_files) or [`templates`](https://caddyserver.com/docs/caddyfile/directives/templates)) to know the same site root, use the [`root`](https://caddyserver.com/docs/caddyfile/directives/root) directive instead. - + * **hide** is a list of files or folders to hide; if requested, the file server will pretend they do not exist. Accepts placeholders and glob patterns. Note that these are _file system_ paths, NOT request paths. In other words, relative paths use the current working directory as a base, NOT the site root; and all paths are transformed to their absolute form before comparisons (if possible). Specifying a file name or pattern without a path separator will hide all files with a matching name regardless of its location; otherwise, a path prefix match will be attempted, and then a globular match. Since this is a Caddyfile config, the active configuration file(s) will be added by default. - + * **index** is a list of filenames to look for as index files. Default: `index.html index.txt` - + * **browse** enables file listings for requests to directories that do not have an index file. - - * **** is an optional custom template file to use for directory listings. Defaults to the template that can be extracted using the command `caddy file-server export-template`, which will print the defaut template to stdout. The embedded template can also be found [here in the source code ![Image 8: external link](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddyserver/caddy/blob/master/modules/caddyhttp/fileserver/browse.html) . Browse templates can use actions from [the standard templates module](https://caddyserver.com/docs/modules/http.handlers.templates#docs) as well. - - * **reveal\_symlinks** enables revealing the targets of symbolic links in directory listings. By default, the symlink targets are hidden, and only the link file itself is shown. - -* **precompressed** is the list of encoding formats to search for precompressed sidecar files. Arguments are an ordered list of encoding formats to search for precompressed [sidecar files](https://en.wikipedia.org/wiki/Sidecar_file). Supported formats are `gzip` (`.gz`), `zstd` (`.zst`) and `br` (`.br`). - - All file lookups will look for the existence of the uncompressed file first. Once found Caddy will look for sidecar files with the file extension of each enabled format. If a precompressed sidecar file is found, Caddy will respond with the precompressed file, with the `Content-Encoding` response header set appropriately. Otherwise, Caddy will respond with the uncompressed file as normal. If the [`encode` directive](https://caddyserver.com/docs/caddyfile/directives/encode) is enabled, then it may compress the response on-the-fly if not precompressed. - + + * **** is an optional custom template file to use for directory listings. Defaults to the template that can be extracted using the command `caddy file-server export-template`, which will print the default template to stdout. The embedded template can also be found [here in the source code ![Image 1: external link](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddyserver/caddy/blob/master/modules/caddyhttp/fileserver/browse.html). Browse templates can use actions from [the standard templates module](https://caddyserver.com/docs/modules/http.handlers.templates#docs) as well. + + * **reveal_symlinks** enables revealing the targets of symbolic links in directory listings. By default, the symlink targets are hidden, and only the link file itself is shown. + + * **sort** changes the default sort for directory listings. The first parameter is the field/column to sort by: `name`, `namedirfirst`, `size`, or `time`. The second argument is an optional direction: `asc` or `desc`. For example, `sort name desc` will sort by name in descending order. + +* **precompressed** is the list of encoding formats to search for precompressed sidecar files. Arguments are an ordered list of encoding formats to search for precompressed [sidecar files](https://en.wikipedia.org/wiki/Sidecar_file). Supported formats are `gzip` (`.gz`), `zstd` (`.zst`) and `br` (`.br`). If formats are omitted, they default to `br zstd gzip` (in that order). + +All file lookups will look for the existence of the uncompressed file first. Once found Caddy will look for sidecar files with the file extension of each enabled format. If a precompressed sidecar file is found, Caddy will respond with the precompressed file, with the `Content-Encoding` response header set appropriately. Otherwise, Caddy will respond with the uncompressed file as normal. If the [`encode` directive](https://caddyserver.com/docs/caddyfile/directives/encode) is enabled, then it may compress the response on-the-fly if not precompressed. + * **status** is an optional status code override to be used when writing the response. Particularly useful when responding to a request with a [custom error page](https://caddyserver.com/docs/caddyfile/directives/handle_errors). Can be a 3-digit status code, For example: `404`. Placeholders are supported. By default, the written status code will typically be `200`, or `206` for partial content. - -* **disable\_canonical\_uris** disables the default behaviour of redirecting (to add a trailing slash if the request path is a directory, or remove the trailing slash if the request path is a file). Note that by default, canonicalization will not happen if the last element of the request's path (the filename) underwent an internal rewrite, to avoid clobbering an explicit rewrite with implicit behaviour. - -* **pass\_thru** enables pass-thru mode, which continues to the next HTTP handler in the route if the requested file is not found, instead of triggering a `404` error (invoking [`handle_errors`](https://caddyserver.com/docs/caddyfile/directives/handle_errors) routes). Practically, this is only useful inside of a [`route`](https://caddyserver.com/docs/caddyfile/directives/route) block with other handler directives following `file_server`, because this directive is effectively [ordered last](https://caddyserver.com/docs/caddyfile/directives#directive-order). - -Examples --------- +* **disable_canonical_uris** disables the default behaviour of redirecting (to add a trailing slash if the request path is a directory, or remove the trailing slash if the request path is a file). Note that by default, canonicalization will not happen if the last element of the request's path (the filename) underwent an internal rewrite, to avoid clobbering an explicit rewrite with implicit behaviour. + +* **pass_thru** enables pass-thru mode, which continues to the next HTTP handler in the route if the requested file is not found, instead of triggering a `404` error (invoking [`handle_errors`](https://caddyserver.com/docs/caddyfile/directives/handle_errors) routes). Practically, this is only useful inside of a [`route`](https://caddyserver.com/docs/caddyfile/directives/route) block with other handler directives following `file_server`, because this directive is effectively [ordered last](https://caddyserver.com/docs/caddyfile/directives#directive-order). + +Examples[🔗](https://caddyserver.com/docs/caddyfile/directives/file_server#examples "Direct link") +-------------------------------------------------------------------------------------------------- A static file server out of the current directory: @@ -97,10 +99,10 @@ file_server { } ``` -If supported by the client (`Accept-Encoding` header) checks the existence of precompressed files along side the requested file. So if `/path/to/file` is requested, it checks for `/path/to/file.zst`, `/path/to/file.br` and `/path/to/file.gz` in that order and serves the first available file with corresponding Content-Encoding: +If supported by the client (`Accept-Encoding` header) checks the existence of precompressed files along side the requested file. So if `/path/to/file` is requested, it checks for `/path/to/file.br`, `/path/to/file.zst` and `/path/to/file.gz` in that order and serves the first available file with corresponding `Content-Encoding`: ``` file_server { - precompressed zstd br gzip + precompressed } ``` diff --git a/docs/caddy/docs/docs/caddyfile/matchers.md b/docs/caddy/caddyfile/matchers.md similarity index 89% rename from docs/caddy/docs/docs/caddyfile/matchers.md rename to docs/caddy/caddyfile/matchers.md index 6665335..7e7074b 100644 --- a/docs/caddy/docs/docs/caddyfile/matchers.md +++ b/docs/caddy/caddyfile/matchers.md @@ -10,31 +10,32 @@ Markdown Content: * [Wildcard matchers](https://caddyserver.com/docs/caddyfile/matchers#wildcard-matchers) * [Path matchers](https://caddyserver.com/docs/caddyfile/matchers#path-matchers) * [Named matchers](https://caddyserver.com/docs/caddyfile/matchers#named-matchers) + * [Standard matchers](https://caddyserver.com/docs/caddyfile/matchers#standard-matchers) - * [client\_ip](https://caddyserver.com/docs/caddyfile/matchers#client-ip) + * [client_ip](https://caddyserver.com/docs/caddyfile/matchers#client-ip) * [expression](https://caddyserver.com/docs/caddyfile/matchers#expression) * [file](https://caddyserver.com/docs/caddyfile/matchers#file) * [header](https://caddyserver.com/docs/caddyfile/matchers#header) - * [header\_regexp](https://caddyserver.com/docs/caddyfile/matchers#header-regexp) + * [header_regexp](https://caddyserver.com/docs/caddyfile/matchers#header-regexp) * [host](https://caddyserver.com/docs/caddyfile/matchers#host) * [method](https://caddyserver.com/docs/caddyfile/matchers#method) * [not](https://caddyserver.com/docs/caddyfile/matchers#not) * [path](https://caddyserver.com/docs/caddyfile/matchers#path) - * [path\_regexp](https://caddyserver.com/docs/caddyfile/matchers#path-regexp) + * [path_regexp](https://caddyserver.com/docs/caddyfile/matchers#path-regexp) * [protocol](https://caddyserver.com/docs/caddyfile/matchers#protocol) * [query](https://caddyserver.com/docs/caddyfile/matchers#query) - * [remote\_ip](https://caddyserver.com/docs/caddyfile/matchers#remote-ip) + * [remote_ip](https://caddyserver.com/docs/caddyfile/matchers#remote-ip) * [vars](https://caddyserver.com/docs/caddyfile/matchers#vars) - * [vars\_regexp](https://caddyserver.com/docs/caddyfile/matchers#vars-regexp) + * [vars_regexp](https://caddyserver.com/docs/caddyfile/matchers#vars-regexp) Syntax[🔗](https://caddyserver.com/docs/caddyfile/matchers#syntax "Direct link") -------------------------------------------------------------------------------- In the Caddyfile, a **matcher token** immediately following the directive can limit that directive's scope. The matcher token can be one of these forms: -1. [**`*`**](https://caddyserver.com/docs/caddyfile/matchers#wildcard-matchers) to match all requests (wildcard; default). -2. [**`/path`**](https://caddyserver.com/docs/caddyfile/matchers#path-matchers) start with a forward slash to match a request path. -3. [**`@name`**](https://caddyserver.com/docs/caddyfile/matchers#named-matchers) to specify a _named matcher_. +1. [**`*`**](https://caddyserver.com/docs/caddyfile/matchers#wildcard-matchers) to match all requests (wildcard; default). +2. [**`/path`**](https://caddyserver.com/docs/caddyfile/matchers#path-matchers) start with a forward slash to match a request path. +3. [**`@name`**](https://caddyserver.com/docs/caddyfile/matchers#named-matchers) to specify a _named matcher_. If a directive supports matchers, it will appear as `[]` in its syntax documentation. Matcher tokens are [usually optional](https://caddyserver.com/docs/caddyfile/directives#syntax), denoted by `[ ]`. If the matcher token is omitted, it is the same as a wildcard matcher (`*`). @@ -114,7 +115,7 @@ Then you can use the matcher like so, by specifying it as the first argument to directive @name ``` -For example, this proxies websocket requests to `localhost:6001`, and other requests to `localhost:8080`. It matches requests that have a header field named `Connection` _containing_ `Upgrade`, **and** another field named `Upgrade` with exactly `websocket`: +For example, this proxies HTTP/1.1 websocket requests to `localhost:6001`, and other requests to `localhost:8080`. It matches requests that have a header field named `Connection`_containing_`Upgrade`, **and** another field named `Upgrade` with exactly `websocket`: ``` example.com { @@ -147,7 +148,7 @@ A named matcher definition constitutes a _matcher set_. Matchers in a set are AN Multiple matchers of the same type may be merged (e.g. multiple [`path`](https://caddyserver.com/docs/caddyfile/matchers#path) matchers in the same set) using boolean algebra (AND/OR), as described in their respective sections below. -For more complex boolean matching logic, it's recommended to the [`expression` matcher](https://caddyserver.com/docs/caddyfile/matchers#expression) to write a CEL expression, which supports **and** `&&`, **or** `||`, and **parentheses** `( )`. +For more complex boolean matching logic, it's recommended to the [`expression` matcher](https://caddyserver.com/docs/caddyfile/matchers#expression) to write a CEL expression, which supports **and**`&&`, **or**`||`, and **parentheses**`( )`. Standard matchers[🔗](https://caddyserver.com/docs/caddyfile/matchers#standard-matchers "Direct link") ------------------------------------------------------------------------------------------------------ @@ -156,7 +157,7 @@ Full matcher documentation can be found [in each respective matcher module's doc Requests can be matched the following ways: -### client\_ip[🔗](https://caddyserver.com/docs/caddyfile/matchers#client-ip "Direct link") +### client_ip[🔗](https://caddyserver.com/docs/caddyfile/matchers#client-ip "Direct link") ``` client_ip @@ -261,7 +262,7 @@ respond @api "Hello, API!" file { root try_files - try_policy first_exist|smallest_size|largest_size|most_recently_modified + try_policy first_exist|first_exist_fallback|smallest_size|largest_size|most_recently_modified split_path } file @@ -269,7 +270,7 @@ file expression `file({ 'root': '', 'try_files': [''], - 'try_policy': 'first_exist|smallest_size|largest_size|most_recently_modified', + 'try_policy': 'first_exist|first_exist_fallback|smallest_size|largest_size|most_recently_modified', 'split_path': [''] })` expression file('') @@ -277,26 +278,27 @@ expression file('') By files. -* `root` defines the directory in which to look for files. Default is the current working directory, or the `root` [variable](https://caddyserver.com/docs/modules/http.handlers.vars) (`{http.vars.root}`) if set (can be set via the [`root` directive](https://caddyserver.com/docs/caddyfile/directives/root)). - -* `try_files` checks files in its list that match the try\_policy. - - To match directories, append a trailing forward slash `/` to the path. All file paths are relative to the site [root](https://caddyserver.com/docs/caddyfile/directives/root), and [glob patterns](https://pkg.go.dev/path/filepath#Match) will be expanded. - - If the `try_policy` is `first_exist` (the default), then the last item in the list may be a number prefixed by `=` (e.g. `=404`), which as a fallback, will emit an error with that code; the error can be caught and handled with [`handle_errors`](https://caddyserver.com/docs/caddyfile/directives/handle_errors). - +* `root` defines the directory in which to look for files. Default is the current working directory, or the `root`[variable](https://caddyserver.com/docs/modules/http.handlers.vars) (`{http.vars.root}`) if set (can be set via the [`root` directive](https://caddyserver.com/docs/caddyfile/directives/root)). + +* `try_files` checks files in its list that match the try_policy. + +To match directories, append a trailing forward slash `/` to the path. All file paths are relative to the site [root](https://caddyserver.com/docs/caddyfile/directives/root), and [glob patterns](https://pkg.go.dev/path/filepath#Match) will be expanded. + +If the `try_policy` is `first_exist` (the default), then the last item in the list may be a number prefixed by `=` (e.g. `=404`), which as a fallback, will emit an error with that code; the error can be caught and handled with [`handle_errors`](https://caddyserver.com/docs/caddyfile/directives/handle_errors). + * `try_policy` specifies how to choose a file. Default is `first_exist`. - + * `first_exist` checks for file existence. The first file that exists is selected. - + + * `first_exist_fallback` is similar to `first_exist`, but assumes that the last element in the list always exists to prevent a disk access. + * `smallest_size` chooses the file with the smallest size. - + * `largest_size` chooses the file with the largest size. - + * `most_recently_modified` chooses the file that was most recently modified. - + * `split_path` will cause the path to be split at the first delimiter in the list that is found in each filepath to try. For each split value, the left-hand side of the split including the delimiter itself will be the filepath that is tried. For example, `/remote.php/dav/` using a delimiter of `.php` would try the file `/remote.php`. Each delimiter must appear at the end of a URI path component in order to be used as a split delimiter. This is a niche setting and is mostly used when serving PHP sites. - Because `try_files` with a policy of `first_exist` is so common, there is a one-line shortcut for that: @@ -353,9 +355,10 @@ expression header({'': ''}) By request header fields. -* `` is the name of the HTTP header field to check. +* `` is the name of the HTTP header field to check. * If prefixed with `!`, the field must not exist to match (omit value arg). -* `` is the value the field must have to match. One or more may be specified. + +* `` is the value the field must have to match. One or more may be specified. * If prefixed with `*`, it performs a fast suffix match (appears at the end). * If suffixed with `*`, it performs a fast prefix match (appears at the start). * If enclosed by `*`, it performs a fast substring match (appears anywhere). @@ -388,10 +391,10 @@ Match requests that do not have the `Foo` header field at all: @not_foo header !Foo ``` -Using an [CEL expression](https://caddyserver.com/docs/caddyfile/matchers#expression), match WebSocket requests by checking for the `Connection` header containing `Upgrade` and the `Upgrade` header equalling `websocket`: +Using an [CEL expression](https://caddyserver.com/docs/caddyfile/matchers#expression), match WebSocket requests by checking for the `Connection` header containing `Upgrade` and the `Upgrade` header equalling `websocket` (HTTP/2 has the `:protocol` header for this): ``` -@websockets `header({'Connection':'*Upgrade*','Upgrade':'websocket'})` +@websockets `header({'Connection':'*Upgrade*','Upgrade':'websocket'}) || header({':protocol': 'websocket'})` ``` * * * @@ -412,11 +415,11 @@ As of v2.8.0, if `name` is _not_ provided, the name will be taken from the named Capture groups can be accessed via [placeholder](https://caddyserver.com/docs/caddyfile/concepts#placeholders) in directives after matching: * `{re..}` where: - + * `` is the name of the regular expression, * `` is either the name or number of the capture group in the expression. + * `{re.}` without a name, is also populated for convenience. The caveat is that if multiple regexp matchers are used in sequence, then the placeholder values will be overwritten by the next matcher. - Capture group `0` is the full regexp match, `1` is the first capture group, `2` is the second capture group, and so on. So `{re.foo.1}` or `{re.1}` will both hold the value of the first capture group. @@ -637,7 +640,7 @@ With a [CEL expression](https://caddyserver.com/docs/caddyfile/matchers#expressi * * * -### path\_regexp[🔗](https://caddyserver.com/docs/caddyfile/matchers#path-regexp "Direct link") +### path_regexp[🔗](https://caddyserver.com/docs/caddyfile/matchers#path-regexp "Direct link") ``` path_regexp [] @@ -655,11 +658,11 @@ As of v2.8.0, if `name` is _not_ provided, the name will be taken from the named Capture groups can be accessed via [placeholder](https://caddyserver.com/docs/caddyfile/concepts#placeholders) in directives after matching: * `{re..}` where: - + * `` is the name of the regular expression, * `` is either the name or number of the capture group in the expression. + * `{re.}` without a name, is also populated for convenience. The caveat is that if multiple regexp matchers are used in sequence, then the placeholder values will be overwritten by the next matcher. - Capture group `0` is the full regexp match, `1` is the first capture group, `2` is the second capture group, and so on. So `{re.foo.1}` or `{re.1}` will both hold the value of the first capture group. @@ -719,12 +722,13 @@ With a [CEL expression](https://caddyserver.com/docs/caddyfile/matchers#expressi ``` query =... +query "" expression query({'': ''}) expression query({'': ['']}) ``` -By query string parameters. Should be a sequence of `key=value` pairs. Keys are matched exactly (case-sensitively) but also support `*` to match any value. Values can use placeholders. +By query string parameters. Should be a sequence of `key=value` pairs, or an empty string "". Keys are matched exactly (case-sensitively) but also support `*` to match any value. Values can use placeholders. Empty string matches http requests with no query parameters. There can be multiple `query` matchers per named matcher, and pairs with the same keys will be OR'ed together. Different keys will be AND'ed together. So, all keys in the matcher must have at least one matching value. @@ -754,7 +758,7 @@ Matching both `q` and `sort`, with a [CEL expression](https://caddyserver.com/do * * * -### remote\_ip[🔗](https://caddyserver.com/docs/caddyfile/matchers#remote-ip "Direct link") +### remote_ip[🔗](https://caddyserver.com/docs/caddyfile/matchers#remote-ip "Direct link") ``` remote_ip @@ -805,9 +809,9 @@ vars By the value of a variable in the request context, or the value of a placeholder. Multiple values may be specified to match any of those possible values (OR'ed). -The **** argument may be either a variable name or a placeholder in curly braces `{ }`. (Placeholders are not expanded in the first parameter.) +The **** argument may be either a variable name or a placeholder in curly braces `{ }`. (Placeholders are not expanded in the first parameter.) -This matcher is most useful when paired with the [`map` directive](https://caddyserver.com/docs/caddyfile/directives/map) which sets outputs, or with plugins which set some information in the request context. +This matcher is most useful when paired with the [`map` directive](https://caddyserver.com/docs/caddyfile/directives/map) which sets outputs, with the [`vars` directive](https://caddyserver.com/docs/caddyfile/directives/vars) within your routes, or with plugins which set some information in the request context. #### Example:[🔗](https://caddyserver.com/docs/caddyfile/matchers#example-8 "Direct link") @@ -823,9 +827,24 @@ Match an arbitrary placeholder's value, i.e. the authenticated user's ID, either vars {http.auth.user.id} Bob Alice ``` +A complete example using the [`vars` directive](https://caddyserver.com/docs/caddyfile/directives/vars) to set a variable, and then matching on it with the [`vars` matcher](https://caddyserver.com/docs/caddyfile/matchers#vars). Here we combine two request headers into one variable, and match on that variable: + +``` +example.com { + vars combined_header "{header.Foo}_{header.Bar}" + @special vars {vars.combined_header} "123_456" + handle @special { + respond "You sent Foo=123 and Bar=456!" + } + handle { + respond "Foo and Bar were not special." + } +} +``` + * * * -### vars\_regexp[🔗](https://caddyserver.com/docs/caddyfile/matchers#vars-regexp "Direct link") +### vars_regexp[🔗](https://caddyserver.com/docs/caddyfile/matchers#vars-regexp "Direct link") ``` vars_regexp [] @@ -840,11 +859,11 @@ As of v2.8.0, if `name` is _not_ provided, the name will be taken from the named Capture groups can be accessed via [placeholder](https://caddyserver.com/docs/caddyfile/concepts#placeholders) in directives after matching: * `{re..}` where: - + * `` is the name of the regular expression, * `` is either the name or number of the capture group in the expression. + * `{re.}` without a name, is also populated for convenience. The caveat is that if multiple regexp matchers are used in sequence, then the placeholder values will be overwritten by the next matcher. - Capture group `0` is the full regexp match, `1` is the first capture group, `2` is the second capture group, and so on. So `{re.foo.1}` or `{re.1}` will both hold the value of the first capture group. diff --git a/docs/caddy/docs/docs/caddyfile/options.md b/docs/caddy/caddyfile/options.md similarity index 81% rename from docs/caddy/docs/docs/caddyfile/options.md rename to docs/caddy/caddyfile/options.md index 148fb23..849603c 100644 --- a/docs/caddy/docs/docs/caddyfile/options.md +++ b/docs/caddy/caddyfile/options.md @@ -43,6 +43,9 @@ Possible options are (click on each option to jump to its documentation): } grace_period shutdown_delay + metrics { + per_host + } # TLS Options auto_https off|disable_redirects|ignore_loaded_certs|disable_certs @@ -58,6 +61,10 @@ Possible options are (click on each option to jump to its documentation): mac_key } acme_dns ... + dns ... + ech { + dns ... + } on_demand_tls { ask permission @@ -88,7 +95,6 @@ Possible options are (click on each option to jump to its documentation): keepalive_interval trusted_proxies ... client_ip_headers - metrics trace max_header_size enable_full_duplex @@ -221,18 +227,17 @@ Remember to use the `--address` CLI flag with compatible [commands](https://cadd Also supports these sub-options: * **origins** configures the list of origins that are allowed to connect to the endpoint. - - A default is intelligently chosen: - + +A default is intelligently chosen: + * if the listen address is loopback (e.g. `localhost` or a loopback IP, or a unix socket) then the allowed origins are `localhost`, `::1` and `127.0.0.1`, joined with the listen address port (so `localhost:2019` is a valid origin). * if the listen address is not loopback, then the allowed origin is the same as the listen address. - - If the listen address host is not a wildcard interface (wildcards include: empty string, or `0.0.0.0`, or `[::]`), then `Host` header enforcement is performed. Effectively, this means that by default, the `Host` header is validated to be in `origins`, since the interface is `localhost`. But for an address like `:2020` which has a wildcard interface, `Host` header validation is not performed. - -* **enforce\_origin** enables enforcement of the `Origin` request header. - - This is most useful when the listen address is a wildcard interface (since `Host` is not validated), and the admin API is exposed to the public internet. It enables CORS preflight checks and ensures that the `Origin` header is validated against the `origins` list. Only use this if you're running Caddy on your development machine and need to access the admin API from a web browser. - + +If the listen address host is not a wildcard interface (wildcards include: empty string, or `0.0.0.0`, or `[::]`), then `Host` header enforcement is performed. Effectively, this means that by default, the `Host` header is validated to be in `origins`, since the interface is `localhost`. But for an address like `:2020` which has a wildcard interface, `Host` header validation is not performed. + +* **enforce_origin** enables enforcement of the `Origin` request header. + +This is most useful when the listen address is a wildcard interface (since `Host` is not validated), and the admin API is exposed to the public internet. It enables CORS preflight checks and ensures that the `Origin` header is validated against the `origins` list. Only use this if you're running Caddy on your development machine and need to access the admin API from a web browser. For example, to expose the admin API on a different port, on all interfaces — ⚠️ this port **should not be exposed publicly**, otherwise anyone can control your server; consider enabling origin enforcement if you need it to be public: @@ -287,34 +292,33 @@ The name can be passed to indicate a specific logger for which to customize the Multiple loggers with different names can be configured by using the `log` multiple times. -The differs from the [`log` directive](https://caddyserver.com/docs/caddyfile/directives/log), which only configures HTTP request logging (also known as access logs). The `log` global option shares its configuration structure with the directive (except for `include` and `exclude`), and complete documentation can be found on the directive's page. +This differs from the [`log` directive](https://caddyserver.com/docs/caddyfile/directives/log), which only configures HTTP request logging (also known as access logs). The `log` global option shares its configuration structure with the directive (except for `include` and `exclude`), and complete documentation can be found on the directive's page. * **output** configures where to write the logs. - - See the [`log` directive](https://caddyserver.com/docs/caddyfile/directives/log#output-modules) for complete documentation. - + +See the [`log` directive](https://caddyserver.com/docs/caddyfile/directives/log#output-modules) for complete documentation. + * **format** describes how to encode, or format, the logs. - - See the [`log` directive](https://caddyserver.com/docs/caddyfile/directives/log#format-modules) for complete documentation. - + +See the [`log` directive](https://caddyserver.com/docs/caddyfile/directives/log#format-modules) for complete documentation. + * **level** is the minimum entry level to log. - - Default: `INFO`. - - Possible values: `DEBUG`, `INFO`, `WARN`, `ERROR`, and very rarely, `PANIC`, `FATAL`. - + +Default: `INFO`. + +Possible values: `DEBUG`, `INFO`, `WARN`, `ERROR`, and very rarely, `PANIC`, `FATAL`. + * **include** specifies the log names to be included in this logger. - - By default, this list is empty (i.e. all logs are included). - - For example, to include only logs emitted by the admin API, you would include `admin.api`. - + +By default, this list is empty (i.e. all logs are included). + +For example, to include only logs emitted by the admin API, you would include `admin.api`. + * **exclude** specifies the log names to be excluded from this logger. - - By default, this list is empty (i.e. no logs are excluded). - - For example, to exclude only HTTP access logs, you would exclude `http.log.access`. - + +By default, this list is empty (i.e. no logs are excluded). + +For example, to exclude only HTTP access logs, you would exclude `http.log.access`. The logger names that `include` and `exclude` accept depend on the modules used, and easiest way to discover them is from prior logs. @@ -346,7 +350,7 @@ By default, the grace period is eternal, which means connections are never force ##### `shutdown_delay`[🔗](https://caddyserver.com/docs/caddyfile/options#shutdown-delay "Direct link") -Defines a [duration](https://caddyserver.com/docs/conventions#durations) _before_ the [grace period](https://caddyserver.com/docs/caddyfile/options#grace_period) during which a server that is going to be stopped continues to operate normally, except the `{http.shutting_down}` placeholder evaluates to `true` and `{http.time_until_shutdown}` gives the time until the grace period begins. +Defines a [duration](https://caddyserver.com/docs/conventions#durations)_before_ the [grace period](https://caddyserver.com/docs/caddyfile/options#grace_period) during which a server that is going to be stopped continues to operate normally, except the `{http.shutting_down}` placeholder evaluates to `true` and `{http.time_until_shutdown}` gives the time until the grace period begins. This causes a delay if any server is being shut down as part of a config change, and effectively schedules the change for a later time. It is useful for announcing to health checkers of this server's impending doom and to give time for a load balancer to move it out of the rotation; for example: @@ -377,13 +381,12 @@ Configures [Automatic HTTPS](https://caddyserver.com/docs/automatic-https), whic There are a few modes to choose from: * `off`: Disables both certificate automation and HTTP-to-HTTPS redirects. - + * `disable_redirects`: Disable only HTTP-to-HTTPS redirects. - + * `disable_certs`: Disable only certificate automation. - + * `ignore_loaded_certs`: Automate certificates even for names which appear on manually-loaded certificates. Useful if you specified a certificate using the [`tls` directive](https://caddyserver.com/docs/caddyfile/directives/tls) which contains names (or wildcards) that you instead want to be managed automatically. - ``` { @@ -447,7 +450,7 @@ Skips the attempts to install the local CA's root into the system trust store, a ##### `acme_ca`[🔗](https://caddyserver.com/docs/caddyfile/options#acme-ca "Direct link") -Specifies the URL to the ACME CA's directory. It is strongly recommended to set this to Let's Encrypt's [staging endpoint ![Image 14](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/staging-environment/) for testing or development. Default: ZeroSSL and Let's Encrypt's production endpoints. +Specifies the URL to the ACME CA's directory. It is strongly recommended to set this to Let's Encrypt's [staging endpoint ![Image 1](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/staging-environment/) for testing or development. Default: ZeroSSL and Let's Encrypt's production endpoints. Note that a globally-configured ACME CA may not apply to all sites; see the [hostname requirements](https://caddyserver.com/docs/automatic-https#hostname-requirements) for using the default ACME issuer(s). @@ -496,21 +499,62 @@ The tokens following the name of the provider set up the provider the same as if } ``` +##### `dns`[🔗](https://caddyserver.com/docs/caddyfile/options#dns "Direct link") + +Configures a default DNS provider to use when none other is specified locally in a relevant context. For example, if the ACME DNS challenge is enabled but does not have a DNS provider configured, this global default will be used. It is also applied for publishing Encrypted ClientHello (ECH) configs. + +Your Caddy binary must be compiled with the specified DNS provider module for this to work. + +Example, using credentials from an environment variable: + +``` +{ + dns cloudflare {env.CLOUDFLARE_API_TOKEN} +} +``` + +(Requires Caddy 2.10 beta 1 or newer.) + +##### `ech`[🔗](https://caddyserver.com/docs/caddyfile/options#ech "Direct link") + +Enables Encrypted ClientHello (ECH) by using the specified public domain name(s) as the plaintext server name (SNI) in TLS handshakes. Given the right conditions, ECH can help protect the domain names of your sites on the wire during connections. Caddy will generate and publish one ECH config for each public name specified. Publication is how compatible clients (such as properly-configured modern browsers) know to use ECH to access your sites. + +In order to work properly, the ECH config(s) must be published in a way that clients expect. Most browsers (with DNS-over-HTTPS or DNS-over-TLS enabled) expect ECH configs to be published to HTTPS-type DNS records. Caddy does this kind of publication automatically, but you have to specify a DNS provider either with the `dns` sub-option, or globally with the [`dns` global option](https://caddyserver.com/docs/caddyfile/options#dns), and your Caddy binary must be built with the specified DNS provider module. (Custom builds are available on our [download page](https://caddyserver.com/download).) + +**Privacy notices:** + +* It is generally advisable to **maximize the size of your [_anonymity set_](https://www.ietf.org/archive/id/draft-ietf-tls-esni-23.html#name-introduction)**. As such, we typically recommend that most users configure _only one_ public domain name to protect all your sites. +* **Your server should be authoritative for the public domain name(s) you specify** (i.e. they should point to your server) because Caddy will obtain a certificate for them. These certificates are vital to help spec-conforming clients connect reliably and safely with ECH in some cases. They are only used to faciliate a proper ECH handshake, not used for application data (your sites -- unless you define a site that is the same as your public domain name). +* Every circumstance may be different. We recommend consulting experts to **review your threat model** if the stakes are high, as ECH is not a one-size-fits-all solution. + +Example using credentials from an environment variable for publication to nameservers parked at Cloudflare: + +``` +{ + dns cloudflare {env.CLOUDFLARE_API_TOKEN} + ech ech.example.net +} +``` + +This should cause compatible clients to load all your sites with `ech.example.net`, rather than the individual site names exposed in plaintext. + +Successful publication requires that your site's domains are parked at the configured DNS provider and the records can be modified with the given credentials / provider configuration. + +(Requires Caddy 2.10 beta 1 or newer.) + ##### `on_demand_tls`[🔗](https://caddyserver.com/docs/caddyfile/options#on-demand-tls "Direct link") Configures [On-Demand TLS](https://caddyserver.com/docs/automatic-https#on-demand-tls) where it is enabled, but does not enable it (to enable it, use the [`on_demand` subdirective of the `tls` directive](https://caddyserver.com/docs/caddyfile/directives/tls#syntax)). Required for use in production environments, to prevent abuse. * **ask** will cause Caddy to make an HTTP request to the given URL, asking whether a domain is allowed to have a certificate issued. - - The request has a query string of `?domain=` containing the value of the domain name. - - If the endpoint returns a `2xx` status code, Caddy will be authorized to obtain a certificate for that name. Any other status code will result in cancelling issuance of the certificate and erroring the TLS handshake. - + +The request has a query string of `?domain=` containing the value of the domain name. + +If the endpoint returns a `2xx` status code, Caddy will be authorized to obtain a certificate for that name. Any other status code will result in cancelling issuance of the certificate and erroring the TLS handshake. * **permission** allows custom modules to be used to determine whether a certificate should be issued for a particular name. The module must implement the [`caddytls.OnDemandPermission` interface](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#OnDemandPermission). An `http` permission module is included, which is what the `ask` option uses, and remains as a shortcut for backwards compatibility. - + * ⚠️ **interval** and **burst** rate limiting options were available, but are NOT recommended. Remove them from your config if you still have them. - ``` { @@ -587,7 +631,7 @@ Default: `0` (CA chooses lifetime, usually 90 days) ##### `ocsp_interval`[🔗](https://caddyserver.com/docs/caddyfile/options#ocsp-interval "Direct link") -How often to check if [OCSP staples ![Image 15](https://caddyserver.com/old/resources/images/external-link.svg)](https://en.wikipedia.org/wiki/OCSP_stapling) need updating. +How often to check if [OCSP staples ![Image 2](https://caddyserver.com/old/resources/images/external-link.svg)](https://en.wikipedia.org/wiki/OCSP_stapling) need updating. Default: `1h` @@ -612,11 +656,10 @@ Can be set to `off` to disable OCSP stapling. Useful in environments where respo If your CA provides multiple certificate chains, you can use this option to specify which chain Caddy should prefer. Set one of the following options: * **smallest** will tell Caddy to prefer chains with the fewest amount of bytes. - -* **root\_common\_name** is a list of one or more common names; Caddy will choose the first chain that has a root that matches with at least one of the specified common names. - -* **any\_common\_name** is a list of one or more common names; Caddy will choose the first chain that has an issuer that matches with at least one of the specified common names. - + +* **root_common_name** is a list of one or more common names; Caddy will choose the first chain that has a root that matches with at least one of the specified common names. + +* **any_common_name** is a list of one or more common names; Caddy will choose the first chain that has an issuer that matches with at least one of the specified common names. Note that specifying `preferred_chains` as a global option will affect all issuers if there isn't any [overriding issuer level config](https://caddyserver.com/docs/caddyfile/directives/tls#acme). @@ -658,7 +701,7 @@ For example, to configure different options for the servers on ports `:80` and ` } ``` -When using `servers`, it will **only** apply to servers that **actually appear** in your Caddyfile (i.e. are produced by a site block). Remember, [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) will create a server listening on port `80` (or the [`http_port` option](https://caddyserver.com/docs/caddyfile/options#http_port)), to serve HTTP-\>HTTPS redirects and to solve the ACME HTTP challenge; this happens at runtime, i.e. _after_ the Caddyfile adapter applies `servers`. So in other words, this means that `servers` **will not** apply to `:80` unless you explicitly declare a site block like `http://` or `:80`. +When using `servers`, it will **only** apply to servers that **actually appear** in your Caddyfile (i.e. are produced by a site block). Remember, [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) will create a server listening on port `80` (or the [`http_port` option](https://caddyserver.com/docs/caddyfile/options#http_port)), to serve HTTP->HTTPS redirects and to solve the ACME HTTP challenge; this happens at runtime, i.e. _after_ the Caddyfile adapter applies `servers`. So in other words, this means that `servers`**will not** apply to `:80` unless you explicitly declare a site block like `http://` or `:80`. ##### `name`[🔗](https://caddyserver.com/docs/caddyfile/options#name "Direct link") @@ -696,7 +739,7 @@ The `tls` listener wrapper is a no-op listener wrapper that marks where the TLS ###### `http_redirect`[🔗](https://caddyserver.com/docs/caddyfile/options#http-redirect "Direct link") -The [`http_redirect`](https://caddyserver.com/docs/json/apps/http/servers/listener_wrappers/http_redirect/) provides HTTP-\>HTTPS redirects for connections that come on the TLS port as an HTTP request, by detecting using the first few bytes that it's not a TLS handshake, but instead an HTTP request. This is most useful when serving HTTPS on a non-standard port (other than `443`), since browsers will try HTTP unless the scheme is specified. It must be placed _before_ the `tls` listener wrapper. Here's an example: +The [`http_redirect`](https://caddyserver.com/docs/json/apps/http/servers/listener_wrappers/http_redirect/) provides HTTP->HTTPS redirects for connections that come on the TLS port as an HTTP request, by detecting using the first few bytes that it's not a TLS handshake, but instead an HTTP request. This is most useful when serving HTTPS on a non-standard port (other than `443`), since browsers will try HTTP unless the scheme is specified. It must be placed _before_ the `tls` listener wrapper. Here's an example: ``` { @@ -723,13 +766,13 @@ proxy_protocol { ``` * **timeout** specifies the maximum duration to wait for the PROXY header. Defaults to `5s`. - + * **allow** is a list of CIDR ranges of trusted sources to receive PROXY headers. Unix sockets are trusted by default and not part of this option. - + * **deny** is a list of CIDR ranges of trusted sources to reject PROXY headers from. - -* **fallback\_policy** is the action to take if the PROXY header comes from an address that not in either list of allow/deny. The default fallback policy is `ignore`. Accepted values of `fallback_policy` are: - + +* **fallback_policy** is the action to take if the PROXY header comes from an address that not in either list of allow/deny. The default fallback policy is `ignore`. Accepted values of `fallback_policy` are: + * `ignore`: address from PROXY header, but accept connection * `use`: address from PROXY header * `reject`: connection when PROXY header is sent @@ -756,14 +799,13 @@ For example, for an HTTPS server (needing the `tls` listener wrapper) that accep ##### `timeouts`[🔗](https://caddyserver.com/docs/caddyfile/options#timeouts "Direct link") -* **read\_body** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to allow a read from a client's upload. Setting this to a short, non-zero value can mitigate slowloris attacks, but may also affect legitimately slow clients. Defaults to no timeout. - -* **read\_header** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to allow a read from a client's request headers. Defaults to no timeout. - +* **read_body** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to allow a read from a client's upload. Setting this to a short, non-zero value can mitigate slowloris attacks, but may also affect legitimately slow clients. Defaults to no timeout. + +* **read_header** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to allow a read from a client's request headers. Defaults to no timeout. + * **write** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to allow a write to a client. Note that setting this to a small value when serving large files may negatively affect legitimately slow clients. Defaults to no timeout. - + * **idle** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets the maximum time to wait for the next request when keep-alives are enabled. Defaults to 5 minutes to help avoid resource exhaustion. - ``` { @@ -794,11 +836,11 @@ The interval at which TCP keepalive packets are sent to keep the connection aliv Allows configuring IP ranges (CIDRs) of proxy servers from which requests should be trusted. By default, no proxies are trusted. -Enabling this causes trusted requests to have the _real_ client IP parsed from HTTP headers (by default, `X-Forwarded-For`; see [`client_ip_headers`](https://caddyserver.com/docs/caddyfile/options#client-ip-headers) to configure other headers). If trusted, the client IP is added to [access logs](https://caddyserver.com/docs/caddyfile/directives/log), is available as a `{client_ip}` [placeholder](https://caddyserver.com/docs/caddyfile/concepts#placeholders), and allows the use of the [`client_ip` matcher](https://caddyserver.com/docs/caddyfile/matchers#client-ip). If the request is not from a trusted proxy, then the client IP is set to the remote IP address of the direct incoming connection. By default, the IPs in headers are parsed left-to-right. See [`trusted_proxies_strict`](https://caddyserver.com/docs/caddyfile/options#trusted-proxies-strict) to alter this behaviour. +Enabling this causes trusted requests to have the _real_ client IP parsed from HTTP headers (by default, `X-Forwarded-For`; see [`client_ip_headers`](https://caddyserver.com/docs/caddyfile/options#client-ip-headers) to configure other headers). If trusted, the client IP is added to [access logs](https://caddyserver.com/docs/caddyfile/directives/log), is available as a `{client_ip}`[placeholder](https://caddyserver.com/docs/caddyfile/concepts#placeholders), and allows the use of the [`client_ip` matcher](https://caddyserver.com/docs/caddyfile/matchers#client-ip). If the request is not from a trusted proxy, then the client IP is set to the remote IP address of the direct incoming connection. By default, the IPs in headers are parsed left-to-right. See [`trusted_proxies_strict`](https://caddyserver.com/docs/caddyfile/options#trusted-proxies-strict) to alter this behaviour. Some matchers or handlers may use the trust status of the request to make decisions. For example, if trusted, the [`reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#defaults) handler will proxy and augment the sensitive `X-Forwarded-*` request headers. -Currently, only the `static` [IP source module](https://caddyserver.com/docs/json/apps/http/servers/trusted_proxies/) is included with the standard distribution of Caddy, but this can be [extended](https://caddyserver.com/docs/extending-caddy) with plugins to maintain a dynamic list of IP ranges. +Currently, only the `static`[IP source module](https://caddyserver.com/docs/json/apps/http/servers/trusted_proxies/) is included with the standard distribution of Caddy, but this can be [extended](https://caddyserver.com/docs/extending-caddy) with plugins to maintain a dynamic list of IP ranges. ###### `static`[🔗](https://caddyserver.com/docs/caddyfile/options#static "Direct link") @@ -854,8 +896,16 @@ Enables Prometheus metrics collection; necessary before scraping metrics. Note t ``` { - servers { - metrics + metrics +} +``` + +You can add the `per_host` option to label metrics with the host name of the metric. + +``` +{ + metrics { + per_host } } ``` @@ -1113,7 +1163,7 @@ Events typically include a metadata payload. The best way to learn about events Binds an event handler to the named event. Specify the name of the event handler module, followed by its configuration. -For example, to run a command after a certificate is obtained ([third-party plugin ![Image 16](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/mholt/caddy-events-exec) required), with a part of the event payload being passed to the script using a placeholder: +For example, to run a command after a certificate is obtained ([third-party plugin ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/mholt/caddy-events-exec) required), with a part of the event payload being passed to the script using a placeholder: ``` { @@ -1127,7 +1177,7 @@ For example, to run a command after a certificate is obtained ([third-party plug These standard events are emitted by Caddy: -* [`tls` events ![Image 17](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddyserver/certmagic#events) +* [`tls` events ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddyserver/certmagic#events) * [`reverse_proxy` events](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#events) Plugins may also emit events, so check their documentation for details. diff --git a/docs/caddy/docs/docs/caddyfile/patterns.md b/docs/caddy/caddyfile/patterns.md similarity index 98% rename from docs/caddy/docs/docs/caddyfile/patterns.md rename to docs/caddy/caddyfile/patterns.md index ac1b4b6..053ecf8 100644 --- a/docs/caddy/docs/docs/caddyfile/patterns.md +++ b/docs/caddy/caddyfile/patterns.md @@ -63,7 +63,7 @@ With a PHP FastCGI service running, something like this works for most modern PH ``` example.com { root * /srv/public - encode gzip + encode php_fastcgi localhost:9000 file_server } @@ -121,7 +121,7 @@ example.com { } ``` -To remove it for **multiple domains** at once; this uses the `{labels.*}` placeholders which are the parts of the hostname, `0`\-indexed from the right (e.g. `0`\=`com`, `1`\=`example-one`, `2`\=`www`): +To remove it for **multiple domains** at once; this uses the `{labels.*}` placeholders which are the parts of the hostname, `0`-indexed from the right (e.g. `0`=`com`, `1`=`example-one`, `2`=`www`): ``` www.example-one.com, www.example-two.com { @@ -207,7 +207,7 @@ A typical SPA config usually looks something like this: ``` example.com { root * /srv - encode gzip + encode try_files {path} /index.html file_server } @@ -217,7 +217,7 @@ If your SPA is coupled with an API or other server-side-only endpoints, you will ``` example.com { - encode gzip + encode handle /api/* { reverse_proxy backend:8000 @@ -272,11 +272,11 @@ http://bar.example.com { ``` * This example serves two different domains, proxying both to the same back Caddy instance, on port `80`. Your back instance is serving the two domains different ways, so it's configured with two separate site blocks. - + * On the back, [`http://`](https://caddyserver.com/docs/caddyfile/concepts#addresses) is used to accept HTTP on port `80`. The front instance terminates TLS, and the traffic between front and back are on a private network, so there's no need to re-encrypt it. - + * You may use a different port like `8080` on the back instance if you need to; just append `:8080` to each site address on the back's config, OR set the [`http_port` global option](https://caddyserver.com/docs/caddyfile/options#http_port) to `8080`. - + * On the back, the [`trusted_proxies` global option](https://caddyserver.com/docs/caddyfile/options#trusted_proxies) is used to tell Caddy to trust the front instance as a proxy. This ensures the real client IP is preserved. - + * Going further, you could have more than one back instance that you [load balance](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#load-balancing) between. You could set up mTLS (mutual TLS) using the [`acme_server`](https://caddyserver.com/docs/caddyfile/directives/acme_server) on the front instance such that it acts like the CA for the back instance (useful if the traffic between front and back cross untrusted networks). diff --git a/docs/caddy/docs/docs/caddyfile/response-matchers.md b/docs/caddy/caddyfile/response-matchers.md similarity index 69% rename from docs/caddy/docs/docs/caddyfile/response-matchers.md rename to docs/caddy/caddyfile/response-matchers.md index e7f3582..981efd5 100644 --- a/docs/caddy/docs/docs/caddyfile/response-matchers.md +++ b/docs/caddy/caddyfile/response-matchers.md @@ -15,6 +15,13 @@ These typically only appear as config inside of certain other directives, to mak Syntax[🔗](https://caddyserver.com/docs/caddyfile/response-matchers#syntax "Direct link") ----------------------------------------------------------------------------------------- +If a directive accepts response matchers, the usage is represented as either `[]` or `[]` in the syntax documentation. + +* The **** token can be the name of a previously declared named response matcher. For example: `@name`. +* The **** token can be the response criteria itself, without requiring prior declaration. For example: `status 200`. + +### Named[🔗](https://caddyserver.com/docs/caddyfile/response-matchers#named "Direct link") + ``` @name { status @@ -22,6 +29,29 @@ Syntax[🔗](https://caddyserver.com/docs/caddyfile/response-matchers#syntax "Di } ``` +If only one aspect of the response is relevant to the directive, you can put the name and the criteria on the same line: + +``` +@name status +``` + +### Inline[🔗](https://caddyserver.com/docs/caddyfile/response-matchers#inline "Direct link") + +``` +... { + status + header [] +} +``` + +``` +... status +``` + +``` +... header [] +``` + Matchers[🔗](https://caddyserver.com/docs/caddyfile/response-matchers#matchers "Direct link") --------------------------------------------------------------------------------------------- @@ -33,7 +63,7 @@ status By HTTP status code. -* **** is a list of HTTP status codes. Special cases are strings like `2xx` and `3xx`, which match against all status codes in the range of `200`\-`299` and `300`\-`399`, respectively. +* **** is a list of HTTP status codes. Special cases are strings like `2xx` and `3xx`, which match against all status codes in the range of `200`-`299` and `300`-`399`, respectively. #### Example:[🔗](https://caddyserver.com/docs/caddyfile/response-matchers#example "Direct link") @@ -47,9 +77,10 @@ header [] By response header fields. -* `` is the name of the HTTP header field to check. +* `` is the name of the HTTP header field to check. * If prefixed with `!`, the field must not exist to match (omit value arg). -* `` is the value the field must have to match. + +* `` is the value the field must have to match. * If prefixed with `*`, it performs a fast suffix match (appears at the end). * If suffixed with `*`, it performs a fast prefix match (appears at the start). * If enclosed by `*`, it performs a fast substring match (appears anywhere). diff --git a/docs/caddy/docs/docs/command-line.md b/docs/caddy/command-line.md similarity index 87% rename from docs/caddy/docs/docs/command-line.md rename to docs/caddy/command-line.md index 2b7667d..379e202 100644 --- a/docs/caddy/docs/docs/command-line.md +++ b/docs/caddy/command-line.md @@ -22,66 +22,65 @@ The `--flags` may have a single-letter shortcut like `-f`. * * * * **[caddy adapt](https://caddyserver.com/docs/command-line#caddy-adapt)** Adapts a config document to native JSON - + * **[caddy build-info](https://caddyserver.com/docs/command-line#caddy-build-info)** Prints build information - + * **[caddy completion](https://caddyserver.com/docs/command-line#caddy-completion)** Generate shell completion script - + * **[caddy environ](https://caddyserver.com/docs/command-line#caddy-environ)** Prints the environment - + * **[caddy file-server](https://caddyserver.com/docs/command-line#caddy-file-server)** A simple but production-ready file server - -* **[caddy file-server export-template](https://caddyserver.com/docs/command-line#caddy-file-server-export-template)** Auxilary command for the file server to export the default file browser template - + +* **[caddy file-server export-template](https://caddyserver.com/docs/command-line#caddy-file-server-export-template)** Auxiliary command for the file server to export the default file browser template + * **[caddy fmt](https://caddyserver.com/docs/command-line#caddy-fmt)** Formats a Caddyfile - + * **[caddy hash-password](https://caddyserver.com/docs/command-line#caddy-hash-password)** Hashes a password and outputs base64 - + * **[caddy help](https://caddyserver.com/docs/command-line#caddy-help)** View help for caddy commands - + * **[caddy list-modules](https://caddyserver.com/docs/command-line#caddy-list-modules)** Lists the installed Caddy modules - + * **[caddy manpage](https://caddyserver.com/docs/command-line#caddy-manpage)** Generate manpages - + * **[caddy reload](https://caddyserver.com/docs/command-line#caddy-reload)** Changes the config of the running Caddy process - + * **[caddy respond](https://caddyserver.com/docs/command-line#caddy-respond)** A quick-and-clean, hard-coded HTTP server for development and testing - + * **[caddy reverse-proxy](https://caddyserver.com/docs/command-line#caddy-reverse-proxy)** A simple but production-ready HTTP(S) reverse proxy - + * **[caddy run](https://caddyserver.com/docs/command-line#caddy-run)** Starts the Caddy process in the foreground - + * **[caddy start](https://caddyserver.com/docs/command-line#caddy-start)** Starts the Caddy process in the background - + * **[caddy stop](https://caddyserver.com/docs/command-line#caddy-stop)** Stops the running Caddy process - + * **[caddy storage export](https://caddyserver.com/docs/command-line#caddy-storage)** Exports the contents of the configured storage to a tarball - + * **[caddy storage import](https://caddyserver.com/docs/command-line#caddy-storage)** Imports a previously exported tarball to the configured storage - + * **[caddy trust](https://caddyserver.com/docs/command-line#caddy-trust)** Installs a certificate into local trust store(s) - + * **[caddy untrust](https://caddyserver.com/docs/command-line#caddy-untrust)** Untrusts a certificate from local trust store(s) - + * **[caddy upgrade](https://caddyserver.com/docs/command-line#caddy-upgrade)** Upgrades Caddy to the latest release - + * **[caddy add-package](https://caddyserver.com/docs/command-line#caddy-add-package)** Upgrades Caddy to the latest release, with additional plugins added - + * **[caddy remove-package](https://caddyserver.com/docs/command-line#caddy-remove-package)** Upgrades Caddy to the latest release, with some plugins removed - + * **[caddy validate](https://caddyserver.com/docs/command-line#caddy-validate)** Tests whether a config file is valid - + * **[caddy version](https://caddyserver.com/docs/command-line#caddy-version)** Prints the version - + * **[Signals](https://caddyserver.com/docs/command-line#signals)** How Caddy handles signals - + * **[Exit codes](https://caddyserver.com/docs/command-line#exit-codes)** Emitted when the Caddy process exits - -Subcommands ------------ +Subcommands[🔗](https://caddyserver.com/docs/command-line#subcommands "Direct link") +------------------------------------------------------------------------------------ -### `caddy adapt` +### `caddy adapt`[🔗](https://caddyserver.com/docs/command-line#caddy-adapt "Direct link") ``` caddy adapt @@ -111,10 +110,7 @@ tls cert_notexist.pem key_notexist.pem Try adapting it: -``` -caddy adapt --config Caddyfile -``` - +`caddy adapt --config Caddyfile` It succeeds without error. Then try: ``` @@ -124,41 +120,29 @@ adapt: validation: loading app modules: module name 'tls': provision tls: loadin Even though that Caddyfile can be adapted to JSON without errors, the actual certificate and/or key files do not exist, so validation fails because that error arises during the provisioning phase. Thus, validation is a stronger error check than adaptation is. -#### Example +#### Example[🔗](https://caddyserver.com/docs/command-line#example "Direct link") To adapt a Caddyfile to JSON that you can easily read and tweak manually: -``` -caddy adapt --config /path/to/Caddyfile --pretty -``` - -### `caddy build-info` - -``` -caddy build-info -``` +`caddy adapt --config /path/to/Caddyfile --pretty` +### `caddy build-info`[🔗](https://caddyserver.com/docs/command-line#caddy-build-info "Direct link") +`caddy build-info` Prints information provided by Go about the build (main module path, package versions, module replacements). -### `caddy completion` - -``` -caddy completion [bash|zsh|fish|powershell] -``` +### `caddy completion`[🔗](https://caddyserver.com/docs/command-line#caddy-completion "Direct link") +`caddy completion [bash|zsh|fish|powershell]` Generates shell completion scripts. This allows you to get tab-complete or auto-complete (or similar, depending on your shell) when typing `caddy` commands. To get instructions for installing this script into your specific shell, run `caddy help completion` or `caddy completion -h`. -### `caddy environ` - -``` -caddy environ -``` +### `caddy environ`[🔗](https://caddyserver.com/docs/command-line#caddy-environ "Direct link") +`caddy environ` Prints the environment as seen by caddy, then exits. Can be useful when debugging init systems or process manager units like systemd. -### `caddy file-server` +### `caddy file-server`[🔗](https://caddyserver.com/docs/command-line#caddy-file-server "Direct link") ``` caddy file-server @@ -194,19 +178,16 @@ Spins up a simple but production-ready static file server. `--no-compress` disables compression. By default, Zstandard and Gzip compression are enabled. -`--precompressed` specifies encoding formats to search for precompressed sidecar files. Can be repeated for multiple formats. See the [file\_server directive](https://caddyserver.com/docs/caddyfile/directives/file_server#precompressed) for more information. +`--precompressed` specifies encoding formats to search for precompressed sidecar files. Can be repeated for multiple formats. See the [file_server directive](https://caddyserver.com/docs/caddyfile/directives/file_server#precompressed) for more information. This command disables the admin API, making it easier to run multiple instances on a local development machine. -#### `caddy file-server export-template` - -``` -caddy file-server export-template -``` +#### `caddy file-server export-template`[🔗](https://caddyserver.com/docs/command-line#caddy-file-server-export-template "Direct link") +`caddy file-server export-template` Exports the default file browsing template to stdout -### `caddy fmt` +### `caddy fmt`[🔗](https://caddyserver.com/docs/command-line#caddy-fmt "Direct link") ``` caddy fmt [] @@ -222,7 +203,7 @@ Formats or prettifies a Caddyfile, then exits. The result is printed to stdout u `--diff` causes the output to be compared against the input, and lines will be prefixed with `-` and `+` where they differ. Note that unchanges lines are prefixed with two spaces for alignment, and that this is not a valid patch format; it's just meant as a visual tool. -### `caddy hash-password` +### `caddy hash-password`[🔗](https://caddyserver.com/docs/command-line#caddy-hash-password "Direct link") ``` caddy hash-password @@ -236,15 +217,12 @@ Convenient way to hash a plaintext password. The resulting hash is written to st `--algorithm` may be `bcrypt` or any installed hash algorithm. Default is `bcrypt`. -### `caddy help` - -``` -caddy help [] -``` +### `caddy help`[🔗](https://caddyserver.com/docs/command-line#caddy-help "Direct link") +`caddy help []` Prints CLI help text, optionally for a specific subcommand, then exits. -### `caddy list-modules` +### `caddy list-modules`[🔗](https://caddyserver.com/docs/command-line#caddy-list-modules "Direct link") ``` caddy list-modules @@ -259,7 +237,7 @@ In some scripted situations, it may be redundant to print all of the standard mo NOTE: Due to [a bug in Go](https://github.com/golang/go/issues/29228), version information is only available if Caddy is built as a dependency and not as the main module. Use [xcaddy](https://caddyserver.com/docs/build#xcaddy) to make this easier. -### `caddy manpage` +### `caddy manpage`[🔗](https://caddyserver.com/docs/command-line#caddy-manpage "Direct link") ``` caddy manpage @@ -283,7 +261,7 @@ Then you can run `man caddy` (or `man caddy-*` for subcommands) to read document Manual pages are separate documentation from what is on our website. Our website has more comprehensive documentation that is updated often. -### `caddy reload` +### `caddy reload`[🔗](https://caddyserver.com/docs/command-line#caddy-reload "Direct link") ``` caddy reload @@ -301,11 +279,11 @@ Because this command uses the API, the admin endpoint must not be disabled. `--adapter` specifies a config adapter to use, if any. This flag is not necessary if the `--config` filename starts with `Caddyfile` or ends with `.caddyfile` which assumes the `caddyfile` adapter. Otherwise, this flag is required if the provided config file is not in Caddy's native JSON format. -`--address` needs to be used if the admin endpoint is not listening on the default address and if it is different from the address in the provided config file. Note that only TCP addresses are supported at this time. +`--address` needs to be used if the admin endpoint is not listening on the default address and if it is different from the address in the provided config file. `--force` will cause a reload to happen even if the specified config is the same as what Caddy is already running. Can be useful to force Caddy to reprovision its modules, which can have side-effects, for example: reloading manually-loaded TLS certificates. -### `caddy respond` +### `caddy respond`[🔗](https://caddyserver.com/docs/command-line#caddy-respond "Direct link") ``` caddy respond @@ -344,20 +322,14 @@ A body may be given in 3 ways: a flag, a final (and unnamed) argument to the com | `.Port` | Listener port | | `.Address` | Listener address | -#### Examples +#### Examples[🔗](https://caddyserver.com/docs/command-line#examples "Direct link") Empty 200 response on a random port: -``` -caddy respond -``` - +`caddy respond` HTTP response with a body: -``` -caddy respond "Hello, world!" -``` - +`caddy respond "Hello, world!"` Multiple servers and templates: ``` @@ -382,7 +354,7 @@ cat maintenance.html | caddy respond \ --header "Content-Type: text/html" ``` -### `caddy reverse-proxy` +### `caddy reverse-proxy`[🔗](https://caddyserver.com/docs/command-line#caddy-reverse-proxy "Direct link") ``` caddy reverse-proxy @@ -409,28 +381,26 @@ If the `--from` address has a host or IP, Caddy will attempt to serve the proxy If serving HTTPS: * `--disable-redirects` can be used to avoid binding to the HTTP port. - + * `--internal-certs` can be used to force issuance certs using the internal CA instead of attempting to issue a public certificate. - For proxying: * `--header-up` can be used to set a request header to send to the upstream. - + * `--header-down` can be used to set a response header to send back to the client. - + * `--change-host-header` sets the Host header on the request to the address of the upstream, instead of defaulting to the incoming Host header. - - This is a shortcut for `--header-up "Host: {http.reverse_proxy.upstream.hostport}"` - + +This is a shortcut for `--header-up "Host: {http.reverse_proxy.upstream.hostport}"` + * `--insecure` disables TLS verification with the upstream. WARNING: THIS DISABLES SECURITY BY NOT VERIFYING THE UPSTREAM'S CERTIFICATE. - + * `--debug` enables verbose logging. - This command disables the admin API so it is easier to run multiple instances on a local development machine. -### `caddy run` +### `caddy run`[🔗](https://caddyserver.com/docs/command-line#caddy-run "Direct link") ``` caddy run @@ -455,11 +425,11 @@ Runs Caddy and blocks indefinitely; i.e. "daemon" mode. `--envfile` loads environment variables from the specified file, in `KEY=VALUE` format. Comments starting with `#` are supported; keys may be prefixed with `export`; values may be double-quoted (double-quotes within can be escaped); multi-line values are supported. -`--resume` uses the last loaded configuration that was autosaved, overriding the `--config` flag (if present). Using this flag guarantees config durability through machine reboots or process restarts. It is most useful in [API](https://caddyserver.com/docs/api)\-centric deployments. +`--resume` uses the last loaded configuration that was autosaved, overriding the `--config` flag (if present). Using this flag guarantees config durability through machine reboots or process restarts. It is most useful in [API](https://caddyserver.com/docs/api)-centric deployments. `--watch` will watch the config file and automatically reload it after it changes. ⚠️ This feature is intended for use only in local development environments! -### `caddy start` +### `caddy start`[🔗](https://caddyserver.com/docs/command-line#caddy-start "Direct link") ``` caddy start @@ -478,7 +448,7 @@ Use of this command is discouraged with system services or on Windows. On Window Once started, you can use [`caddy stop`](https://caddyserver.com/docs/command-line#caddy-stop) or the [`POST /stop`](https://caddyserver.com/docs/api#post-stop) API endpoint to exit the background process. -### `caddy stop` +### `caddy stop`[🔗](https://caddyserver.com/docs/command-line#caddy-stop "Direct link") ``` caddy stop @@ -492,7 +462,7 @@ The address of this request can be customized using the `--address` flag, or fro If you want to stop the current configuration but do not want to exit the process, use [`caddy reload`](https://caddyserver.com/docs/command-line#caddy-reload) with a blank config, or the [`DELETE /config/`](https://caddyserver.com/docs/api#delete-configpath) endpoint. -### `caddy storage` +### `caddy storage`[🔗](https://caddyserver.com/docs/command-line#caddy-storage "Direct link") _⚠️ Experimental_ @@ -507,7 +477,7 @@ $ caddy storage export -c Caddyfile.old -o- | caddy storage import -c Caddyfile.new -i- ``` -#### `caddy storage export` +#### `caddy storage export`[🔗](https://caddyserver.com/docs/command-line#caddy-storage-export "Direct link") ``` caddy storage export @@ -519,7 +489,7 @@ caddy storage export `--output` is the filename to write the tarball. If `-`, the output is written to stdout. -#### `caddy storage import` +#### `caddy storage import`[🔗](https://caddyserver.com/docs/command-line#caddy-storage-import "Direct link") ``` caddy storage import @@ -531,7 +501,7 @@ caddy storage import `--input` is the filename of the tarball to read from. If `-`, the input is read from stdin. -### `caddy trust` +### `caddy trust`[🔗](https://caddyserver.com/docs/command-line#caddy-trust "Direct link") ``` caddy trust @@ -550,7 +520,7 @@ This command will attempt to connect to Caddy's [admin API](https://caddyserver. You may also use the `caddy` binary with this command to install certificates on other machines in your network, if the admin API is made accessible to other machines -- be careful if doing this, to not expose the admin API to untrusted clients. -### `caddy untrust` +### `caddy untrust`[🔗](https://caddyserver.com/docs/command-line#caddy-untrust "Direct link") ``` caddy untrust @@ -573,7 +543,7 @@ This command can be used in one of two ways: If the admin API is used, then the CA ID defaults to "local". You may specify the ID of another CA with the `--ca` flag. You may explicitly specify the `--address`, or use the `--config` flag to load the admin address from your config, if the running instance's admin API is not using the default listen address. -### `caddy upgrade` +### `caddy upgrade`[🔗](https://caddyserver.com/docs/command-line#caddy-upgrade "Direct link") _⚠️ Experimental_ @@ -590,7 +560,7 @@ The upgrade process is fault tolerant; the current binary is backed up first (co This command may require elevated privileges if your user does not have permission to write to the executable file. -### `caddy add-package` +### `caddy add-package`[🔗](https://caddyserver.com/docs/command-line#caddy-add-package "Direct link") _⚠️ Experimental_ @@ -603,11 +573,8 @@ Similarly to `caddy upgrade`, replaces the current Caddy binary with the latest For example: -``` -caddy add-package github.com/caddy-dns/cloudflare -``` - -### `caddy remove-package` +`caddy add-package github.com/caddy-dns/cloudflare` +### `caddy remove-package`[🔗](https://caddyserver.com/docs/command-line#caddy-remove-package "Direct link") _⚠️ Experimental_ @@ -618,7 +585,7 @@ caddy remove-package Similarly to `caddy upgrade`, replaces the current Caddy binary with the latest version with the same modules installed, but _without_ the packages listed as arguments, if they existed in the current binary. Run `caddy list-modules --packages` to see the list of package names of non-standard modules included in the current binary. -### `caddy validate` +### `caddy validate`[🔗](https://caddyserver.com/docs/command-line#caddy-validate "Direct link") ``` caddy validate @@ -635,16 +602,13 @@ Validates a configuration file, then exits. This command deserializes the config `--envfile` loads environment variables from the specified file, in `KEY=VALUE` format. Comments starting with `#` are supported; keys may be prefixed with `export`; values may be double-quoted (double-quotes within can be escaped); multi-line values are supported. -### `caddy version` - -``` -caddy version -``` +### `caddy version`[🔗](https://caddyserver.com/docs/command-line#caddy-version "Direct link") +`caddy version` Prints the version and exits. -Signals -------- +Signals[🔗](https://caddyserver.com/docs/command-line#signals "Direct link") +---------------------------------------------------------------------------- Caddy traps certain signals and ignores others. Signals can initiate specific process behavior. @@ -659,8 +623,8 @@ Caddy traps certain signals and ignores others. Signals can initiate specific pr A graceful exit means that new connections are no longer accepted, and existing connections will be drained before the socket is closed. A grace period may apply (and is configurable). Once the grace period is up, connections will be forcefully terminated. Locks in storage and other resources that individual modules need to release are cleaned up during a graceful shutdown. -Exit codes ----------- +Exit codes[🔗](https://caddyserver.com/docs/command-line#exit-codes "Direct link") +---------------------------------------------------------------------------------- Caddy returns a code when the process exits: diff --git a/docs/caddy/docs/docs/config-adapters.md b/docs/caddy/config-adapters.md similarity index 92% rename from docs/caddy/docs/docs/config-adapters.md rename to docs/caddy/config-adapters.md index 7cd8c54..9aa9e7a 100644 --- a/docs/caddy/docs/docs/config-adapters.md +++ b/docs/caddy/config-adapters.md @@ -28,10 +28,7 @@ Using config adapters[🔗](https://caddyserver.com/docs/config-adapters#using-c You can use a config adapter by specifying it on the command line by using the `--adapter` flag on most subcommands that take a config: -``` -caddy run --config caddy.yaml --adapter yaml -``` - +`caddy run --config caddy.yaml --adapter yaml` Or via the API at the [`/load` endpoint](https://caddyserver.com/docs/api#post-load): ``` @@ -42,16 +39,13 @@ curl localhost:2019/load \ If you only want to get the output JSON without running it, you can use the [`caddy adapt`](https://caddyserver.com/docs/command-line#caddy-adapt) command: -``` -caddy adapt --config caddy.yaml --adapter yaml -``` - +`caddy adapt --config caddy.yaml --adapter yaml` Caveats[🔗](https://caddyserver.com/docs/config-adapters#caveats "Direct link") ------------------------------------------------------------------------------- Not all config languages are 100% compatible with Caddy; some features or behaviors simply don't translate well or are not yet programmed into the adapter or Caddy itself. -Some adapters do a 1-1 translation, like YAML-\>JSON or TOML-\>JSON. Others are designed specifically for Caddy, like the Caddyfile. Generally, these adapters will always work. +Some adapters do a 1-1 translation, like YAML->JSON or TOML->JSON. Others are designed specifically for Caddy, like the Caddyfile. Generally, these adapters will always work. However, not all adapters work all of the time. Config adapters do their best to translate your input to Caddy JSON with the highest fidelity and correctness. Because this conversion process is not guaranteed to be complete and correct all the time, we don't call them "converters" or "translators". They are "adapters" since they will at least give you a good starting point to finish crafting your final JSON config. diff --git a/docs/caddy/docs/docs/conventions.md b/docs/caddy/conventions.md similarity index 86% rename from docs/caddy/docs/docs/conventions.md rename to docs/caddy/conventions.md index 6f2849c..2b4c9aa 100644 --- a/docs/caddy/docs/docs/conventions.md +++ b/docs/caddy/conventions.md @@ -10,10 +10,11 @@ The Caddy ecosystem adheres to a few conventions to make things consistent and i * [File locations](https://caddyserver.com/docs/conventions#file-locations) * [Data directory](https://caddyserver.com/docs/conventions#data-directory) * [Configuration directory](https://caddyserver.com/docs/conventions#configuration-directory) + * [Durations](https://caddyserver.com/docs/conventions#durations) -Network addresses[🔗](https://caddyserver.com/docs/conventions#network-addresses "Direct link") ------------------------------------------------------------------------------------------------ +Network addresses +----------------- When specifying a network address to dial or bind, Caddy accepts a string in the following format: @@ -65,8 +66,8 @@ unix//path/to/socket unix//path/to/socket|0200 ``` -Placeholders[🔗](https://caddyserver.com/docs/conventions#placeholders "Direct link") -------------------------------------------------------------------------------------- +Placeholders +------------ Caddy's configuration supports the use of _placeholders_. Using placeholders is a simple way to inject dynamic values into a static configuration. @@ -86,7 +87,7 @@ The following placeholders are always available (global): | `{system.arch}` | The system's architecture | | `{system.wd}` | The current working directory | | `{time.now}` | The current time as a Go Time struct | -| `{time.now.http}` | The current time in the format used in [HTTP headers ![Image 10](https://caddyserver.com/old/resources/images/external-link.svg)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified) | +| `{time.now.http}` | The current time in the format used in [HTTP headers ![Image 1](https://caddyserver.com/old/resources/images/external-link.svg)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified) | | `{time.now.unix}` | The current time as a unix timestamp in seconds | | `{time.now.unix_ms}` | The current time as a unix timestamp in milliseconds | | `{time.now.common_log}` | The current time in Common Log Format | @@ -94,18 +95,18 @@ The following placeholders are always available (global): Not all config fields support placeholders, but most do where you would expect it. Support for placeholders needs to have been explicitly added to those fields. Plugin authors can [read this article](https://caddyserver.com/docs/extending-caddy/placeholders) to learn how to add support for placeholders in their own modules. -File locations[🔗](https://caddyserver.com/docs/conventions#file-locations "Direct link") ------------------------------------------------------------------------------------------ +File locations +-------------- This section contains information about where to find various files. File and directory paths described here are defaults at best; some can be overridden. -### Your config files[🔗](https://caddyserver.com/docs/conventions#your-config-files "Direct link") +### Your config files There is no single, conventional place for you to put your config files. Put them wherever makes the most sense to you. Distributions that ship with a default config file should document where this config file is at, even if it might be obvious to the package/distro maintainers. For most Linux installations, the Caddyfile will be found at `/etc/caddy/Caddyfile`. -### Data directory[🔗](https://caddyserver.com/docs/conventions#data-directory "Direct link") +### Data directory Caddy stores TLS certificates and other important assets in a data directory, which is backed by [the configured storage module](https://caddyserver.com/docs/json/storage/) (default: local file system). @@ -127,7 +128,7 @@ All other OSes use the Linux/BSD directory path. It is crucial that this directory is persistent and writeable by Caddy. -### Configuration directory[🔗](https://caddyserver.com/docs/conventions#configuration-directory "Direct link") +### Configuration directory This is where Caddy may store certain configuration to disk. Most notably, it persists the last active configuration (by default) to this folder for easy resumption later using [`caddy run --resume`](https://caddyserver.com/docs/command-line#caddy-run). @@ -146,8 +147,8 @@ All other OSes use the Linux/BSD directory path. It is crucial that this directory is persistent and writeable by Caddy. -Durations[🔗](https://caddyserver.com/docs/conventions#durations "Direct link") -------------------------------------------------------------------------------- +Durations +--------- Duration strings are commonly used throughout Caddy's configuration. They take on the same format as [Go's `time.ParseDuration` syntax](https://golang.org/pkg/time/#ParseDuration) except you can also use `d` for day (we assume 1 day = 24 hours for simplicity). Valid units are: diff --git a/docs/caddy/docs/docs/caddyfile/directives/abort.md b/docs/caddy/docs/docs/caddyfile/directives/abort.md deleted file mode 100644 index 68b20bd..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/abort.md +++ /dev/null @@ -1,101 +0,0 @@ -Title: abort (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/abort - -Markdown Content: -abort (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -abort -===== - -Prevents any response to the client by immediately aborting the HTTP handler chain and closing the connection. Any concurrent, active HTTP streams on the same connection are interrupted. - -Syntax ------- - -``` -abort [] -``` - -Examples --------- - -Forcefully close a connection received for unknown domains when using a wildcard certificate: - -``` -*.example.com { - @foo host foo.example.com - handle @foo { - respond "This is foo!" 200 - } - - handle { - # Unhandled domains fall through to here, - # but we don't want to accept their requests - abort - } -} -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/acme_server.md b/docs/caddy/docs/docs/caddyfile/directives/acme_server.md deleted file mode 100644 index 77168f0..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/acme_server.md +++ /dev/null @@ -1,90 +0,0 @@ -Title: acme_server (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/acme_server - -Markdown Content: -An embedded [ACME protocol](https://tools.ietf.org/html/rfc8555) server handler. This allows a Caddy instance to issue certificates for any other ACME-compatible software (including other Caddy instances). - -When enabled, requests matching the path `/acme/*` will be handled by the ACME server. - -Client configuration --------------------- - -Using ACME server defaults, ACME clients should simply be configured to use `https://localhost/acme/local/directory` as their ACME endpoint. (`local` is the ID of Caddy's default CA.) - -Syntax ------- - -``` -acme_server [] { - ca - lifetime - resolvers - challenges - allow_wildcard_names - allow { - domains - ip_ranges - } - deny { - domains - ip_ranges - } -} -``` - -* **ca** specifies the ID of the certificate authority with which to sign certificates. The default is `local`, which is Caddy's default CA, intended for locally-used, self-signed certificates, which is most common in dev environments. For broader use, it is recommended to specify a different CA to avoid confusion. If the CA with the given ID does not already exist, it will be created. See the [PKI app global options](https://caddyserver.com/docs/caddyfile/options#pki-options) to configure alternate CAs. - -* **lifetime** (Default: `12h`) is a [duration](https://caddyserver.com/docs/conventions#durations) which specifies the validity period for issued certificates. This value must be less than the lifetime of the [intermediate certificate](https://caddyserver.com/docs/caddyfile/options#intermediate-lifetime) used for signing. It is not recommended to change this unless absolutely necessary. - -* **resolvers** are the addresses of DNS resolvers to use when looking up the TXT records for solving ACME DNS challenges. Accepts [network addresses](https://caddyserver.com/docs/conventions#network-addresses) defaulting to UDP and port 53 unless specified. If the host is an IP address, it will be dialed directly to resolve the upstream server. If the host is not an IP address, the addresses are resolved using the [name resolution convention](https://golang.org/pkg/net/#hdr-Name_Resolution) of the Go standard library. If multiple resolvers are specified, then one is chosen at random. - -* **challenges** sets the enabled challenge types. If not set or the directive is used without values, then all challenge types are enabled. Accepted values are: http-01, tls-alpn-01, dns-01. - -* **allow\_wildcard\_names** enables issuing of certificates with wildcard SAN (Subject Alternative Name) - -* **allow**, **deny** configure the operational policy of the `acme_server`. The policy evaluation follows the criteria described by Step-CA [here](https://smallstep.com/docs/step-ca/policies/#policy-evaluation). - - * **domains** sets the subject domain names to be allowed or denied per the policy evaluation criteria. - - * **ip\_ranges** sets the subject IP ranges to be allowed or denied per the policy evaluation criteria. - - -Examples --------- - -To serve an ACME server with ID `home` on the domain `acme.example.com`, with the CA customized via the [`pki` global option](https://caddyserver.com/docs/caddyfile/options#pki-options), and issuing its own certificate using the `internal` issuer: - -``` -{ - pki { - ca home { - name "My Home CA" - } - } -} - -acme.example.com { - tls { - issuer internal { - ca home - } - } - acme_server { - ca home - } -} -``` - -If you have another Caddy server, it can use the above ACME server to issue its own certificates: - -``` -{ - acme_ca https://acme.example.com/acme/home/directory - acme_ca_root /path/to/home_ca_root.crt -} - -example.com { - respond "Hello, world!" -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/basic_auth.md b/docs/caddy/docs/docs/caddyfile/directives/basic_auth.md deleted file mode 100644 index 3528e88..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/basic_auth.md +++ /dev/null @@ -1,65 +0,0 @@ -Title: basic_auth (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/basic_auth - -Markdown Content: -Enables HTTP Basic Authentication, which can be used to protect directories and files with a username and hashed password. - -**Note that basic auth is not secure over plain HTTP.** Use discretion when deciding what to protect with HTTP Basic Authentication. - -When a user requests a resource that is protected, the browser will prompt the user for a username and password if they have not already supplied one. If the proper credentials are present in the Authorization header, the server will grant access to the resource. If the header is missing or the credentials are incorrect, the server will respond with HTTP 401 Unauthorized. - -Caddy configuration does not accept plaintext passwords; you MUST hash them before putting them into the configuration. The [`caddy hash-password`](https://caddyserver.com/docs/command-line#caddy-hash-password) command can help with this. - -After a successful authentication, the `{http.auth.user.id}` placeholder will be available, which contains the authenticated username. - -Prior to v2.8.0, this directive was named `basicauth`, but was renamed for consistency with other directives. - -Syntax ------- - -``` -basic_auth [] [ []] { - - ... -} -``` - -* **** is the name of the password hashing algorithm (or KDF) used for the hashes in this configuration. Default: `bcrypt` - -* **** is a custom realm name. - -* **** is a username or user ID. - -* **** is the password hash. - - -Examples --------- - -Require authentication for all requests to `example.com`: - -``` -example.com { - basic_auth { - # Username "Bob", password "hiccup" - Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG - } - respond "Welcome, {http.auth.user.id}" 200 -} -``` - -Protect files in `/secret/` so only `Bob` can access them (and anyone can see other paths): - -``` -example.com { - root * /srv - - basic_auth /secret/* { - # Username "Bob", password "hiccup" - Bob $2a$14$Zkx19XLiW6VYouLHR5NmfOFU0z2GTNmpkT/5qqR7hx4IjWJPDhjvG - } - - file_server -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/bind.md b/docs/caddy/docs/docs/caddyfile/directives/bind.md deleted file mode 100644 index 54dce40..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/bind.md +++ /dev/null @@ -1,78 +0,0 @@ -Title: bind (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/bind - -Markdown Content: -Overrides the interface to which the server's socket should bind. - -Normally, the listener binds to the empty (wildcard) interface. However, you may force the listener to bind to another hostname or IP instead. This directive accepts only a host, not a port. The port is determined by the [site address](https://caddyserver.com/docs/caddyfile/concepts#addresses) (defaulting to `443`). - -Note that binding sites inconsistently may result in unintended consequences. For example, if two sites on the same port resolve to `127.0.0.1` and only one of those sites is configured with `bind 127.0.0.1`, then only one site will be accessible since the other will bind to the port without a specific host; the OS will choose the more specific matching socket. (Virtual hosts are not shared across different listeners.) - -`bind` accepts [network addresses](https://caddyserver.com/docs/conventions#network-addresses), but may not include a port. - -Syntax ------- - -``` -bind -``` - -* **** is the list of host interfaces to bind which to bind the listener. - -Examples --------- - -To make a socket accessible only on the current machine, bind to the loopback interface (localhost): - -``` -example.com { - bind 127.0.0.1 -} -``` - -To include IPv6: - -``` -example.com { - bind 127.0.0.1 [::1] -} -``` - -To bind to `10.0.0.1:8080`: - -``` -example.com:8080 { - bind 10.0.0.1 -} -``` - -To bind to a Unix domain socket at `/run/caddy`: - -``` -example.com { - bind unix//run/caddy -} -``` - -To change the file permission to be writable by all users ([defaults](https://caddyserver.com/docs/conventions#network-addresses) to `0200`, which is only writable by the owner): - -``` -example.com { - bind unix//run/caddy|0222 -} -``` - -To bind one domain to two different interfaces, with different responses: - -``` -example.com { - bind 10.0.0.1 - respond "One" -} - -example.com { - bind 10.0.0.2 - respond "Two" -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/encode.md b/docs/caddy/docs/docs/caddyfile/directives/encode.md deleted file mode 100644 index 68fb593..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/encode.md +++ /dev/null @@ -1,98 +0,0 @@ -Title: encode (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/encode - -Markdown Content: -Encodes responses using the configured encoding(s). A typical use for encoding is compression. - -Syntax ------- - -``` -encode [] { - # encoding formats - gzip [] - zstd [] - - minimum_length - - match { - status - header [] - } -} -``` - -* **** is the list of encoding formats to enable. If multiple encodings are enabled, the encoding is chosen based the request's Accept-Encoding header; if the client has no strong preference (q-factor), then the first supported encoding is used. - -* **gzip** enables Gzip compression, optionally at a specified level. - -* **zstd** enables Zstandard compression, optionally at a specified level (possible values = default, fastest, better, best). The default compression level is roughly equivalent to the default Zstandard mode (level 3). - -* **minimum\_length** the minimum number of bytes a response should have to be encoded (default: 512). - -* **match** is a [response matcher](https://caddyserver.com/docs/caddyfile/response-matchers). Only matching responses are encoded. The default looks like this: - - ``` - match { - header Content-Type application/atom+xml* - header Content-Type application/eot* - header Content-Type application/font* - header Content-Type application/geo+json* - header Content-Type application/graphql+json* - header Content-Type application/javascript* - header Content-Type application/json* - header Content-Type application/ld+json* - header Content-Type application/manifest+json* - header Content-Type application/opentype* - header Content-Type application/otf* - header Content-Type application/rss+xml* - header Content-Type application/truetype* - header Content-Type application/ttf* - header Content-Type application/vnd.api+json* - header Content-Type application/vnd.ms-fontobject* - header Content-Type application/wasm* - header Content-Type application/x-httpd-cgi* - header Content-Type application/x-javascript* - header Content-Type application/x-opentype* - header Content-Type application/x-otf* - header Content-Type application/x-perl* - header Content-Type application/x-protobuf* - header Content-Type application/x-ttf* - header Content-Type application/xhtml+xml* - header Content-Type application/xml* - header Content-Type font/* - header Content-Type image/svg+xml* - header Content-Type image/vnd.microsoft.icon* - header Content-Type image/x-icon* - header Content-Type multipart/bag* - header Content-Type multipart/mixed* - header Content-Type text/* - } - ``` - - -Examples --------- - -Enable Gzip compression: - -``` -encode gzip -``` - -Enable Zstandard and Gzip compression (with Zstandard implicitly preferred, since it is first): - -``` -encode zstd gzip -``` - -And in a full site, compressing static files served by [`file_server`](https://caddyserver.com/docs/caddyfile/directives/file_server): - -``` -example.com { - root * /srv - encode zstd gzip - file_server -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/error.md b/docs/caddy/docs/docs/caddyfile/directives/error.md deleted file mode 100644 index 619e416..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/error.md +++ /dev/null @@ -1,114 +0,0 @@ -Title: error (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/error - -Markdown Content: -error (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -error -===== - -Triggers an error in the HTTP handler chain, with an optional message and recommended HTTP status code. - -This handler does not write a response. Instead, it's meant to be paired with the [`handle_errors`](https://caddyserver.com/docs/caddyfile/directives/handle_errors) directive to invoke your custom error handling logic. - -Syntax ------- - -``` -error [] | [] { - message -} -``` - -* **** is the HTTP status code to write. Default is `500`. -* **** is the error message. Default is no error message. -* **message** is an alternate way to provide an error message; convenient if it is multiple lines. - -To clarify, the first non-matcher argument can be either a 3-digit status code, or an error message string. If it is an error message, the next argument can be the status code. - -Examples --------- - -Trigger an error on certain request paths, and use [`handle_errors`](https://caddyserver.com/docs/caddyfile/directives/handle_errors) to write a response: - -``` -example.com { - root * /srv - - # Trigger errors for certain paths - error /private* "Unauthorized" 403 - error /hidden* "Not found" 404 - - # Handle the error by serving an HTML page - handle_errors { - rewrite * /{err.status_code}.html - file_server - } - - file_server -} -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/forward_auth.md b/docs/caddy/docs/docs/caddyfile/directives/forward_auth.md deleted file mode 100644 index 58c1313..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/forward_auth.md +++ /dev/null @@ -1,126 +0,0 @@ -Title: forward_auth (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/forward_auth - -Markdown Content: -An opinionated directive which proxies a clone of the request to an authentication gateway, which can decide whether handling should continue, or needs to be sent to a login page. - -* [Syntax](https://caddyserver.com/docs/caddyfile/directives/forward_auth#syntax) -* [Expanded Form](https://caddyserver.com/docs/caddyfile/directives/forward_auth#expanded-form) -* [Examples](https://caddyserver.com/docs/caddyfile/directives/forward_auth#examples) - * [Authelia](https://caddyserver.com/docs/caddyfile/directives/forward_auth#authelia) - * [Tailscale](https://caddyserver.com/docs/caddyfile/directives/forward_auth#tailscale) - -Caddy's [`reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy) is capable of performing "pre-check requests" to an external service, but this directive is tailored specifically for the authentication usecase. This directive is actually just a convenient way to use a longer, more common configuration (below). - -This directive makes a `GET` request to the configured upstream with the `uri` rewritten: - -* If the upstream responds with a `2xx` status code, then access is granted and the header fields in `copy_headers` are copied to the original request, and handling continues. -* Otherwise, if the upstream responds with any other status code, then the upstream's response is copied back to the client. This response should typically involve a redirect to login page of the authentication gateway. - -If this behaviour is not exactly what you want, you may take the [expanded form](https://caddyserver.com/docs/caddyfile/directives/forward_auth#expanded-form) below as a basis and customize it to your needs. - -All the subdirectives of [`reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy) are supported, and passed through to the underlying `reverse_proxy` handler. - -Syntax ------- - -``` -forward_auth [] [] { - uri - copy_headers { - - } -} -``` - -* **** is a list of upstreams (backends) to which to send auth requests. - -* **uri** is the URI (path and query) to set on the request sent to the upstream. This will usually be the verification endpoint of the authentication gateway. - -* **copy\_headers** is a list of HTTP header fields to copy from the response to the original request, when the request has a success status code. - - The field can be renamed by using `>` followed by the new name, for example `Before>After`. - - A block may be used to list all the fields, one per line, if you prefer for readability. - - -Since this directive is an opinionated wrapper over a reverse proxy, you can use any of [`reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#syntax)'s subdirectives to customize it. - -Expanded form -------------- - -The `forward_auth` directive is the same as the following configuration. Auth gateways like [Authelia](https://www.authelia.com/) work well with this preset. If yours does not, feel free to borrow from this and customize it as needed instead of using the `forward_auth` shortcut. - -``` -reverse_proxy { - # Always GET, so that the incoming - # request's body is not consumed - method GET - - # Change the URI to the auth gateway's - # verification endpoint - rewrite - - # Forward the original method and URI, - # since they get rewritten above; this - # is in addition to other X-Forwarded-* - # headers already set by reverse_proxy - header_up X-Forwarded-Method {method} - header_up X-Forwarded-Uri {uri} - - # On a successful response, copy response headers - @good status 2xx - handle_response @good { - # for example, for each copy_headers field... - request_header Remote-User {rp.header.Remote-User} - request_header Remote-Email {rp.header.Remote-Email} - } -} -``` - -Examples --------- - -### Authelia - -Delegating authentication to [Authelia](https://www.authelia.com/), before serving your app via a reverse proxy: - -``` -# Serve the authentication gateway itself -auth.example.com { - reverse_proxy authelia:9091 -} - -# Serve your app -app1.example.com { - forward_auth authelia:9091 { - uri /api/authz/forward-auth - copy_headers Remote-User Remote-Groups Remote-Name Remote-Email - } - - reverse_proxy app1:8080 -} -``` - -For more information, see [Authelia's documentation](https://www.authelia.com/integration/proxies/caddy/) for integrating with Caddy. - -### Tailscale - -Delegating authentication to [Tailscale](https://tailscale.com/) (currently named [`nginx-auth`](https://tailscale.com/blog/tailscale-auth-nginx/), but it still works with Caddy), and using the alternative syntax for `copy_headers` to _rename_ the copied headers (note the `>` in each header): - -``` -forward_auth unix//run/tailscale.nginx-auth.sock { - uri /auth - header_up Remote-Addr {remote_host} - header_up Remote-Port {remote_port} - header_up Original-URI {uri} - copy_headers { - Tailscale-User>X-Webauth-User - Tailscale-Name>X-Webauth-Name - Tailscale-Login>X-Webauth-Login - Tailscale-Tailnet>X-Webauth-Tailnet - Tailscale-Profile-Picture>X-Webauth-Profile-Picture - } -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/fs.md b/docs/caddy/docs/docs/caddyfile/directives/fs.md deleted file mode 100644 index eaffeea..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/fs.md +++ /dev/null @@ -1,116 +0,0 @@ -Title: fs (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/fs - -Markdown Content: -fs (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -fs -== - -Sets which file system should be used for performing file I/O. - -This could let you connect to a remote filesystem running in the cloud, or a database with a file-like interface, or even to read from files embedded within the Caddy binary. - -First, you must declare a file system name using the [`filesystem` global option](https://caddyserver.com/docs/caddyfile/options#filesystem), then you can use this directive to specify which file system to use. - -This directive is often used in conjunction with the [`file_server` directive](https://caddyserver.com/docs/caddyfile/directives/file_server) to serve static files, or the [`try_files` directive](https://caddyserver.com/docs/caddyfile/directives/try_files) to perform rewrites based on the existence of files. Typically also used with [`root` directive](https://caddyserver.com/docs/caddyfile/directives/root) to set the root path within the file system. - -Syntax ------- - -``` -fs [] -``` - -Examples --------- - -Using an file system named `foo`, using an imaginary module named `custom` which might require authentication: - -``` -{ - filesystem foo custom { - api_key abc123 - } -} - -example.com { - fs foo - root /srv - file_server -} -``` - -To only serve images from the `foo` file system, and the rest from the default file system: - -``` -example.com { - fs /images* foo - root /srv - file_server -} -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/handle.md b/docs/caddy/docs/docs/caddyfile/directives/handle.md deleted file mode 100644 index 33d5379..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/handle.md +++ /dev/null @@ -1,88 +0,0 @@ -Title: handle (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/handle - -Markdown Content: -Evaluates a group of directives mutually exclusively from other `handle` blocks at the same level of nesting. - -In other words, when multiple `handle` directives appear in sequence, only the first _matching_ `handle` block will be evaluated. A handle with no matcher acts like a _fallback_ route. - -The `handle` directives are sorted according to the [directive sorting algorithm](https://caddyserver.com/docs/caddyfile/directives#sorting-algorithm) by their matchers. The [`handle_path`](https://caddyserver.com/docs/caddyfile/directives/handle_path) directive is a special case which sorts at the same priority as a `handle` with a path matcher. - -Handle blocks can be nested if needed. Only HTTP handler directives can be used inside handle blocks. - -Syntax ------- - -``` -handle [] { - -} -``` - -* **** is a list of HTTP handler directives or directive blocks, one per line, just like would be used outside of a handle block. - -Similar directives ------------------- - -There are other directives that can wrap HTTP handler directives, but each has its use depending on the behavior you want to convey: - -* [`handle_path`](https://caddyserver.com/docs/caddyfile/directives/handle_path) does the same as `handle`, but it strips a prefix from the request before running its handlers. - -* [`handle_errors`](https://caddyserver.com/docs/caddyfile/directives/handle_errors) is like `handle`, but is only invoked when Caddy encounters an error during request handling. - -* [`route`](https://caddyserver.com/docs/caddyfile/directives/route) wraps other directives like `handle` does, but with two distinctions: - - 1. route blocks are not mutually exclusive to each other, - 2. directives within a route are not [re-ordered](https://caddyserver.com/docs/caddyfile/directives#directive-order), giving you more control if needed. - -Examples --------- - -Handle requests in `/foo/` with the static file server, and other requests with the reverse proxy: - -``` -example.com { - handle /foo/* { - file_server - } - - handle { - reverse_proxy 127.0.0.1:8080 - } -} -``` - -You can mix `handle` and [`handle_path`](https://caddyserver.com/docs/caddyfile/directives/handle_path) in the same site, and they will still be mutually exclusive from each other: - -``` -example.com { - handle_path /foo/* { - # The path has the "/foo" prefix stripped - } - - handle /bar/* { - # The path still retains "/bar" - } -} -``` - -You can nest `handle` blocks to create more complex routing logic: - -``` -example.com { - handle /foo* { - handle /foo/bar* { - # This block only matches paths under /foo/bar - } - - handle { - # This block matches everything else under /foo/ - } - } - - handle { - # This block matches everything else (acts as a fallback) - } -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/handle_errors.md b/docs/caddy/docs/docs/caddyfile/directives/handle_errors.md deleted file mode 100644 index 568e407..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/handle_errors.md +++ /dev/null @@ -1,134 +0,0 @@ -Title: handle_errors (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/handle_errors - -Markdown Content: -Sets up error handlers. - -When the normal HTTP request handlers return an error, normal processing stops and the error handlers are invoked. Error handlers form a route which is just like normal routes, and they can do anything that normal routes can do. This enables great control and flexibility when handling errors during HTTP requests. For example, you can serve static error pages, templated error pages, or reverse proxy to another backend to handle errors. - -The directive may be repeated with different status codes to handle different errors differently. If no status codes are specified, then it will match any error, acting as a fallback if any other error handlers does not match. - -A request's context is carried into error routes, so any values set on the request context such as [site root](https://caddyserver.com/docs/caddyfile/directives/root) or [vars](https://caddyserver.com/docs/caddyfile/directives/vars) will be preserved in error handlers, too. Additionally, [new placeholders](https://caddyserver.com/docs/caddyfile/directives/handle_errors#placeholders) are available when handling errors. - -Note that certain directives, for example [`reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy) which may write a response with an HTTP status which is classified as an error, will _not_ trigger the error routes. - -You may use the [`error`](https://caddyserver.com/docs/caddyfile/directives/error) directive to explicitly trigger an error based on your own routing decisions. - -Syntax ------- - -``` -handle_errors [] { - -} -``` - -* **** is one or more HTTP status codes to match against the error being handled. The status codes may be 3-digit numbers, or a special case of `4xx` or `5xx` which match against all status codes in the range of 400-499 or 500-599, respectively. If no status codes are specified, then it will match any error, acting as a fallback if any other error handlers does not match. - -* **** is a list of HTTP handler [directives](https://caddyserver.com/docs/caddyfile/directives) and [matchers](https://caddyserver.com/docs/caddyfile/matchers), one per line. - - -Placeholders ------------- - -The following placeholders are available while handling errors. They are [Caddyfile shorthands](https://caddyserver.com/docs/caddyfile/concepts#placeholders) for the full placeholders which can be found in [the JSON docs for an HTTP server's error routes](https://caddyserver.com/docs/json/apps/http/servers/errors/#routes). - -| Placeholder | Description | -| --- | --- | -| `{err.status_code}` | The recommended HTTP status code | -| `{err.status_text}` | The status text associated with the recommended status code | -| `{err.message}` | The error message | -| `{err.trace}` | The origin of the error | -| `{err.id}` | An identifier for this occurrence of the error | - -Examples --------- - -Custom error pages based on the status code (i.e. a page called `404.html` for `404` errors). Note that [`file_server`](https://caddyserver.com/docs/caddyfile/directives/file_server) preserves the error's HTTP status code when run in `handle_errors` (assumes you set a [site root](https://caddyserver.com/docs/caddyfile/directives/root) in your site beforehand): - -``` -handle_errors { - rewrite * /{err.status_code}.html - file_server -} -``` - -A single error page that uses [`templates`](https://caddyserver.com/docs/caddyfile/directives/templates) to write a custom error message: - -``` -handle_errors { - rewrite * /error.html - templates - file_server -} -``` - -If you want to provide custom error pages only for some error codes, you can check the existence of the custom error files beforehand with a [`file`](https://caddyserver.com/docs/caddyfile/matchers#file) matcher: - -``` -handle_errors { - @custom_err file /err-{err.status_code}.html /err.html - handle @custom_err { - rewrite * {file_match.relative} - file_server - } - respond "{err.status_code} {err.status_text}" -} -``` - -Reverse proxy to a professional server that is highly qualified for handling HTTP errors and improving your day 😸: - -``` -handle_errors { - rewrite * /{err.status_code} - reverse_proxy https://http.cat { - header_up Host {upstream_hostport} - replace_status {err.status_code} - } -} -``` - -Simply use [`respond`](https://caddyserver.com/docs/caddyfile/directives/respond) to return the error code and name - -``` -handle_errors { - respond "{err.status_code} {err.status_text}" -} -``` - -To handle specific error codes differently: - -``` -handle_errors 404 410 { - respond "It's a 404 or 410 error!" -} - -handle_errors 5xx { - respond "It's a 5xx error." -} - -handle_errors { - respond "It's another error" -} -``` - -The above behaves the same as the below, which uses an [`expression`](https://caddyserver.com/docs/caddyfile/matchers#expression) matcher against the status codes, and using [`handle`](https://caddyserver.com/docs/caddyfile/directives/handle) for mutual exclusivity: - -``` -handle_errors { - @404-410 `{err.status_code} in [404, 410]` - handle @404-410 { - respond "It's a 404 or 410 error!" - } - - @5xx `{err.status_code} >= 500 && {err.status_code} < 600` - handle @5xx { - respond "It's a 5xx error." - } - - handle { - respond "It's another error" - } -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/handle_path.md b/docs/caddy/docs/docs/caddyfile/directives/handle_path.md deleted file mode 100644 index c25eba3..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/handle_path.md +++ /dev/null @@ -1,126 +0,0 @@ -Title: handle_path (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/handle_path - -Markdown Content: -handle\_path (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 8: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 9](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 10](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 11](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -handle\_path -============ - -Works the same as the [`handle` directive](https://caddyserver.com/docs/caddyfile/directives/handle), but implicitly uses [`uri strip_prefix`](https://caddyserver.com/docs/caddyfile/directives/uri) to strip the matched path prefix. - -Handling a request matching a certain path (while stripping that path from the request URI) is a common enough use case that it has its own directive for convenience. - -Syntax ------- - -``` -handle_path { - -} -``` - -* **** is a list of HTTP handler directives or directive blocks, one per line, just like would be used outside of a `handle_path` block. - -Only a single [path matcher](https://caddyserver.com/docs/caddyfile/matchers#path-matchers) is accepted, and is required; you cannot use named matchers with `handle_path`. - -Examples --------- - -This configuration: - -``` -handle_path /prefix/* { - ... -} -``` - -👆 is effectively the same as this 👇, but the `handle_path` form 👆 is slightly more succinct - -``` -handle /prefix/* { - uri strip_prefix /prefix - ... -} -``` - -A full Caddyfile example, where `handle_path` and `handle` are mutually exclusive; but, be aware of the [subfolder problem ![Image 12](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/t/the-subfolder-problem-or-why-cant-i-reverse-proxy-my-app-into-a-subfolder/8575) - -``` -example.com { - # Serve your API, stripping the /api prefix - handle_path /api/* { - reverse_proxy localhost:9000 - } - - # Serve your static site - handle { - root * /srv - file_server - } -} -``` - -![Image 13: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/header.md b/docs/caddy/docs/docs/caddyfile/directives/header.md deleted file mode 100644 index 969d52a..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/header.md +++ /dev/null @@ -1,133 +0,0 @@ -Title: header (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/header - -Markdown Content: -Manipulates HTTP response header fields. It can set, add, and delete header values, or perform replacements using regular expressions. - -By default, header operations are performed immediately unless any of the headers are being deleted (`-` prefix) or setting a default value (`?` prefix). In those cases, the header operations are automatically deferred until the time they are being written to the client. - -To manipulate HTTP request headers, you may use the [`request_header`](https://caddyserver.com/docs/caddyfile/directives/request_header) directive. - -Syntax ------- - -``` -header [] [[+|-|?|>] [|] []] { - # Add - + - - # Set - - - # Set with defer - > - - # Delete - - - - # Replace - - - # Replace with defer - > - - # Default - ? - - [defer] -} -``` - -* **** is the name of the header field. - - With no prefix, the field is set (overwritten). - - Prefix with `+` to add the field instead of overwriting (setting) the field if it already exists; header fields can appear more than once in a request. - - Prefix with `-` to delete the field. The field may use prefix or suffix `*` wildcards to delete all matching fields. - - Prefix with `?` to set a default value for the field. The field is only written if it doesn't yet exist. - - Prefix with `>` to set the field, and enable `defer`, as a shortcut. - -* **** is the header field value, when adding or setting a field. - -* **** is the substring or regular expression to search for. - -* **** is the replacement value; required if performing a search-and-replace. Use `$1` or `$2` and so on to reference capture groups from the search pattern. If the replacement value is `""`, then the matching text is removed from the value. See the [Go documentation](https://golang.org/pkg/regexp/#Regexp.Expand) for details. - -* **defer** will force the header operations to be deferred until the response is being written out to the client. This is automatically enabled if any of the header fields are being deleted with `-`, when setting a default value with `?`, or when having used the `>` prefix. - - -For multiple header manipulations, you can open a block and specify one manipulation per line in the same way. - -When using the `?` prefix to set a default header value, it is automatically separated into its own `header` handler, if it was in a `header` block with multiple header operations. [Under the hood](https://caddyserver.com/docs/modules/http.handlers.headers#response/require), using `?` configures a [response matcher](https://caddyserver.com/docs/caddyfile/response-matchers) which applies to the directive's entire handler, which only applies the header operations (like `defer`), but only if the field is not yet set. - -Examples --------- - -Set a custom header field on all requests: - -``` -header Custom-Header "My value" -``` - -Strip the "Hidden" header field: - -``` -header -Hidden -``` - -Replace `http://` with `https://` in any Location header: - -``` -header Location http:// https:// -``` - -Set security and privacy headers on all pages: (**WARNING:** only use if you understand the implications!) - -``` -header { - # disable FLoC tracking - Permissions-Policy interest-cohort=() - - # enable HSTS - Strict-Transport-Security max-age=31536000; - - # disable clients from sniffing the media type - X-Content-Type-Options nosniff - - # clickjacking protection - X-Frame-Options DENY -} -``` - -Multiple header directives that are intended to be mutually-exclusive: - -``` -route { - header Cache-Control max-age=3600 - header /static/* Cache-Control max-age=31536000 -} -``` - -Set a default cache expiration if upstream doesn't define one: - -``` -header ?Cache-Control "max-age=3600" -reverse_proxy upstream:443 -``` - -To override the cache expiration that a proxy upstream had set for paths starting with `/no-cache`; enabling `defer` is necessary to ensure the header is set _after_ the proxy writes its headers: - -``` -header /no-cache* >Cache-Control nocache -reverse_proxy upstream:443 -``` - -To perform a deferred update of a `Set-Cookie` header to add `SameSite=None`; a regexp capture is used to grab the existing value, and `$1` re-inserts it at the start with the additional option appended: - -``` -header >Set-Cookie (.*) "$1; SameSite=None;" -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/import.md b/docs/caddy/docs/docs/caddyfile/directives/import.md deleted file mode 100644 index 1a4aa0d..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/import.md +++ /dev/null @@ -1,90 +0,0 @@ -Title: import (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/import - -Markdown Content: -Includes a [snippet](https://caddyserver.com/docs/caddyfile/concepts#snippets) or file, replacing this directive with the contents of the snippet or file. - -This directive is a special case: it is evaluated before the structure is parsed, and it can appear anywhere in the Caddyfile. - -Syntax ------- - -``` -import [] -``` - -* **** is the filename, glob pattern, or name of [snippet](https://caddyserver.com/docs/caddyfile/concepts#snippets) to include. Its contents will replace this line as if that file's contents appeared here to begin with. - - It is an error if a specific file cannot be found, but an empty glob pattern is not an error. - - If importing a specific file, a warning will be emitted if the file is empty. - - If the pattern is a filename or glob, it is always relative to the file the `import` appears in. - - If using a glob pattern `*` as the final path segment, hidden files (i.e. files starting with a `.`) are ignored. To import hidden files, use `.*` as the final segment. - -* **** is an optional list of arguments to pass to the imported tokens. This placeholder is a special case and is evaluated at Caddyfile-parse-time, not at run-time. They can be used in various forms, similarly to [Go's slice syntax](https://gobyexample.com/slices): - - * `{args[n]}` where `n` is the 0-based positional index of the parameter - * `{args[:]}` where all the arguments are inserted - * `{args[:m]}` where the arguments before `m` are inserted - * `{args[n:]}` where the arguments beginning with `n` are inserted - * `{args[n:m]}` where the arguments in the range between `n` and `m` are inserted - - For the forms that insert many tokens, the placeholder **must** be a [token](https://caddyserver.com/docs/caddyfile/concepts#tokens-and-quotes) on its own, it cannot be part of another token. In other words, it must have spaces around it, and cannot be in quotes. - - Note that prior to v2.7.0, the syntax was `{args.N}` but this form was deprecated in favor of the more flexible syntax above. - - -Examples --------- - -Import all files in an adjacent sites-enabled folder (except hidden files): - -``` -import sites-enabled/* -``` - -Import a snippet that sets CORS headers using an import argument: - -``` -(cors) { - @origin header Origin {args[0]} - header @origin Access-Control-Allow-Origin "{args[0]}" - header @origin Access-Control-Allow-Methods "OPTIONS,HEAD,GET,POST,PUT,PATCH,DELETE" -} - -example.com { - import cors example.com -} -``` - -Import a snippet which takes a list of proxy upstreams as arguments: - -``` -(https-proxy) { - reverse_proxy {args[:]} { - transport http { - tls - } - } -} - -example.com { - import https-proxy 10.0.0.1 10.0.0.2 10.0.0.3 -} -``` - -Import a snippet which creates a proxy with a prefix rewrite rule as the first argument: - -``` -(proxy-rewrite) { - rewrite * {args[0]}{uri} - reverse_proxy {args[1:]} -} - -example.com { - import proxy-rewrite /api 10.0.0.1 10.0.0.2 10.0.0.3 -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/intercept.md b/docs/caddy/docs/docs/caddyfile/directives/intercept.md deleted file mode 100644 index ae9e2cd..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/intercept.md +++ /dev/null @@ -1,63 +0,0 @@ -Title: intercept (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/intercept - -Markdown Content: -A generalized abstraction of the [response interception](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#intercepting-responses) feature from the [`reverse_proxy` directive](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy). This may be used with any handler that produces responses, including those from plugins like [FrankenPHP](https://frankenphp.dev/)'s `php_server`. - -This directive allows you to [match responses](https://caddyserver.com/docs/caddyfile/response-matchers), and the first matching `handle_response` route or `replace_status` will be invoked. When invoked, the original response body is held back, giving the opportunity to that route to write a different response body, with a new status code or with any necessary response header manipulations. If the route does _not_ write a new response body, then original response body is written instead. - -Syntax ------- - -``` -intercept [] { - @name { - status - header [] - } - - replace_status [] - - handle_response [] { - - } -} -``` - -* **@name** is the name of a [response matcher](https://caddyserver.com/docs/caddyfile/response-matchers). As long as each response matcher has a unique name, multiple matchers can be defined. A response can be matched on the status code and presence or value of a response header. - -* **replace\_status** simply changes the status code of response when matched by the given matcher. - -* **handle\_response** defines the route to execute when matched by the given matcher (or, if a matcher is omitted, all responses). The first matching block will be applied. Inside a `handle_response` block, any other [directives](https://caddyserver.com/docs/caddyfile/directives) can be used. - - -Within `handle_response` routes, the following placeholders are available to pull information from the original response: - -* `{resp.status_code}` The status code of the original response. - -* `{resp.header.*}` The headers from the original response. - - -Examples --------- - -When using [FrankenPHP](https://frankenphp.dev/)'s `php_server`, you can use `intercept` to implement `X-Accel-Redirect` support, serving static files as requested by the PHP app: - -``` -localhost { - root * /srv - - intercept { - @accel header X-Accel-Redirect * - handle_response @accel { - root * /path/to/private/files - rewrite {resp.header.X-Accel-Redirect} - method GET - file_server - } - } - - php_server -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/invoke.md b/docs/caddy/docs/docs/caddyfile/directives/invoke.md deleted file mode 100644 index 64cb605..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/invoke.md +++ /dev/null @@ -1,122 +0,0 @@ -Title: invoke (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/invoke - -Markdown Content: -invoke (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -invoke -====== - -_⚠️ Experimental_ - -Invokes a [named route](https://caddyserver.com/docs/caddyfile/concepts#named-routes). - -This is useful when paired with HTTP handler directives that have their own in-memory state, or if they are expensive to provision on load. If you have hundreds of sites or more, invoking a named route can help reduce memory usage. - -Unlike [`import`](https://caddyserver.com/docs/caddyfile/directives/import), `invoke` does not support arguments, but you may use [`vars`](https://caddyserver.com/docs/caddyfile/directives/vars) to define variables that can be used within the named route. - -Syntax ------- - -``` -invoke [] -``` - -* **** is the name of the previously defined route that should be invoked. If the route is not found, then an error will be triggered. - -Examples --------- - -Defines a [named route](https://caddyserver.com/docs/caddyfile/concepts#named-routes) with a [`reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy) which can be reused in multiple sites, with the same in-memory load balancing state reused for every site. - -``` -&(app-proxy) { - reverse_proxy app-01:8080 app-02:8080 app-03:8080 { - lb_policy least_conn - health_uri /healthz - health_interval 5s - } -} - -# Apex domain allows accessing the app via an /app subpath -# and the main site otherwise. -example.com { - handle_path /app* { - invoke app-proxy - } - - handle { - root * /srv - file_server - } -} - -# The app is also accessible via a subdomain. -app.example.com { - invoke app-proxy -} -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/log.md b/docs/caddy/docs/docs/caddyfile/directives/log.md deleted file mode 100644 index 265693f..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/log.md +++ /dev/null @@ -1,550 +0,0 @@ -Title: log (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/log - -Markdown Content: -Enables and configures HTTP request logging (also known as access logs). - -The `log` directive applies to the hostnames of the site block it appears in, unless overridden with the `hostnames` subdirective. - -When configured, by default all requests to the site will be logged. To conditionally skip some requests from logging, use the [`log_skip` directive](https://caddyserver.com/docs/caddyfile/directives/log_skip). - -To add custom fields to the log entries, use the [`log_append` directive](https://caddyserver.com/docs/caddyfile/directives/log_append). - -* [Syntax](https://caddyserver.com/docs/caddyfile/directives/log#syntax) -* [Output modules](https://caddyserver.com/docs/caddyfile/directives/log#output-modules) - * [stderr](https://caddyserver.com/docs/caddyfile/directives/log#stderr) - * [stdout](https://caddyserver.com/docs/caddyfile/directives/log#stdout) - * [discard](https://caddyserver.com/docs/caddyfile/directives/log#discard) - * [file](https://caddyserver.com/docs/caddyfile/directives/log#file) - * [net](https://caddyserver.com/docs/caddyfile/directives/log#net) -* [Format modules](https://caddyserver.com/docs/caddyfile/directives/log#format-modules) - * [console](https://caddyserver.com/docs/caddyfile/directives/log#console) - * [json](https://caddyserver.com/docs/caddyfile/directives/log#json) - * [filter](https://caddyserver.com/docs/caddyfile/directives/log#filter) - * [delete](https://caddyserver.com/docs/caddyfile/directives/log#delete) - * [rename](https://caddyserver.com/docs/caddyfile/directives/log#rename) - * [replace](https://caddyserver.com/docs/caddyfile/directives/log#replace) - * [ip\_mask](https://caddyserver.com/docs/caddyfile/directives/log#ip-mask) - * [query](https://caddyserver.com/docs/caddyfile/directives/log#query) - * [cookie](https://caddyserver.com/docs/caddyfile/directives/log#cookie) - * [regexp](https://caddyserver.com/docs/caddyfile/directives/log#regexp) - * [hash](https://caddyserver.com/docs/caddyfile/directives/log#hash) - * [append](https://caddyserver.com/docs/caddyfile/directives/log#append) -* [Examples](https://caddyserver.com/docs/caddyfile/directives/log#examples) - -By default, headers with potentially sensitive information (`Cookie`, `Set-Cookie`, `Authorization` and `Proxy-Authorization`) will be logged as `REDACTED` in access logs. This behaviour can be disabled with the [`log_credentials`](https://caddyserver.com/docs/caddyfile/options#log-credentials) global server option. - -Syntax ------- - -``` -log [] { - hostnames - no_hostname - output ... - format ... - level -} -``` - -* **logger\_name** is an optional override of the logger name for this site. - - By default, a logger name is generated automatically, e.g. `log0`, `log1`, and so on depending on the order of the sites in the Caddyfile. This is only useful if you wish to reliably refer to the output of this logger from another logger defined in global options. See [an example](https://caddyserver.com/docs/caddyfile/directives/log#multiple-outputs) below. - -* **hostnames** is an optional override of the hostnames that this logger applies to. - - By default, the logger applies to the hostnames of the site block it appears in, i.e. the site addresses. This is useful if you wish to define different loggers per subdomain in a [wildcard site block](https://caddyserver.com/docs/caddyfile/patterns#wildcard-certificates). See [an example](https://caddyserver.com/docs/caddyfile/directives/log#wildcard-logs) below. - -* **no\_hostname** prevents the logger from being associated with any of the site block's hostnames. By default, the logger is associated with the [site address](https://caddyserver.com/docs/caddyfile/concepts#addresses) that the `log` directive appears in. - - This is useful when you want to log requests to different files based on some condition, such as the request path or method, using the [`log_name` directive](https://caddyserver.com/docs/caddyfile/directives/log_name). - -* **output** configures where to write the logs. See [`output` modules](https://caddyserver.com/docs/caddyfile/directives/log#output-modules) below. - - Default: `stderr`. - -* **format** describes how to encode, or format, the logs. See [`format` modules](https://caddyserver.com/docs/caddyfile/directives/log#format-modules) below. - - Default: `console` if `stderr` is detected to be a terminal, `json` otherwise. - -* **level** is the minimum entry level to log. Default: `INFO`. - - Note that access logs currently only emit `INFO` and `ERROR` level logs. - - -### Output modules - -The **output** subdirective lets you customize where logs get written. - -#### stderr - -Standard error (console, is the default). - -``` -output stderr -``` - -#### stdout - -Standard output (console). - -``` -output stdout -``` - -#### discard - -No output. - -``` -output discard -``` - -#### file - -A file. By default, log files are rotated ("rolled") to prevent disk space exhaustion. - -Log rolling is provided by [lumberjack ![Image 11](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/natefinch/lumberjack) - -``` -output file { - roll_disabled - roll_size - roll_uncompressed - roll_local_time - roll_keep - roll_keep_for -} -``` - -* **** is the path to the log file. - -* **roll\_disabled** disables log rolling. This can lead to disk space depletion, so only use this if your log files are maintained some other way. - -* **roll\_size** is the size at which to roll the log file. The current implementation supports megabyte resolution; fractional values are rounded up to the next whole megabyte. For example, `1.1MiB` is rounded up to `2MiB`. - - Default: `100MiB` - -* **roll\_uncompressed** turns off gzip log compression. - - Default: gzip compression is enabled. - -* **roll\_local\_time** sets the rolling to use local timestamps in filenames. - - Default: uses UTC time. - -* **roll\_keep** is how many log files to keep before deleting the oldest ones. - - Default: `10` - -* **roll\_keep\_for** is how long to keep rolled files as a [duration string](https://caddyserver.com/docs/conventions#durations). The current implementation supports day resolution; fractional values are rounded up to the next whole day. For example, `36h` (1.5 days) is rounded up to `48h` (2 days). Default: `2160h` (90 days) - - -#### net - -A network socket. If the socket goes down, it will dump logs to stderr while it attempts to reconnect. - -``` -output net
{ - dial_timeout - soft_start -} -``` - -* **** is the [address](https://caddyserver.com/docs/conventions#network-addresses) to write logs to. - -* **dial\_timeout** is how long to wait for a successful connection to the log socket. Log emissions may be blocked for up to this long if the socket goes down. - -* **soft\_start** will ignore errors when connecting to the socket, allowing you to load your config even if the remote log service is down. Logs will be emitted to stderr instead. - - -### Format modules - -The **format** subdirective lets you customize how logs get encoded (formatted). It appears within a `log` block. - -In addition to the syntax for each individual encoder, these common properties can be set on most encoders: - -``` -format { - message_key - level_key - time_key - name_key - caller_key - stacktrace_key - line_ending - time_format - time_local - duration_format - level_format -} -``` - -* **message\_key** The key for the message field of the log entry. Default: `msg` - -* **level\_key** The key for the level field of the log entry. Default: `level` - -* **time\_key** The key for the time field of the log entry. Default: `ts` - -* **name\_key** The key for the name field of the log entry. Default: `name` - -* **caller\_key** The key for the caller field of the log entry. - -* **stacktrace\_key** The key for the stacktrace field of the log entry. - -* **line\_ending** The line endings to use. - -* **time\_format** The format for timestamps. - - Default: `wall_milli` if the format defaulted to `console`, `unix_seconds_float` otherwise. - - May be one of: - - * `unix_seconds_float` Floating-point number of seconds since the Unix epoch. - * `unix_milli_float` Floating-point number of milliseconds since the Unix epoch. - * `unix_nano` Integer number of nanoseconds since the Unix epoch. - * `iso8601` Example: `2006-01-02T15:04:05.000Z0700` - * `rfc3339` Example: `2006-01-02T15:04:05Z07:00` - * `rfc3339_nano` Example: `2006-01-02T15:04:05.999999999Z07:00` - * `wall` Example: `2006/01/02 15:04:05` - * `wall_milli` Example: `2006/01/02 15:04:05.000` - * `wall_nano` Example: `2006/01/02 15:04:05.000000000` - * `common_log` Example: `02/Jan/2006:15:04:05 -0700` - * Or, any compatible time layout string; see the [Go documentation](https://pkg.go.dev/time#pkg-constants) for full details. - - Note that the parts of the format string are special constants for the layout; so `2006` is the year, `01` is the month, `Jan` is the month as a string, `02` is the day. Do not use the actual current date numbers in the format string. - -* **time\_local** Logs with the local system time rather than the default of UTC time. - -* **duration\_format** The format for durations. - - Default: `seconds`. - - May be one of: - - * `s`, `second` or `seconds` Floating-point number of seconds elapsed. - * `ms`, `milli` or `millis` Floating-point number of milliseconds elapsed. - * `ns`, `nano` or `nanos` Integer number of nanoseconds elapsed. - * `string` Using Go's built-in string format, for example `1m32.05s` or `6.31ms`. -* **level\_format** The format for levels. - - Default: `color` if the format defaulted to `console`, `lower` otherwise. - - May be one of: - - * `lower` Lowercase. - * `upper` Uppercase. - * `color` Uppercase, with ANSI colors. - -#### console - -The console encoder formats the log entry for human readability while preserving some structure. - -``` -format console -``` - -#### json - -Formats each log entry as a JSON object. - -``` -format json -``` - -#### filter - -Allows per-field filtering. - -``` -format filter { - fields { - ... - } - ... - wrap ... -} -``` - -Nested fields can be referenced by representing a layer of nesting with `>`. In other words, for an object like `{"a":{"b":0}}`, the inner field can be referenced as `a>b`. - -The following fields are fundamental to the log and cannot be filtered because they are added by the underlying logging library as special cases: `ts`, `level`, `logger`, and `msg`. - -Specifying `wrap` is optional; if omitted, a default is chosen depending on whether the current output module is [`stderr`](https://caddyserver.com/docs/caddyfile/directives/log#stderr) or [`stdout`](https://caddyserver.com/docs/caddyfile/directives/log#stdout), and is an interactive terminal, in which case [`console`](https://caddyserver.com/docs/caddyfile/directives/log#console) is chosen, otherwise [`json`](https://caddyserver.com/docs/caddyfile/directives/log#json) is chosen. - -As a shortcut, the `fields` block can be omitted and the filters can be specified directly within the `filter` block. - -These are the available filters: - -##### delete - -Marks a field to be skipped from being encoded. - -``` - delete -``` - -##### rename - -Rename the key of a log field. - -``` - rename -``` - -##### replace - -Marks a field to be replaced with the provided string at encoding time. - -``` - replace -``` - -##### ip\_mask - -Masks IP addresses in the field using a CIDR mask, i.e. the number of bits from the IP to retain, starting from the left side. If the field is an array of strings (e.g. HTTP headers), each value in the array is masked. The value may be a comma separated string of IP addresses. - -There is separate configuration for IPv4 and IPv6 addresses, since they have a different total number of bits. - -Most commonly, the fields to filter would be: - -* `request>remote_ip` for the directly connecting client -* `request>client_ip` for the parsed "real client" when [`trusted_proxies`](https://caddyserver.com/docs/caddyfile/options#trusted-proxies) is configured -* `request>headers>X-Forwarded-For` if behind a reverse proxy - -``` - ip_mask [ []] { - ipv4 - ipv6 -} -``` - -##### query - -Marks a field to have one or more actions performed, to manipulate the query part of a URL field. Most commonly, the field to filter would be `request>uri`. - -``` - query { - delete - replace - hash -} -``` - -The available actions are: - -* **delete** removes the given key from the query. - -* **replace** replaces the value of the given query key with **replacement**. Useful to insert a redaction placeholder; you'll see that the query key was in the URL, but the value is hidden. - -* **hash** replaces the value of the given query key with the first 4 bytes of the SHA-256 hash of the value, lowercase hexadecimal. Useful to obscure the value if it's sensitive, while being able to notice whether each request had a different value. - - -##### cookie - -Marks a field to have one or more actions performed, to manipulate a `Cookie` HTTP header's value. Most commonly, the field to filter would be `request>headers>Cookie`. - -``` - cookie { - delete - replace - hash -} -``` - -The available actions are: - -* **delete** removes the given cookie by name from the header. - -* **replace** replaces the value of the given cookie with **replacement**. Useful to insert a redaction placeholder; you'll see that the cookie was in the header, but the value is hidden. - -* **hash** replaces the value of the given cookie with the first 4 bytes of the SHA-256 hash of the value, lowercase hexadecimal. Useful to obscure the value if it's sensitive, while being able to notice whether each request had a different value. - - -If many actions are defined for the same cookie name, only the first action will be applied. - -##### regexp - -Marks a field to have a regular expression replacement applied at encoding time. If the field is an array of strings (e.g. HTTP headers), each value in the array has replacements applied. - -``` - regexp -``` - -The regular expression language used is RE2, included in Go. See the [RE2 syntax reference](https://github.com/google/re2/wiki/Syntax) and the [Go regexp syntax overview](https://pkg.go.dev/regexp/syntax). - -In the replacement string, capture groups can be referenced with `${group}` where `group` is either the name or number of the capture group in the expression. Capture group `0` is the full regexp match, `1` is the first capture group, `2` is the second capture group, and so on. - -##### hash - -Marks a field to be replaced with the first 4 bytes (8 hex characters) of the SHA-256 hash of the value at encoding time. If the field is a string array (e.g. HTTP headers), each value in the array is hashed. - -Useful to obscure the value if it's sensitive, while being able to notice whether each request had a different value. - -``` - hash -``` - -#### append - -Appends field(s) to all log entries. - -``` -format append { - fields { - - } - - wrap ... -} -``` - -It is most useful for adding information about the Caddy instance that is producing the log entries, possibly via an environment variable. The field values may be global placeholders (e.g. `{env.*}`), but _not_ per-request placeholders due to logs being written outside of the HTTP request context. - -Specifying `wrap` is optional; if omitted, a default is chosen depending on whether the current output module is [`stderr`](https://caddyserver.com/docs/caddyfile/directives/log#stderr) or [`stdout`](https://caddyserver.com/docs/caddyfile/directives/log#stdout), and is an interactive terminal, in which case [`console`](https://caddyserver.com/docs/caddyfile/directives/log#console) is chosen, otherwise [`json`](https://caddyserver.com/docs/caddyfile/directives/log#json) is chosen. - -The `fields` block can be omitted and the fields can be specified directly within the `append` block. - -Examples --------- - -Enable access logging to the default logger. - -In other words, by default this logs to `stderr`, but this can be changed by reconfiguring the `default` logger with the [`log` global option](https://caddyserver.com/docs/caddyfile/options#log): - -``` -example.com { - log -} -``` - -Write logs to a file (with log rolling, which is enabled by default): - -``` -example.com { - log { - output file /var/log/access.log - } -} -``` - -Customize log rolling: - -``` -example.com { - log { - output file /var/log/access.log { - roll_size 1gb - roll_keep 5 - roll_keep_for 720h - } - } -} -``` - -Delete the `User-Agent` request header from the logs: - -``` -example.com { - log { - format filter { - request>headers>User-Agent delete - } - } -} -``` - -Redact multiple sensitive cookies. (Note that some sensitive headers are logged with empty values by default; see the [`log_credentials` global option](https://caddyserver.com/docs/caddyfile/options#log-credentials) to enable logging `Cookie` header values): - -``` -example.com { - log { - format filter { - request>headers>Cookie cookie { - replace session REDACTED - delete secret - } - } - } -} -``` - -Mask the remote address from the request, keeping the first 16 bits (i.e. 255.255.0.0) for IPv4 addresses, and the first 32 bits from IPv6 addresses. - -Note that as of Caddy v2.7, both `remote_ip` and `client_ip` are logged, where `client_ip` is the "real IP" when [`trusted_proxies`](https://caddyserver.com/docs/caddyfile/options#trusted-proxies) is configured: - -``` -example.com { - log { - format filter { - request>remote_ip ip_mask 16 32 - request>client_ip ip_mask 16 32 - } - } -} -``` - -To append a server ID from an environment variable to all log entries, and chain it with a `filter` to delete a header: - -``` -example.com { - log { - format append { - server_id {env.SERVER_ID} - wrap filter { - request>headers>Cookie delete - } - } - } -} -``` - -To write separate log files for each subdomain in a [wildcard site block](https://caddyserver.com/docs/caddyfile/patterns#wildcard-certificates), by overriding `hostnames` for each logger. This uses a [snippet](https://caddyserver.com/docs/caddyfile/concepts#snippets) to avoid repetition: - -``` -(subdomain-log) { - log { - hostnames {args[0]} - output file /var/log/{args[0]}.log - } -} - -*.example.com { - import subdomain-log foo.example.com - @foo host foo.example.com - handle @foo { - respond "foo" - } - - import subdomain-log bar.example.com - @bar host bar.example.com - handle @bar { - respond "bar" - } -} -``` - -To write the access logs for a particular subdomain to two different files, with different formats (one with [`transform-encoder` plugin ![Image 12](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddyserver/transform-encoder) and the other with [`json`](https://caddyserver.com/docs/caddyfile/directives/log#json)). - -This works by overriding the logger name as `foo` in the site block, then including the access logs produced by that logger in the two loggers in global options with `include http.log.access.foo`: - -``` -{ - log access-formatted { - include http.log.access.foo - output file /var/log/access-foo.log - format transform "{common_log}" - } - - log access-json { - include http.log.access.foo - output file /var/log/access-foo.json - format json - } -} - -foo.example.com { - log foo -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/log_append.md b/docs/caddy/docs/docs/caddyfile/directives/log_append.md deleted file mode 100644 index 6129eb6..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/log_append.md +++ /dev/null @@ -1,123 +0,0 @@ -Title: log_append (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/log_append - -Markdown Content: -log\_append (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -log\_append -=========== - -Appends a field to the access log for the current request. - -This should be used alongside the [`log` directive](https://caddyserver.com/docs/caddyfile/directives/log) which is required to enable access logging in the first place. - -The value may be a static string, or a [placeholder](https://caddyserver.com/docs/caddyfile/concepts#placeholders) which will be replaced with the value of the placeholder at the time of the request. - -Syntax ------- - -``` -log_append [] -``` - -Examples --------- - -Display in the logs the area of the site that the request is being served from, either `static` or `dynamic`: - -``` -example.com { - log - - handle /static* { - log_append area "static" - respond "Static response!" - } - - handle { - log_append area "dynamic" - reverse_proxy localhost:9000 - } -} -``` - -Display in the logs, which reverse proxy upstream was effectively used (either `node1`, `node2` or `node3`) and the time spent proxying to the upstream in milliseconds as well as how long it took the proxy upstream to write the response header: - -``` -example.com { - log - - handle { - reverse_proxy node1:80 node2:80 node3:80 { - lb_policy random_choose 2 - } - log_append upstream_host {rp.upstream.host} - log_append upstream_duration_ms {rp.upstream.duration_ms} - log_append upstream_latency_ms {rp.upstream.latency_ms} - } -} -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/log_name.md b/docs/caddy/docs/docs/caddyfile/directives/log_name.md deleted file mode 100644 index c28cc3a..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/log_name.md +++ /dev/null @@ -1,116 +0,0 @@ -Title: log_name (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/log_name - -Markdown Content: -log\_name (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -log\_name -========= - -Overrides the logger name to use for a request when writing access logs with the [`log` directive](https://caddyserver.com/docs/caddyfile/directives/log). - -This directive is useful when you want to log requests to different files based on some condition, such as the request path or method. - -More than one logger name can be specified, such that the request's log gets pushed to more than one matching logger. - -This is often paired with the `log` directive's [`no_hostname`](https://caddyserver.com/docs/caddyfile/directives/log#no_hostname) option, which prevents the logger from being associated with any of the site block's hostnames, so that only requests that set `log_name` will push logs to that logger. - -Syntax ------- - -``` -log_name [] -``` - -Examples --------- - -You may want to log requests to different files, for example you might want to log health checks to a separate file from the main access logs. - -Using `no_hostname` in a `log` prevents the logger from being associated with any of the site block's hostnames (i.e. `localhost` here), so that only requests that have `log_name` set to that logger's name will receive logs. - -``` -localhost { - log { - output file ./caddy.access.log - } - - log health_check_log { - output file ./caddy.access.health.log - no_hostname - } - - handle /healthz* { - log_name health_check_log - respond "Healthy" - } - - handle { - respond "Hello World" - } -} -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/log_skip.md b/docs/caddy/docs/docs/caddyfile/directives/log_skip.md deleted file mode 100644 index d657095..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/log_skip.md +++ /dev/null @@ -1,118 +0,0 @@ -Title: log_skip (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/log_skip - -Markdown Content: -log\_skip (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -log\_skip -========= - -Skips access logging for matched requests. - -This should be used alongside the [`log` directive](https://caddyserver.com/docs/caddyfile/directives/log) to skip logging requests that are not relevant for your needs. - -Prior to v2.8.0, this directive was named `skip_log`, but was renamed for consistency with other directives. - -Syntax ------- - -``` -log_skip [] -``` - -Examples --------- - -Skip access logging for static files stored in a subpath: - -``` -example.com { - root * /srv - - log - log_skip /static* - - file_server -} -``` - -Skip access logging for requests matching a pattern; in this case, for files with particular extensions: - -``` -@skip path_regexp \.(js|css|png|jpe?g|gif|ico|woff|otf|ttf|eot|svg|txt|pdf|docx?|xlsx?)$ -log_skip @skip -``` - -The matcher is not needed if it's found within a route which is already within a matcher. For example with a handle for a file server for a particular subpath: - -``` -handle_path /static* { - root * /srv/static - log_skip - file_server -} -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/map.md b/docs/caddy/docs/docs/caddyfile/directives/map.md deleted file mode 100644 index 9dc4c19..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/map.md +++ /dev/null @@ -1,65 +0,0 @@ -Title: map (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/map - -Markdown Content: -Sets values of custom placeholders switched on an input value. - -It compares the source value against the input side of the map, and for one that matches, it applies the output value(s) to each destination. Destinations become placeholder names. Default output values may also be specified for each destination. - -Mapped placeholders are not evaluated until they are used, so even for very large mappings, this directive is quite efficient. - -Syntax ------- - -``` -map [] { - [~] - default -} -``` - -* **** is the input value to switch on. Usually a placeholder. - -* **** are the placeholders to create that hold the output values. - -* **** is the input value to match. If prefixed with `~`, it is treated as a regular expression. - -* **** is one or more output values to store in the associated placeholder. The first output is written to the first destination, the second output to the second destination, etc. - - As a special case, the Caddyfile parser treats outputs that are a literal hyphen (`-`) as null/nil values. This is useful if you want to fall back to a default value for that particular output in the case of the given input, but want to use non-default values for other outputs. - - The outputs will be type converted if possible; `true` and `false` will be converted to boolean types, and numeric values will be converted to integer or float accordingly. To avoid this conversion, you may wrap the output with [quotes](https://caddyserver.com/docs/caddyfile/concepts#tokens-and-quotes) and they will stay strings. - - The number of outputs for each mapping must not exceed the number of destinations; however, for convenience, there may be fewer outputs than destinations, and any missing outputs will be filled in implicitly. - - If a regular expression was used as the input, then the capture groups can be referenced with `${group}` where `group` is either the name or number of the capture group in the expression. Capture group `0` is the full regexp match, `1` is the first capture group, `2` is the second capture group, and so on. - -* **** specifies the output values to store if no inputs are matched. - - -Examples --------- - -The following example demonstrates most aspects of this directive: - -``` -map {host} {my_placeholder} {magic_number} { - example.com "some value" 3 - foo.example.com "another value" - ~(.*)\.example\.com$ "${1} subdomain" 5 - - ~.*\.net$ - 7 - ~.*\.xyz$ - 15 - - default "unknown domain" 42 -} -``` - -This directive switches on the value of `{host}`, i.e. the domain name of the request. - -* If the request is for `example.com`, set `{my_placeholder}` to `some value`, and `{magic_number}` to `3`. -* Else, if the request is for `foo.example.com`, set `{my_placeholder}` to `another value`, and let `{magic_number}` default to `42`. -* Else, if the request is for any subdomain of `example.com`, set `{my_placeholder}` to a string containing the value of the first regexp capture group, i.e the entire subdomain, and set `{magic_number}` to 5. -* Else, if the request is for any host that ends in `.net` or `.xyz`, set only `{magic_number}` to `7` or `15`, respectively. Leave `{my_placeholder}` unset. -* Else (for all other hosts), the default values will apply: `{my_placeholder}` will be set to `unknown domain` and `{magic_number}` will be set to `42`. diff --git a/docs/caddy/docs/docs/caddyfile/directives/method.md b/docs/caddy/docs/docs/caddyfile/directives/method.md deleted file mode 100644 index 7700666..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/method.md +++ /dev/null @@ -1,92 +0,0 @@ -Title: method (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/method - -Markdown Content: -method (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -method -====== - -Changes the HTTP method on the request. - -Syntax ------- - -``` -method [] -``` - -* **** is the HTTP method to change the request to. - -Examples --------- - -Change the method for all requests under `/api` to `POST`: - -``` -method /api* POST -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/metrics.md b/docs/caddy/docs/docs/caddyfile/directives/metrics.md deleted file mode 100644 index f0320ee..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/metrics.md +++ /dev/null @@ -1,122 +0,0 @@ -Title: metrics (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/metrics - -Markdown Content: -metrics (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -metrics -======= - -Configures a Prometheus metrics exposition endpoint so the gathered metrics can be exposed for scraping. **Metrics must be [turned on in your global options](https://caddyserver.com/docs/caddyfile/options#metrics) first.** - -Note that a `/metrics` endpoint is also attached to the [admin API](https://caddyserver.com/docs/api), which is not configurable, and is not available when the admin API is disabled. - -This endpoint will return metrics in the [Prometheus exposition format](https://prometheus.io/docs/instrumenting/exposition_formats/#text-based-format) or, if negotiated, in the [OpenMetrics exposition format](https://pkg.go.dev/github.com/prometheus/client_golang@v1.9.0/prometheus/promhttp#HandlerOpts) (`application/openmetrics-text`). - -See also [Monitoring Caddy with Prometheus metrics](https://caddyserver.com/docs/metrics). - -Syntax ------- - -``` -metrics [] { - disable_openmetrics -} -``` - -* **disable\_openmetrics** disables OpenMetrics negotiation. Usually not necessary except when needing to work around parsing bugs. - -Examples --------- - -Expose metrics at the default `/metrics` path: - -``` -metrics /metrics -``` - -Expose metrics at another path: - -``` -metrics /foo/bar/baz -``` - -Serve metrics at a separate subdomain: - -``` -metrics.example.com { - metrics -} -``` - -Disable OpenMetrics negotiation: - -``` -metrics /metrics { - disable_openmetrics -} -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/php_fastcgi.md b/docs/caddy/docs/docs/caddyfile/directives/php_fastcgi.md deleted file mode 100644 index 541491c..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/php_fastcgi.md +++ /dev/null @@ -1,181 +0,0 @@ -Title: php_fastcgi (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/php_fastcgi - -Markdown Content: -An opinionated directive that proxies requests to a PHP FastCGI server such as php-fpm. - -* [Syntax](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#syntax) -* [Expanded Form](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#expanded-form) - * [Explanation](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#explanation) -* [Examples](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#examples) - -Caddy's [`reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy) is capable of serving any FastCGI application, but this directive is tailored specifically for PHP apps. This directive is a convenient shortcut, replacing a [longer configuration](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#expanded-form). - -It expects that any `index.php` at the site root acts as a router. If that is not desirable, either reconfigure the [`try_files` subdirective](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#try_files) to modify the default rewrite behaviour, or take the [expanded form](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#expanded-form) as a basis and customize it to your needs. - -In addition to the subdirectives listed below, this directive also supports all the subdirectives of [`reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#syntax). For example, you may enable load balancing and health checks. - -**Most modern PHP apps work fine without extra subdirectives or customization.** Subdirectives are usually only used in certain edge cases or with legacy PHP apps. - -Syntax ------- - -``` -php_fastcgi [] { - root - split - index |off - try_files - env [ ] - resolve_root_symlink - capture_stderr - dial_timeout - read_timeout - write_timeout - - -} -``` - -* **** are the [addresses](https://caddyserver.com/docs/conventions#network-addresses) of the FastCGI servers. Typically, either a TCP socket, or a unix socket file. - -* **root** sets the root folder to the site. It's recommended to always use the [`root` directive](https://caddyserver.com/docs/caddyfile/directives/root) in conjunction with `php_fastcgi`, but overriding this can be useful when your PHP-FPM upstream is using a different root than Caddy (see [an example](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#docker)). Defaults to the value of the [`root` directive](https://caddyserver.com/docs/caddyfile/directives/root) if used, otherwise defaults to Caddy's current working directory. - -* **split** sets the substrings for splitting the URI into two parts. The first matching substring will be used to split the "path info" from the path. The first piece is suffixed with the matching substring and will be assumed as the actual resource (CGI script) name. The second piece will be set to PATH\_INFO for the CGI script to use. Default: `.php` - -* **index** specifies the filename to treat as the directory index file. This affects the file matcher in the [expanded form](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#expanded-form). Default: `index.php`. Can be set to `off` to disable rewrite fallback to `index.php` when a matching file is not found. - -* **try\_files** specifies an override for the default try-files rewrite. See the [`try_files` directive](https://caddyserver.com/docs/caddyfile/directives/try_files) for details. Default: `{path} {path}/index.php index.php`. - -* **env** sets an extra environment variable to the given value. Can be specified more than once for multiple environment variables. By default, all the relevant FastCGI environment variables are already set (including HTTP headers) but you may add or override variables as needed. - -* **resolve\_root\_symlink** when the [`root`](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#root) directory is a symbolic link (symlink), this enables resolving it to its actual value. This is sometimes used as a deployment strategy, by simply swapping the symlink to point to the new version in another directory. Disabled by default to avoid repeated system calls. - -* **capture\_stderr** enables capturing and logging of any messages sent by the upstream fastcgi server on `stderr`. Logging is done at `WARN` level by default. If the response has a `4xx` or `5xx` status, then the `ERROR` level will be used instead. By default, `stderr` is ignored. - -* **dial\_timeout** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to wait when connecting to the upstream socket. Default: `3s`. - -* **read\_timeout** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to wait when reading from the FastCGI upstream. Default: no timeout. - -* **write\_timeout** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to wait when sending to the FastCGI upstream. Default: no timeout. - - -Since this directive is an opinionated wrapper over a reverse proxy, you can use any of [`reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#syntax)'s subdirectives to customize it. - -Expanded form -------------- - -The `php_fastcgi` directive (without subdirectives) is the same as the following configuration. Most modern PHP apps work well with this preset. If yours does not, feel free to borrow from this and customize it as needed instead of using the `php_fastcgi` shortcut. - -``` -route { - # Add trailing slash for directory requests - @canonicalPath { - file {path}/index.php - not path */ - } - redir @canonicalPath {http.request.orig_uri.path}/ 308 - - # If the requested file does not exist, try index files - @indexFiles file { - try_files {path} {path}/index.php index.php - split_path .php - } - rewrite @indexFiles {file_match.relative} - - # Proxy PHP files to the FastCGI responder - @phpFiles path *.php - reverse_proxy @phpFiles { - transport fastcgi { - split .php - } - } -} -``` - -### Explanation - -* The first section deals with canonicalizing the request path. The goal is to ensure that requests that target a directory on disk actually have the trailing slash `/` added to the request path, so that only a single URL is valid for requests to that directory. - - This is performed by using a request matcher that matches only requests that _don't_ end in a slash, and which map to a directory on disk which contains an `index.php` file, and if it matches, performs a HTTP 308 redirect with the trailing slash appended. So for example, it would redirect a request with path `/foo` to `/foo/` (appending a `/`, to canonicalize the path to the directory), if `/foo/index.php` exists on disk. - -* The next section deals with performing path rewrites based on whether a matching file exists on disk. This also has the side-effect of remembering the part of the path after `.php` (if the request path had `.php` in it). This is important for Caddy to correctly set the FastCGI environment variables. - - * First, it checks if `{path}` is a file that exists on disk. If so, it rewrites to that path. This essentially short-circuits the rest, and makes sure that requests to files that _do exist_ on disk don't get otherwise rewritten (see next steps below). So if for example you have a `/js/app.js` file on disk, then the request to that path will be kept the same. - - * Second, it checks if `{path}/index.php` is a file that exists on disk. If so, it rewrites to that path. For requests to a directory like `/foo/` it'll then look for `/foo//index.php` (which gets normalized to `/foo/index.php`), and rewrite the request to that path if it exists. This behaviour is sometimes useful if you're running another PHP app in a subdirectory of your webroot. - - * Lastly, it'll rewrite to `index.php` if that file exists (it almost always should for modern PHP apps). This allows your PHP app to handle any request for paths that _don't_ map to files on disk, by using the `index.php` script as its entrypoint. - -* And finally, the last section is what actually proxies the request to your PHP FastCGI (or PHP-FPM) service to actually run your PHP code. The request matcher will only match requests which end in `.php`, so, any file that _isn't_ a PHP script and that _does_ exist on disk, will _not_ be handled by this directive, and will fall through. - - -The `php_fastcgi` directive is not usually enough on its own. It should almost always be paired with the [`root` directive](https://caddyserver.com/docs/caddyfile/directives/root) to set the location of your files on disk (for modern PHP apps, this may be `/var/www/html/public`, where the `public` directory is what contains your `index.php`), and the [`file_server` directive](https://caddyserver.com/docs/caddyfile/directives/file_server) to serve your static files (your JS, CSS, images, etc) which aren't otherwise handled by this directive and fell through. - -Examples --------- - -Proxy all PHP requests to a FastCGI responder listening at `127.0.0.1:9000`: - -``` -php_fastcgi 127.0.0.1:9000 -``` - -Same, but only for requests under `/blog/`: - -``` -php_fastcgi /blog/* localhost:9000 -``` - -When using PHP-FPM listening via a unix socket: - -``` -php_fastcgi unix//run/php/php8.2-fpm.sock -``` - -The [`root` directive](https://caddyserver.com/docs/caddyfile/directives/root) is almost always used to specify the directory containing the PHP scripts, and the [`file_server` directive](https://caddyserver.com/docs/caddyfile/directives/file_server) to serve static files: - -``` -example.com { - root * /var/www/html/public - php_fastcgi 127.0.0.1:9000 - file_server -} -``` - -When serving multiple PHP apps with Caddy, your webroot for each app must be different so that Caddy can read and serve your static files separately and detect if PHP files exist. - -If you're using Docker, often your PHP-FPM containers will have the files mounted at the same root. In that case, the solution is to mount the files to your Caddy container in different directories, then use the [`root` subdirective](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi#root) to set the root for each container: - -``` -app1.example.com { - root * /srv/app1/public - php_fastcgi app1:9000 { - root /var/www/html/public - } - file_server -} - -app2.example.com { - root * /srv/app2/public - php_fastcgi app2:9000 { - root /var/www/html/public - } - file_server -} -``` - -For a PHP site which does not use `index.php` as an entrypoint, you may fallback to emitting a `404` error instead. The error may be caught and handled with the [`handle_errors` directive](https://caddyserver.com/docs/caddyfile/directives/handle_errors): - -``` -example.com { - php_fastcgi localhost:9000 { - try_files {path} {path}/index.php =404 - } - - handle_errors { - respond "{err.status_code} {err.status_text}" - } -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/push.md b/docs/caddy/docs/docs/caddyfile/directives/push.md deleted file mode 100644 index 7011457..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/push.md +++ /dev/null @@ -1,64 +0,0 @@ -Title: push (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/push - -Markdown Content: -Configures the server to pre-emptively send resources to the client using HTTP/2 server push. - -Resources can be linked for server push by specifying the Link header(s) of the response. This directive will automatically push resources described by upstream Link headers in these formats: - -* `; as=script` -* `; as=script,; as=style` -* `; nopush` -* `;;...` - -where `` begins with a forward slash `/` (i.e. is a URI path with the same host). Only same-host resources can be pushed. If a linked resource is external or if it has the `nopush` attribute, it will not be pushed. - -By default, push requests will include some headers deemed safe to copy from the original request: - -* Accept-Encoding -* Accept-Language -* Accept -* Cache-Control -* User-Agent - -as it is assumed many requests would fail without these headers; these do not need to be configured manually. - -Push requests are virtualized internally, so they are very lightweight. - -Syntax ------- - -``` -push [] [] { - [GET|HEAD] - headers { - [+] [ []] - - - } -} -``` - -* **** is the target URI path to push. If used within the block, may optionally be preceeded by the method (GET or POST; GET is default). -* **** manipulates the headers of the push request using the same syntax as the [`header` directive](https://caddyserver.com/docs/caddyfile/directives/header). Some headers are carried over by default and do not need to be explicitly configured (see above). - -Examples --------- - -Push any resources described by `Link` headers in the response: - -``` -push -``` - -Same, but also push `/resources/style.css` for all requests: - -``` -push * /resources/style.css -``` - -Push `/foo.jpg` only when `/foo.html` is requested by the client: - -``` -push /foo.html /foo.jpg -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/redir.md b/docs/caddy/docs/docs/caddyfile/directives/redir.md deleted file mode 100644 index ff22505..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/redir.md +++ /dev/null @@ -1,134 +0,0 @@ -Title: redir (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/redir - -Markdown Content: -redir (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 8: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 9](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 10](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 11](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -redir -===== - -Issues an HTTP redirect to the client. - -This directive implies that a matched request is to be rejected as-is, and the client should try again at a different URL. For that reason, its [directive order](https://caddyserver.com/docs/caddyfile/directives#directive-order) is very early. - -Syntax ------- - -``` -redir [] [] -``` - -* **** is the target location. Becomes the response's [`Location` header ![Image 12](https://caddyserver.com/old/resources/images/external-link.svg)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Location) . - -* **** is the HTTP status code to use for the redirect. Can be: - - * A positive integer in the `3xx` range, or `401` - - * `temporary` for a temporary redirect (`302`, this is the default) - - * `permanent` for a permanent redirect (`301`) - - * `html` to use an HTML document to perform the redirect (useful for redirecting browsers but not API clients) - - * A placeholder with a status code value - - -Examples --------- - -Redirect all requests to `https://example.com`: - -``` -www.example.com { - redir https://example.com -} -``` - -Same, but preserve the existing URI by appending the [`{uri}` placeholder](https://caddyserver.com/docs/caddyfile/concepts#placeholders): - -``` -www.example.com { - redir https://example.com{uri} -} -``` - -Same, but permanent: - -``` -www.example.com { - redir https://example.com{uri} permanent -} -``` - -Redirect your old `/about-us` page to your new `/about` page: - -``` -example.com { - redir /about-us /about - reverse_proxy localhost:9000 -} -``` - -![Image 13: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/request_body.md b/docs/caddy/docs/docs/caddyfile/directives/request_body.md deleted file mode 100644 index 16ef32b..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/request_body.md +++ /dev/null @@ -1,99 +0,0 @@ -Title: request_body (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/request_body - -Markdown Content: -request\_body (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -request\_body -============= - -Manipulates or sets restrictions on the bodies of incoming requests. - -Syntax ------- - -``` -request_body [] { - max_size -} -``` - -* **max\_size** is the maximum size in bytes allowed for the request body. It accepts all size values supported by [go-humanize](https://pkg.go.dev/github.com/dustin/go-humanize#pkg-constants). Reads of more bytes will return an error with HTTP status `413`. - -Examples --------- - -Limit request body sizes to 10 megabytes: - -``` -example.com { - request_body { - max_size 10MB - } - reverse_proxy localhost:8080 -} -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/request_header.md b/docs/caddy/docs/docs/caddyfile/directives/request_header.md deleted file mode 100644 index 4ab510a..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/request_header.md +++ /dev/null @@ -1,115 +0,0 @@ -Title: request_header (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/request_header - -Markdown Content: -request\_header (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -request\_header -=============== - -Manipulates HTTP header fields on the request. It can set, add, and delete header values, or perform replacements using regular expressions. - -If you intend to manipulate headers for proxying, use the [`header_up` subdirective](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#header_up) of `reverse_proxy` instead, as those manipulations are proxy-aware. - -To manipulate HTTP response headers, you may use the [`header`](https://caddyserver.com/docs/caddyfile/directives/header) directive. - -Syntax ------- - -``` -request_header [] [[+|-] [|] []] -``` - -* **** is the name of the header field. - - With no prefix, the field is set (overwritten). - - Prefix with `+` to add the field instead of overwriting (setting) the field if it already exists; header fields can appear more than once in a request. - - Prefix with `-` to delete the field. The field may use prefix or suffix `*` wildcards to delete all matching fields. - -* **** is the header field value, if adding or setting a field. - -* **** is the substring or regular expression to search for. - -* **** is the replacement value; required if performing a search-and-replace. - - -Examples --------- - -Remove the Referer header from the request: - -``` -request_header -Referer -``` - -Delete all headers containing an underscore from the request: - -``` -request_header -*_* -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/respond.md b/docs/caddy/docs/docs/caddyfile/directives/respond.md deleted file mode 100644 index fb20dec..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/respond.md +++ /dev/null @@ -1,69 +0,0 @@ -Title: respond (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/respond - -Markdown Content: -Writes a hard-coded/static response to the client. - -If the body is non-empty, this directive sets the `Content-Type` header if it is not already set. The default value is `text/plain; utf-8` unless the body is a valid JSON object or array, in which case it is set to `application/json`. For all other types of content, set the proper Content-Type explicitly using the [`header` directive](https://caddyserver.com/docs/caddyfile/directives/header). - -Syntax ------- - -``` -respond [] | [] { - body - close -} -``` - -* **** is the HTTP status code to write. - - If `103` (Early Hints), the response will be written without a body and the handler chain will continue. (HTTP `1xx` responses are informational, not final.) - - Default: `200` - -* **** is the response body to write. - -* **body** is an alternate way to provide a body; convenient if it is multiple lines. - -* **close** will close the client's connection to the server after writing the response. - - -To clarify, the first non-matcher argument can be either a 3-digit status code or a response body string. If it is a body, the next argument can be the status code. - -Examples --------- - -Write an empty 200 status with an empty body to all health checks, and a simple response body to all other requests: - -``` -example.com { - respond /health-check 200 - respond "Hello, world!" -} -``` - -Write an error response and close the connection: - -``` -example.com { - respond /secret/* "Access denied" 403 { - close - } -} -``` - -Write an HTML response, using [heredoc syntax](https://caddyserver.com/docs/caddyfile/concepts#heredocs) to control whitespace, and also setting the `Content-Type` header to match the response body: - -``` -example.com { - header Content-Type text/html - respond < - Foo - Foo - - HTML 200 -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/reverse_proxy.md b/docs/caddy/docs/docs/caddyfile/directives/reverse_proxy.md deleted file mode 100644 index f1d0f6c..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/reverse_proxy.md +++ /dev/null @@ -1,785 +0,0 @@ -Title: reverse_proxy (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/reverse_proxy - -Markdown Content: -Proxies requests to one or more backends with configurable transport, load balancing, health checking, request manipulation, and buffering options. - -* [Syntax](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#syntax) -* [Upstreams](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#upstreams) - * [Upstream addresses](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#upstream-addresses) - * [Dynamic upstreams](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#dynamic-upstreams) - * [SRV](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#srv) - * [A/AAAA](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#aaaaa) - * [Multi](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#multi) -* [Load balancing](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#load-balancing) - * [Active health checks](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#active-health-checks) - * [Passive health checks](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#passive-health-checks) - * [Events](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#events) -* [Streaming](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#streaming) -* [Headers](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#headers) -* [Rewrites](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#rewrites) -* [Transports](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#transports) - * [The `http` transport](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#the-http-transport) - * [The `fastcgi` transport](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#the-fastcgi-transport) -* [Intercepting responses](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#intercepting-responses) -* [Examples](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#examples) - -Syntax ------- - -``` -reverse_proxy [] [] { - # backends - to - dynamic ... - - # load balancing - lb_policy [] - lb_retries - lb_try_duration - lb_try_interval - lb_retry_match - - # active health checking - health_uri - health_port - health_interval - health_passes - health_fails - health_timeout - health_status - health_body - health_follow_redirects - health_headers { - [] - } - - # passive health checking - fail_duration - max_fails - unhealthy_status - unhealthy_latency - unhealthy_request_count - - # streaming - flush_interval - request_buffers - response_buffers - stream_timeout - stream_close_delay - - # request/header manipulation - trusted_proxies [private_ranges] - header_up [+|-] [ []] - header_down [+|-] [ []] - method - rewrite - - # round trip - transport { - ... - } - - # optionally intercept responses from upstream - @name { - status - header [] - } - replace_status [] - handle_response [] { - - - # special directives only available in handle_response - copy_response [] [] { - status - } - copy_response_headers [] { - include - exclude - } - } -} -``` - -Upstreams ---------- - -* **** is a list of upstreams (backends) to which to proxy. -* **to** is an alternate way to specify the list of upstreams, one (or more) per line. -* **dynamic** configures a _dynamic upstreams_ module. This allows getting the list of upstreams dynamically for every request. See [dynamic upstreams](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#dynamic-upstreams) below for a description of standard dynamic upstream modules. Dynamic upstreams are retrieved at every proxy loop iteration (i.e. potentially multiple times per request if load balancing retries are enabled) and will be preferred over static upstreams. If an error occurs, the proxy will fall back to using any statically-configured upstreams. - -### Upstream addresses - -Static upstream addresses can take the form of a URL that contains only scheme and host/port, or a conventional [Caddy network address](https://caddyserver.com/docs/conventions#network-addresses). Valid examples: - -* `localhost:4000` -* `127.0.0.1:4000` -* `[::1]:4000` -* `http://localhost:4000` -* `https://example.com` -* `h2c://127.0.0.1` -* `example.com` -* `unix//var/php.sock` -* `unix+h2c//var/grpc.sock` -* `localhost:8001-8006` -* `[fe80::ea9f:80ff:fe46:cbfd%eth0]:443` - -By default, connections are made to the upstream over plaintext HTTP. When using the URL form, a scheme can be used to set some [`transport`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#transports) defaults as a shorthand. - -* Using `https://` as the scheme will use the [`http` transport](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#the-http-transport) with [`tls`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#tls) enabled. - - Additionally, you may need to override the `Host` header such that it matches the TLS SNI value, which is used by servers for routing and certificate selection. See the [HTTPS](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#https) section below for more details. - -* Using `h2c://` as the scheme will use the [`http` transport](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#the-http-transport) with [HTTP versions](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#versions) set to allow cleartext HTTP/2 connections. - -* Using `http://` as the scheme is identical to having omitted the scheme, since HTTP is already the default. This syntax is included for symmetry with the other scheme shortcuts. - - -Schemes cannot be mixed, since they modify the common transport configuration (a TLS-enabled transport cannot carry both HTTPS and plaintext HTTP). Any explicit transport configuration will not be overwritten, and omitting schemes or using other ports will not assume a particular transport. - -When using IPv6 with a zone (e.g. link-local addresses with a specific network interface), a scheme **cannot** be used as a shortcut because the `%` will result in a URL-parse error; configure the transport explicitly instead. - -When using the [network address](https://caddyserver.com/docs/conventions#network-addresses) form, the network type is specified as a prefix to the upstream address. This cannot be combined with a URL scheme. As a special case, `unix+h2c/` is supported as a shortcut for the `unix/` network plus the same effects as the `h2c://` scheme. Port ranges are supported as a shortcut, which expands to multiple upstreams with the same host. - -Upstream addresses **cannot** contain paths or query strings, as that would imply simultaneous rewriting the request while proxying, which behavior is not defined or supported. You may use the [`rewrite`](https://caddyserver.com/docs/caddyfile/directives/rewrite) directive should you need this. - -If the address is not a URL (i.e. does not have a scheme), then [placeholders](https://caddyserver.com/docs/caddyfile/concepts#placeholders) can be used, but this makes the upstream _dynamically static_, meaning that potentially many different backends act as a single, static upstream in terms of health checks and load balancing. We recommend using a [dynamic upstreams](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#dynamic-upstreams) module instead, if possible. When using placeholders, a port **must** be included (either by the placeholder replacement, or as a static suffix to the address). - -### Dynamic upstreams - -Caddy's reverse proxy comes standard with some dynamic upstream modules. Note that using dynamic upstreams has implications for load balancing and health checks, depending on specific policy configuration: active health checks do not run for dynamic upstreams; and load balancing and passive health checks are best served if the list of upstreams is relatively stable and consistent (especially with round-robin). Ideally, dynamic upstream modules only return healthy, usable backends. - -#### SRV - -Retrieves upstreams from SRV DNS records. - -``` - dynamic srv [] { - service - proto - name - refresh - resolvers - dial_timeout - dial_fallback_delay - } -``` - -* **** is the full domain name of the record to look up (i.e. `_service._proto.name`). -* **service** is the service component of the full name. -* **proto** is the protocol component of the full name. Either `tcp` or `udp`. -* **name** is the name component. Or, if `service` and `proto` are empty, the full domain name to query. -* **refresh** is how often to refresh cached results. Default: `1m` -* **resolvers** is the list of DNS resolvers to override system resolvers. -* **dial\_timeout** is the timeout for dialing the query. -* **dial\_fallback\_delay** is how long to wait before spawning an RFC 6555 Fast Fallback connection. Default: `300ms` - -#### A/AAAA - -Retrieves upstreams from A/AAAA DNS records. - -``` - dynamic a [ ] { - name - port - refresh - resolvers - dial_timeout - dial_fallback_delay - versions ipv4|ipv6 - } -``` - -* **name** is the domain name to query. -* **port** is the port to use for the backend. -* **refresh** is how often to refresh cached results. Default: `1m` -* **resolvers** is the list of DNS resolvers to override system resolvers. -* **dial\_timeout** is the timeout for dialing the query. -* **dial\_fallback\_delay** is how long to wait before spawning an RFC 6555 Fast Fallback connection. Default: `300ms` -* **versions** is the list of IP versions to resolve for. Default: `ipv4 ipv6` which correspond to both A and AAAA records respectively. - -#### Multi - -Append the results of multiple dynamic upstream modules. Useful if you want redundant sources of upstreams, for example: a primary cluster of SRVs backed up by a secondary cluster of SRVs. - -``` - dynamic multi { - [...] - } -``` - -* **** is the name of the module for the dynamic upstreams, followed by its configuration. More than one may be specified. - -Load balancing --------------- - -Load balancing is typically used to split traffic between multiple upstreams. By enabling retries, it can also be used with one or more upstreams, to hold requests until a healthy upstream can be selected (e.g. to wait and mitigate errors while rebooting or redeploying an upstream). - -This is enabled by default, with the `random` policy. Retries are disabled by default. - -* **lb\_policy** is the name of the load balancing policy, along with any options. Default: `random`. - - For policies that involve hashing, the [highest-random-weight (HRW)](https://en.wikipedia.org/wiki/Rendezvous_hashing) algorithm is used to ensure that a client or request with the same hash key is mapped to the same upstream, even if the list of upstreams change. - - Some policies support fallback as an option, if noted, in which case they take a [block](https://caddyserver.com/docs/caddyfile/concepts#blocks) with `fallback ` which takes another load balancing policy. For those policies, the default fallback is `random`. Configuring a fallback allows using a secondary policy if the primary does not select one, allowing for powerful combinations. Fallbacks can be nested multiple times if desired. - - For example, `header` can be used as primary to allow for developers to choose a specific upstream, with a fallback of `first` for all other connections to implement primary/secondary failover. - - ``` - lb_policy header X-Upstream { - fallback first - } - ``` - - * `random` randomly chooses an upstream - - * `random_choose ` selects two or more upstreams randomly, then chooses one with least load (`n` is usually 2) - - * `first` chooses the first available upstream, from the order they are defined in the config, allowing for primary/secondary failover; remember to enable health checks along with this, otherwise failover will not occur - - * `round_robin` iterates each upstream in turn - - * `weighted_round_robin ` iterates each upstream in turn, respecting the weights provided. The amount of weight arguments should match the amount of upstreams configured. Weights should be non-zero positive integers. For example with two upstreams and weights `5 1`, the first upstream would be selected 5 times in a row before the second upstream is selected once, then the cycle repeats. - - * `least_conn` choose upstream with fewest number of current requests; if more than one host has the least number of requests, then one of those hosts is chosen at random - - * `ip_hash` maps the remote IP (the immediate peer) to a sticky upstream - - * `client_ip_hash` maps the client IP to a sticky upstream; this is best paired with the [`servers > trusted_proxies` global option](https://caddyserver.com/docs/caddyfile/options#trusted-proxies) which enables real client IP parsing, otherwise it behaves the same as `ip_hash` - - * `uri_hash` maps the request URI (path and query) to a sticky upstream - - * `query [key]` maps a request query to a sticky upstream, by hashing the query value; if the specified key is not present, the fallback policy will be used to select an upstream (`random` by default) - - * `header [field]` maps a request header to a sticky upstream, by hashing the header value; if the specified header field is not present, the fallback policy will be used to select an upstream (`random` by default) - - * `cookie [ []]` on the first request from a client (when there's no cookie), the fallback policy will be used to select an upstream (`random` by default), and a `Set-Cookie` header is added to the response (default cookie name is `lb` if not specified). The cookie value is the upstream dial address of the chosen upstream, hashed with HMAC-SHA256 (using `` as the shared secret, empty string if not specified). - - On subsequent requests where the cookie is present, the cookie value will be mapped to the same upstream if it's available; if not available or not found, a new upstream is selected with the fallback policy, and the cookie is added to the response. - - If you wish to use a particular upstream for debugging purposes, you may hash the upstream address with the secret, and set the cookie in your HTTP client (browser or otherwise). For example, with PHP, you could run the following to compute the cookie value, where `10.1.0.10:8080` is the address of one of your upstreams, and `secret` is your configured secret. - - ``` - echo hash_hmac('sha256', '10.1.0.10:8080', 'secret'); - // cdd96966817dd14a99f47ee17451464f29998da170814a16b483e4c1ff4c48cf - ``` - - You can set the cookie in your browser via the Javascript console, for example to set the cookie named `lb`: - - ``` - document.cookie = "lb=cdd96966817dd14a99f47ee17451464f29998da170814a16b483e4c1ff4c48cf"; - ``` - -* **lb\_retries** is how many times to retry selecting available backends for each request if the next available host is down. By default, retries are disabled (zero). - - If [`lb_try_duration`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#lb_try_duration) is also configured, then retries may stop early if the duration is reached. In other words, the retry duration takes precedence over the retry count. - -* **lb\_try\_duration** is a [duration value](https://caddyserver.com/docs/conventions#durations) that defines how long to try selecting available backends for each request if the next available host is down. By default, retries are disabled (zero duration). - - Clients will wait for up to this long while the load balancer tries to find an available upstream host. A reasonable starting point might be `5s` since the HTTP transport's default dial timeout is `3s`, so that should allow for at least one retry if the first selected upstream cannot be reached; but feel free to experiment to find the right balance for your usecase. - -* **lb\_try\_interval** is a [duration value](https://caddyserver.com/docs/conventions#durations) that defines how long to wait between selecting the next host from the pool. Default is `250ms`. Only relevant when a request to an upstream host fails. Be aware that setting this to `0` with a non-zero `lb_try_duration` can cause the CPU to spin if all backends are down and latency is very low. - -* **lb\_retry\_match** restricts with which requests retries are allowed. A request must match this condition in order to be retried if the connection to the upstream succeded but the subsequent round-trip failed. If the connection to the upstream failed, a retry is always allowed. By default, only `GET` requests are retried. - - The syntax for this option is the same as for [named request matchers](https://caddyserver.com/docs/caddyfile/matchers#named-matchers), but without the `@name`. If you only need a single matcher, you may configure it on the same line. For multiple matchers, a block is necessary. - - -### Active health checks - -Active health checks perform health checking in the background on a timer. To enable this, `health_uri` or `health_port` are required. - -* **health\_uri** is the URI path (and optional query) for active health checks. - -* **health\_port** is the port to use for active health checks, if different from the upstream's port. - -* **health\_interval** is a [duration value](https://caddyserver.com/docs/conventions#durations) that defines how often to perform active health checks. Default: `30s`. - -* **health\_passes** is the number of consecutive health checks required before marking the backend as healthy again. Default: `1`. - -* **health\_fails** is the number of consecutive health checks required before marking the backend as unhealthy. Default: `1`. - -* **health\_timeout** is a [duration value](https://caddyserver.com/docs/conventions#durations) that defines how long to wait for a reply before marking the backend as down. Default: `5s`. - -* **health\_status** is the HTTP status code to expect from a healthy backend. Can be a 3-digit status code, or a status code class ending in `xx`. For example: `200` (which is the default), or `2xx`. - -* **health\_body** is a substring or regular expression to match on the response body of an active health check. If the backend does not return a matching body, it will be marked as down. - -* **health\_follow\_redirects** will cause the health check to follow redirects provided by upstream. By default, a redirect response would cause the health check to count as a fail. - -* **health\_headers** - - -### Passive health checks - -Passive health checks happen inline with actual proxied requests. To enable this, `fail_duration` is required. - -* **fail\_duration** is a [duration value](https://caddyserver.com/docs/conventions#durations) that defines how long to remember a failed request. A duration \> `0` enables passive health checking; the default is `0` (off). A reasonable starting point might be `30s` to balance error rates with responsiveness when bringing an unhealthy upstream back online; but feel free to experiment to find the right balance for your usecase. - -* **max\_fails** is the maximum number of failed requests within `fail_duration` that are needed before considering a backend to be down; must be \>\= `1`; default is `1`. - -* **unhealthy\_status** counts a request as failed if the response comes back with one of these status codes. Can be a 3-digit status code or a status code class ending in `xx`, for example: `404` or `5xx`. - -* **unhealthy\_latency** is a [duration value](https://caddyserver.com/docs/conventions#durations) that counts a request as failed if it takes this long to get a response. - -* **unhealthy\_request\_count** is the permissible number of simultaneous requests to a backend before marking it as down. In other words, if a particular backend is currently handling this many requests, then it's considered "overloaded" and other backends will be preferred instead. - - This should be a reasonably large number; configuring this means that the proxy will have a limit of `unhealthy_request_count × upstreams_count` total simultaneous requests, and any requests after that point will result in an error due to no upstreams being available. - - -Events ------- - -When an upstream transitions from being healthy to unhealthy or vice-versa, [an event](https://caddyserver.com/docs/caddyfile/options#event-options) is emitted. These events can be used to trigger other actions, such as sending a notification or logging a message. The events are as follows: - -* `healthy` is emitted when an upstream is marked healthy when it was previous unhealthy -* `unhealthy` is emitted when an upstream is marked unhealthy when it was previous healthy - -In both cases, the `host` is included as metadata in the event to identify the upstream that changed state. It can be used as a placeholder with `{event.data.host}` with the `exec` event handler, for example. - -Streaming ---------- - -By default, the proxy partially buffers the response for wire efficiency. - -The proxy also supports WebSocket connections, performing the HTTP upgrade request then transitioning the connection to a bidirectional tunnel. - -* **flush\_interval** is a [duration value](https://caddyserver.com/docs/conventions#durations) that adjusts how often Caddy should flush the response buffer to the client. By default, no periodic flushing is done. A negative value (typically -1) suggests "low-latency mode" which disables response buffering completely and flushes immediately after each write to the client, and does not cancel the request to the backend even if the client disconnects early. This option is ignored and responses are flushed immediately to the client if one of the following applies from the response: - - * `Content-Type: text/event-stream` - * `Content-Length` is unknown - * HTTP/2 on both sides of the proxy, `Content-Length` is unknown, and `Accept-Encoding` is either not set or is "identity" -* **request\_buffers** will cause the proxy to read up to `` amount of bytes from the request body into a buffer before sending it upstream. This is very inefficient and should only be done if the upstream requires reading request bodies without delay (which is something the upstream application should fix). This accepts all size formats supported by [go-humanize](https://github.com/dustin/go-humanize/blob/master/bytes.go). - -* **response\_buffers** will cause the proxy to read up to `` amount of bytes from the response body to be read into a buffer before being returned to the client. This should be avoided if at all possible for performance reasons, but could be useful if the backend has tighter memory constraints. This accepts all size formats supported by [go-humanize](https://github.com/dustin/go-humanize/blob/master/bytes.go). - -* **stream\_timeout** is a [duration value](https://caddyserver.com/docs/conventions#durations) after which streaming requests such as WebSockets will be forcibly closed at the end of the timeout. This essentially cancels connections if they stay open too long. A reasonable starting point might be `24h` to cull connections older than a day. Default: no timeout. - -* **stream\_close\_delay** is a [duration value](https://caddyserver.com/docs/conventions#durations) which delays streaming requests such as WebSockets from being forcibly closed when the config is unloaded; instead, the stream will remain open until the delay is complete. In other words, enabling this prevents streams from immediately closing when Caddy's config is reloaded. Enabling this may be a good idea to avoid a thundering herd of reconnecting clients which had their connections closed by the previous config closing. A reasonable starting point might be something like `5m` to allow users 5 minutes to leave the page naturally after a config reload. Default: no delay. - - -The proxy can **manipulate headers** between itself and the backend: - -* **header\_up** - -* **header\_down** - - -For example, to set a request header, overwriting any existing values: - -``` -header_up Some-Header "the value" -``` - -To add a response header; note that there can be multiple values for a header field: - -``` -header_down +Some-Header "first value" -header_down +Some-Header "second value" -``` - -To delete a request header, preventing it from reaching the backend: - -``` -header_up -Some-Header -``` - -To delete all matching request headers, using a suffix match: - -``` -header_up -Some-* -``` - -To delete _all_ request headers, to be able to individually add the ones you want (not recommended): - -``` -header_up -* -``` - -To perform a regular expression replacement on a request header: - -``` -header_up Some-Header "^prefix-([A-Za-z0-9]*)$" "replaced-$1-suffix" -``` - -The regular expression language used is RE2, included in Go. See the [RE2 syntax reference](https://github.com/google/re2/wiki/Syntax) and the [Go regexp syntax overview](https://pkg.go.dev/regexp/syntax). The replacement string is [expanded](https://pkg.go.dev/regexp#Regexp.Expand), allowing use of captured values, for example `$1` being the first capture group. - -### Defaults - -By default, Caddy passes through incoming headers—including `Host`—to the backend without modifications, with three exceptions: - -* It sets or augments the [`X-Forwarded-For`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-For) header field. -* It sets the [`X-Forwarded-Proto`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Proto) header field. -* It sets the [`X-Forwarded-Host`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Forwarded-Host) header field. - -For these `X-Forwarded-*` headers, by default, the proxy will ignore their values from incoming requests, to prevent spoofing. - -If Caddy is not the first server being connected to by your clients (for example when a CDN is in front of Caddy), you may configure `trusted_proxies` with a list of IP ranges (CIDRs) from which incoming requests are trusted to have sent good values for these headers. - -It is strongly recommended that you configure this via the [`servers > trusted_proxies` global option](https://caddyserver.com/docs/caddyfile/options#trusted-proxies) instead of in the proxy, so that this applies to all proxy handlers in your server, and this has the benefit of enabling client IP parsing. - -Additionally, when using the [`http` transport](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#the-http-transport), the `Accept-Encoding: gzip` header will be set, if it is missing in the request from the client. This allows the upstream to serve compressed content if it can. This behavior can be disabled with [`compression off`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#compression) on the transport. - -### HTTPS - -Since (most) headers retain their original value when being proxied, it is often necessary to override the `Host` header with the configured upstream address when proxying to HTTPS, such that the `Host` header matches the TLS ServerName value: - -``` -reverse_proxy https://example.com { - header_up Host {upstream_hostport} -} -``` - -The `X-Forwarded-Host` header is still passed [by default](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#defaults), so the upstream may still use that if it needs to know the original `Host` header value. - -Rewrites --------- - -By default, Caddy performs the upstream request with the same HTTP method and URI as the incoming request, unless a rewrite was performed in the middleware chain before it reaches `reverse_proxy`. - -Before proxying it, the request is cloned; this ensures that any modifications done to the request during the handler do not leak to other handlers. This is useful in situations where the handling needs to continue after the proxy. - -In addition to [header manipulations](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#headers), the request's method and URI may be changed before it is sent to the upstream: - -* **method** changes the HTTP method of the cloned request. If the method is changed to `GET` or `HEAD`, then the incoming request's body will _not_ be sent upstream by this handler. This is useful if you wish to allow a different handler to consume the request body. -* **rewrite** changes the URI (path and query) of the cloned request. This is similar to the [`rewrite` directive](https://caddyserver.com/docs/caddyfile/directives/rewrite), except that it doesn't persist the rewrite past the scope of this handler. - -These rewrites are often useful for a pattern like "pre-check requests", where a request is sent to another server to help make a decision on how to continue handling the current request. - -For example, the request could be sent to an authentication gateway to decide whether the request was from an authenticated user (e.g. the request has a session cookie) and should continue, or should instead be redirected to a login page. For this pattern, Caddy provides a shortcut directive [`forward_auth`](https://caddyserver.com/docs/caddyfile/directives/forward_auth) to skip most of the config boilerplate. - -Transports ----------- - -Caddy's proxy **transport** is pluggable: - -* **transport** defines how to communicate with the backend. Default is `http`. - -### The `http` transport - -``` -transport http { - read_buffer - write_buffer - max_response_header - proxy_protocol v1|v2 - dial_timeout - dial_fallback_delay - response_header_timeout - expect_continue_timeout - resolvers - tls - tls_client_auth | - tls_insecure_skip_verify - tls_curves - tls_timeout - tls_trust_pool - tls_server_name - tls_renegotiation - tls_except_ports - keepalive [off|] - keepalive_interval - keepalive_idle_conns - keepalive_idle_conns_per_host - versions - compression off - max_conns_per_host - forward_proxy_url -} -``` - -* **read\_buffer** is the size of the read buffer in bytes. It accepts all formats supported by [go-humanize](https://github.com/dustin/go-humanize/blob/master/bytes.go). Default: `4KiB`. - -* **write\_buffer** is the size of the write buffer in bytes. It accepts all formats supported by [go-humanize](https://github.com/dustin/go-humanize/blob/master/bytes.go). Default: `4KiB`. - -* **max\_response\_header** - -* **proxy\_protocol** enables [PROXY protocol](https://github.com/haproxy/haproxy/blob/master/doc/proxy-protocol.txt) (popularized by HAProxy) on the connection to the upstream, prepending the real client IP data. This is best paired with the [`servers > trusted_proxies` global option](https://caddyserver.com/docs/caddyfile/options#trusted-proxies) if Caddy is behind another proxy. Versions `v1` and `v2` are supported. This should only be used if you know the upstream server is able to parse PROXY protocol. By default, this is disabled. - -* **dial\_timeout** is the maximum [duration](https://caddyserver.com/docs/conventions#durations) to wait when connecting to the upstream socket. Default: `3s`. - -* **dial\_fallback\_delay** is the maximum [duration](https://caddyserver.com/docs/conventions#durations) to wait before spawning an RFC 6555 Fast Fallback connection. A negative value disables this. Default: `300ms`. - -* **response\_header\_timeout** - -* **expect\_continue\_timeout** is the maximum [duration](https://caddyserver.com/docs/conventions#durations) to wait for the upstreams's first response headers after fully writing the request headers if the request has the header `Expect: 100-continue`. Default: No timeout. - -* **read\_timeout** is the maximum [duration](https://caddyserver.com/docs/conventions#durations) to wait for the next read from the backend. Default: No timeout. - -* **write\_timeout** is the maximum [duration](https://caddyserver.com/docs/conventions#durations) to wait for the next writes to the backend. Default: No timeout. - -* **resolvers** is a list of DNS resolvers to override system resolvers. - -* **tls** uses HTTPS with the backend. This will be enabled automatically if you specify backends using the `https://` scheme or port `:443`, or if any of the below `tls_*` options are configured. - -* **tls\_client\_auth** enables TLS client authentication one of two ways: (1) by specifying a domain name for which Caddy should obtain a certificate and keep it renewed, or (2) by specifying a certificate and key file to present for TLS client authentication with the backend. - -* **tls\_insecure\_skip\_verify** turns off TLS handshake verification, making the connection insecure and vulnerable to man-in-the-middle attacks. _Do not use in production._ - -* **tls\_curves** is a list of elliptic curves to support for the upstream connection. Caddy's defaults are modern and secure, so you should only need to configure this if you have specific requirements. - -* **tls\_timeout** is the maximum [duration](https://caddyserver.com/docs/conventions#durations) to wait for the TLS handshake to complete. Default: No timeout. - -* **tls\_trust\_pool** configures the source of trusted certificate authorities similar to the [`trust_pool` sub-directive](https://caddyserver.com/docs/caddyfile/directives/tls#trust_pool) described on the `tls` directive documentation. The list of trust pool sources available in standard Caddy installation is available [here](https://caddyserver.com/docs/caddyfile/directives/tls#trust-pool-providers). - -* **tls\_server\_name** sets the server name used when verifying the certificate received in the TLS handshake. By default, this will use the upstream address' host part. - - You only need to override this if your upstream address does not match the certificate the upstream is likely to use. For example if the upstream address is an IP address, then you would need to configure this to the hostname being served by the upstream server. - - A request placeholder may be used, in which case a clone of the HTTP transport config will be used on every request, which may incur a performance penalty. - -* **tls\_renegotiation** sets the TLS renegotiation level. TLS renegotiation is the act of performing subsequent handshakes after the first. The level may be one of: - - * `never` (the default) disables renegotiation. - * `once` allows a remote server to request renegotiation once per connection. - * `freely` allows a remote server to repeatedly request renegotiation. -* **tls\_except\_ports** when TLS is enabled, if the upstream target uses one of the given ports, TLS will be disabled for those connections. This may be useful when configuring dynamic upstreams, where some upstreams expect HTTP and others expect HTTPS requests. - -* **keepalive** is either `off` or a [duration value](https://caddyserver.com/docs/conventions#durations) that specifies how long to keep connections open (timeout). Default: `2m`. - -* **keepalive\_interval** is the [duration](https://caddyserver.com/docs/conventions#durations) between liveness probes. Default: `30s`. - -* **keepalive\_idle\_conns** defines the maximum number of connections to keep alive. Default: No limit. - -* **keepalive\_idle\_conns\_per\_host** if non-zero, controls the maximum idle (keep-alive) connections to keep per-host. Default: `32`. - -* **versions** allows customizing which versions of HTTP to support. - - Valid options are: `1.1`, `2`, `h2c`, `3`. - - Default: `1.1 2`, or if the [upstream's scheme](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#upstream-addresses) is `h2c://`, then the default is `h2c 2`. - - `h2c` enables cleartext HTTP/2 connections to the upstream. This is a non-standard feature that does not use Go's default HTTP transport, so it is exclusive of other features. - - `3` enables HTTP/3 connections to the upstream. ⚠️ This is an experimental feature and is subject to change. - -* **compression** can be used to disable compression to the backend by setting it to `off`. - -* **max\_conns\_per\_host** optionally limits the total number of connections per host, including connections in the dialing, active, and idle states. Default: No limit. - -* **forward\_proxy\_url** specifies the URL of a server that the HTTP transport will use to proxy requests to the upstream server. By default, Caddy respects proxy configured via environment variables as per the [Go stdlib](https://pkg.go.dev/golang.org/x/net/http/httpproxy#FromEnvironment) like `HTTP_PROXY`. When a value is provided for this parameter, requests will flow through the reverse proxy in the following order: - - * Client (users) 🡒 `reverse_proxy` 🡒 `forward_proxy_url` 🡒 upstream - -### The `fastcgi` transport - -``` -transport fastcgi { - root - split - env - resolve_root_symlink - dial_timeout - read_timeout - write_timeout - capture_stderr -} -``` - -* **root** is the root of the site. Default: `{http.vars.root}` or current working directory. - -* **split** is where to split the path to get PATH\_INFO at the end of the URI. - -* **env** sets an extra environment variable to the given value. Can be specified more than once for multiple environment variables. - -* **resolve\_root\_symlink** enables resolving the `root` directory to its actual value by evaluating a symbolic link, if one exists. - -* **dial\_timeout** is how long to wait when connecting to the upstream socket. Accepts [duration values](https://caddyserver.com/docs/conventions#durations). Default: `3s`. - -* **read\_timeout** is how long to wait when reading from the FastCGI server. Accepts [duration values](https://caddyserver.com/docs/conventions#durations). Default: no timeout. - -* **write\_timeout** is how long to wait when sending to the FastCGI server. Accepts [duration values](https://caddyserver.com/docs/conventions#durations). Default: no timeout. - -* **capture\_stderr** enables capturing and logging of any messages sent by the upstream fastcgi server on `stderr`. Logging is done at `WARN` level by default. If the response has a `4xx` or `5xx` status, then the `ERROR` level will be used instead. By default, `stderr` is ignored. - - -Intercepting responses ----------------------- - -The reverse proxy can be configured to intercept responses from the backend. To facilitate this, [response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) can be defined (similar to the syntax for request matchers) and the first matching `handle_response` route will be invoked. - -When a response handler is invoked, the response from the backend is not written to the client, and the configured `handle_response` route will be executed instead, and it is up to that route to write a response. If the route does _not_ write a response, then request handling will continue with any handlers that are [ordered after](https://caddyserver.com/docs/caddyfile/directives#directive-order) this `reverse_proxy`. - -* **@name** is the name of a [response matcher](https://caddyserver.com/docs/caddyfile/response-matchers). As long as each response matcher has a unique name, multiple matchers can be defined. A response can be matched on the status code and presence or value of a response header. - -* **replace\_status** simply changes the status code of response when matched by the given matcher. - -* **handle\_response** defines the route to execute when matched by the given matcher (or, if a matcher is omitted, all responses). The first matching block will be applied. Inside a `handle_response` block, any other [directives](https://caddyserver.com/docs/caddyfile/directives) can be used. - - -Additionally, inside `handle_response`, two special handler directives may be used: - -* **copy\_response** copies the response body received from the backend back to the client. Optionally allows changing the status code of the response while doing so. This directive is [ordered before `respond`](https://caddyserver.com/docs/caddyfile/directives#directive-order). - -* **copy\_response\_headers** - - -Three placeholders will be made available within the `handle_response` routes: - -* `{rp.status_code}` The status code from the backend's response. - -* `{rp.status_text}` The status text from the backend's response. - -* `{rp.header.*}` The headers from the backend's response. - - -Examples --------- - -Reverse proxy all requests to a local backend: - -``` -example.com { - reverse_proxy localhost:9005 -} -``` - -[Load-balance](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#load-balancing) all requests [between 3 backends](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#upstreams): - -``` -example.com { - reverse_proxy node1:80 node2:80 node3:80 -} -``` - -Same, but only requests within `/api`, and sticky by using the [`cookie` policy](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#lb_policy): - -``` -example.com { - reverse_proxy /api/* node1:80 node2:80 node3:80 { - lb_policy cookie api_sticky - } -} -``` - -Using [active health checks](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#active-health-checks) to determine which backends are healthy, and enabling [retries](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#lb_try_duration) on failed connections, holding the request until a healthy backend is found: - -``` -example.com { - reverse_proxy node1:80 node2:80 node3:80 { - health_uri /healthz - lb_try_duration 5s - } -} -``` - -Configure some [transport options](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#transports): - -``` -example.com { - reverse_proxy localhost:8080 { - transport http { - dial_timeout 2s - response_header_timeout 30s - } - } -} -``` - -Reverse proxy to an [HTTPS upstream](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#https): - -``` -example.com { - reverse_proxy https://example.com { - header_up Host {upstream_hostport} - } -} -``` - -Reverse proxy to an HTTPS upstream, but [⚠️ disable TLS verification](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#tls_insecure_skip_verify). This is NOT RECOMMENDED, since it disables all security checks that HTTPS offers; proxying over HTTP in private networks is preferred if possible, because it avoids the false sense of security: - -``` -example.com { - reverse_proxy 10.0.0.1:443 { - transport http { - tls_insecure_skip_verify - } - } -} -``` - -Instead you may establish trust with the upstream by explicitly [trusting the upstream's certificate](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#tls_trusted_ca_certs), and (optionally) setting TLS-SNI to match the hostname in the upstream's certificate: - -``` -example.com { - reverse_proxy 10.0.0.1:443 { - transport http { - tls_trusted_ca_certs /path/to/cert.pem - tls_server_name app.example.com - } - } -} -``` - -[Strip a path prefix](https://caddyserver.com/docs/caddyfile/directives/handle_path) before proxying; but be aware of the [subfolder problem ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/t/the-subfolder-problem-or-why-cant-i-reverse-proxy-my-app-into-a-subfolder/8575) : - -``` -example.com { - handle_path /prefix/* { - reverse_proxy localhost:9000 - } -} -``` - -Replace a path prefix before proxying, using a [`rewrite`](https://caddyserver.com/docs/caddyfile/directives/rewrite): - -``` -example.com { - handle_path /old-prefix/* { - rewrite * /new-prefix{path} - reverse_proxy localhost:9000 - } -} -``` - -`X-Accel-Redirect` support, i.e. serving static files as requested, by [intercepting the response](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#intercepting-responses): - -``` -example.com { - reverse_proxy localhost:8080 { - @accel header X-Accel-Redirect * - handle_response @accel { - root * /path/to/private/files - rewrite * {rp.header.X-Accel-Redirect} - method * GET - file_server - } - } -} -``` - -Custom error page for errors from upstream, by [intercepting error responses](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#intercepting-responses) by status code: - -``` -example.com { - reverse_proxy localhost:8080 { - @error status 500 503 - handle_response @error { - root * /path/to/error/pages - rewrite * /{rp.status_code}.html - file_server - } - } -} -``` - -Get backends [dynamically](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#dynamic-upstreams) from [`A`/`AAAA` record](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#aaaaa) DNS queries: - -``` -example.com { - reverse_proxy { - dynamic a example.com 9000 - } -} -``` - -Get backends [dynamically](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#dynamic-upstreams) from [`SRV` record](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#srv) DNS queries: - -``` -example.com { - reverse_proxy { - dynamic srv _api._tcp.example.com - } -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/rewrite.md b/docs/caddy/docs/docs/caddyfile/directives/rewrite.md deleted file mode 100644 index f70a978..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/rewrite.md +++ /dev/null @@ -1,79 +0,0 @@ -Title: rewrite (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/rewrite - -Markdown Content: -Rewrites the request URI internally. - -A rewrite changes some or all of the request URI. Note that the URI does not include scheme or authority (host & port), and clients typically do not send fragments. Thus, this directive is mostly used for **path** and **query** string manipulation. - -The `rewrite` directive implies the intent to accept the request, but with modifications. - -It is mutually exclusive to other `rewrite` directives in the same block, so it is safe to define rewrites that would otherwise cascade into each other as only the first matching rewrite will be executed. - -A [request matcher](https://caddyserver.com/docs/caddyfile/matchers) that matches a request before the `rewrite` might not match the same request after the `rewrite`. If you want your `rewrite` to share a route with other handlers, use the [`route`](https://caddyserver.com/docs/caddyfile/directives/route) or [`handle`](https://caddyserver.com/docs/caddyfile/directives/handle) directives. - -Syntax ------- - -``` -rewrite [] -``` - -* **** is the URI to rewrite the request to. Only the components of the URI (path or query string) that are specified in the rewrite will be operated on. The URI path is any substring that comes before `?`. If `?` is omitted, then the whole token is considered to be the path. - -Prior to v2.8.0, the `` argument could be confused by the parser for a [matcher token](https://caddyserver.com/docs/caddyfile/matchers#syntax) if it began with `/`, so it was necessary to specify a wildcard matcher token (`*`). - -Similar directives ------------------- - -There are other directives that perform rewrites, but imply a different intent or do the rewrite without a complete replacement of the URI: - -* [`uri`](https://caddyserver.com/docs/caddyfile/directives/uri) manipulates a URI (strip prefix, suffix, or substring replacement). - -* [`try_files`](https://caddyserver.com/docs/caddyfile/directives/try_files) rewrites the request based on the existence of files. - - -Examples --------- - -Rewrite all requests to `index.html`, leaving any query string unchanged: - -``` -example.com { - rewrite * /index.html -} -``` - -Prefixing all requests with `/api`, preserving the rest of the URI, then reverse proxying to an app: - -``` -api.example.com { - rewrite * /api{uri} - reverse_proxy localhost:8080 -} -``` - -Replace the query string on API requests with `a=b`, leaving the path unchanged: - -``` -example.com { - rewrite * ?a=b -} -``` - -For only requests to `/api/`, preserve the existing query string and add a key-value pair: - -``` -example.com { - rewrite /api/* ?{query}&a=b -} -``` - -Change both the path and query string, preserving the original query string while adding the original path as the `p` parameter: - -``` -example.com { - rewrite * /index.php?{query}&p={path} -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/root.md b/docs/caddy/docs/docs/caddyfile/directives/root.md deleted file mode 100644 index 498b991..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/root.md +++ /dev/null @@ -1,123 +0,0 @@ -Title: root (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/root - -Markdown Content: -root (Caddyfile directive) — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -root -==== - -Sets the root path of the site, used by various matchers and directives that access the file system. If unset, the default site root is the current working directory. - -Specifically, this directive sets the `{http.vars.root}` placeholder. It is mutually exclusive to other `root` directives in the same block, so it is safe to define multiple roots with matchers that intersect: they will not cascade and overwrite each other. - -This directive does not automatically enable serving static files, so it is often used in conjunction with the [`file_server` directive](https://caddyserver.com/docs/caddyfile/directives/file_server) or the [`php_fastcgi` directive](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi). - -Syntax ------- - -``` -root [] -``` - -* **** is the path to use for the site root. - -Prior to v2.8.0, the `` argument could be confused by the parser for a [matcher token](https://caddyserver.com/docs/caddyfile/matchers#syntax) if it began with `/`, so it was necessary to specify a wildcard matcher token (`*`). - -Examples --------- - -Set the site root to `/home/bob/public_html` (assumes Caddy is running as the user `bob`): - -If you're running Caddy as a systemd service, reading files from `/home` will not work, because the `caddy` user does not have "executable" permission on the `/home` directory (necessary for traversal). It's recommended that you place your files in `/srv` or `/var/www/html` instead. - -``` -root * /home/bob/public_html -``` - -Note that prior to v2.8.0, a [wildcard matcher](https://caddyserver.com/docs/caddyfile/matchers#wildcard-matchers) was required here because the first argument is ambiguous with a [path matcher](https://caddyserver.com/docs/caddyfile/matchers#path-matchers), i.e. `root * /srv`, but it can now be simplified to `root /srv`. - -Set the site root to `public_html` (relative to current working directory) for all requests: - -``` -root public_html -``` - -Change the site root only for requests in `/foo/*`: - -``` -root /foo/* /home/user/public_html/foo -``` - -The `root` directive is commonly paired with [`file_server`](https://caddyserver.com/docs/caddyfile/directives/file_server) to serve static files and/or with [`php_fastcgi`](https://caddyserver.com/docs/caddyfile/directives/php_fastcgi) to serve a PHP site: - -``` -example.com { - root * /srv - file_server -} -``` - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/caddyfile/directives/route.md b/docs/caddy/docs/docs/caddyfile/directives/route.md deleted file mode 100644 index d31e396..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/route.md +++ /dev/null @@ -1,91 +0,0 @@ -Title: route (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/route - -Markdown Content: -Evaluates a group of directives literally and as a single unit. - -Directives contained in a route block will not be [reordered internally](https://caddyserver.com/docs/caddyfile/directives#directive-order). Only HTTP handler directives (directives which add handlers or middleware to the chain) can be used in a route block. - -This directive is a special case in that its subdirectives are also regular directives. - -Syntax ------- - -``` -route [] { - -} -``` - -* **** is a list of directives or directive blocks, one per line, just like outside of a route block; except these directives will not be reordered. Only HTTP handler directives can be used. - -Utility -------- - -The `route` directive is helpful in certain advanced use cases or edge cases to take absolute control over parts of the HTTP handler chain. - -Because the order of HTTP middleware evaluation is significant, the Caddyfile will normally reorder directives after parsing to make the Caddyfile easier to use; you don't have to worry about what order you type things. - -While the [built-in order](https://caddyserver.com/docs/caddyfile/directives#directive-order) is compatible with most sites, sometimes you need to take manual control over the order, either for the whole site or just a part of it. That's what the `route` directive is for. - -To illustrate, consider the case of two terminating handlers: [`redir`](https://caddyserver.com/docs/caddyfile/directives/redir) and [`file_server`](https://caddyserver.com/docs/caddyfile/directives/file_server). Both write the response to the client and do not call the next handler in the chain, so only one of these will be executed for a certain request. So which comes first? Normally, `redir` is executed before `file_server` because usually you would want to issue a redirect only in specific cases and serve files in the general case. - -However, there may be occasions where the second directive (`redir`) has a more specific matcher than the second (`file_server`). In other words, you want to redirect in the general case, and serve only a specific file. - -So you might try a Caddyfile like this (but this will not work as expected!): - -``` -example.com { - file_server /specific.html - redir https://anothersite.com{uri} -} -``` - -The problem is that after the [directives are sorted](https://caddyserver.com/docs/caddyfile/directives#sorting-algorithm), `redir` comes before `file_server`. - -But in this case the matcher for `redir` (an implicit [`*`](https://caddyserver.com/docs/caddyfile/matchers#wildcard-matchers)) is a superset of the matcher for `file_server` (`*` is a superset of `/specific.html`). - -Fortunately, the solution is easy: just wrap those two directives in a `route` block, to ensure that `file_server` is executed before `redir`: - -``` -example.com { - route { - file_server /specific.html - redir https://anothersite.com{uri} - } -} -``` - -And now `file_server` will be chained in before `redir` because the order is taken literally. - -Similar directives ------------------- - -There are other directives that can wrap HTTP handler directives, but each has its use depending on the behavior you want to convey: - -* [`handle`](https://caddyserver.com/docs/caddyfile/directives/handle) wraps other directives like `route` does, but with two distinctions: 1) handle blocks are mutually exclusive to each other, and 2) directives within a handle are [re-ordered](https://caddyserver.com/docs/caddyfile/directives#directive-order) normally. - -* [`handle_path`](https://caddyserver.com/docs/caddyfile/directives/handle_path) does the same as `handle`, but it strips a prefix from the request before running its handlers. - -* [`handle_errors`](https://caddyserver.com/docs/caddyfile/directives/handle_errors) is like `handle`, but is only invoked when Caddy encounters an error during request handling. - - -Examples --------- - -Proxy requests to `/api` as-is, and rewrite all other requests based on whether they match a file on disk, otherwise `/index.html`. Then that file is served. - -Since [`try_files`](https://caddyserver.com/docs/caddyfile/directives/try_files) has a higher directive order than [`reverse_proxy`](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy), then it would normally get sorted higher and run first; this would cause the API requests to all get rewritten to `/index.html` and fail to match `/api*`, so none of them would get proxied and instead would result in a `404` from [`file_server`](https://caddyserver.com/docs/caddyfile/directives/file_server). Wrapping it all in a `route` ensures that `reverse_proxy` always runs first, before the request is rewritten. - -``` -example.com { - root * /srv - route { - reverse_proxy /api* localhost:9000 - - try_files {path} /index.html - file_server - } -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/templates.md b/docs/caddy/docs/docs/caddyfile/directives/templates.md deleted file mode 100644 index 9ec16ca..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/templates.md +++ /dev/null @@ -1,57 +0,0 @@ -Title: templates (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/templates - -Markdown Content: -Executes the response body as a [template](https://caddyserver.com/docs/modules/http.handlers.templates) document. Templates provide functional primitives for making simple dynamic pages. Features include HTTP subrequests, HTML file includes, Markdown rendering, JSON parsing, basic data structures, randomness, time, and more. - -Syntax ------- - -``` -templates [] { - mime - between - root -} -``` - -* **mime** are the MIME types the templates middleware will act on; any responses that do not have a qualifying `Content-Type` will not be evaluated as templates. - - Default: `text/html text/plain`. - -* **between** are the opening and closing delimiters for template actions. You can change them if they interfere with the rest of your document. - - Default: `{{ }}`. - -* **root** is the site root, when using functions that access the file system. - - Defaults to the site root set by the [`root`](https://caddyserver.com/docs/caddyfile/directives/root) directive, or the current working directory if not set. - - -Documentation for the built-in template functions can be found in [templates module](https://caddyserver.com/docs/modules/http.handlers.templates#docs). - -Examples --------- - -For a complete example of a site using templates to serve markdown, take a look at the source for [this very website](https://github.com/caddyserver/website)! Specifically, take a look at the [`Caddyfile`](https://github.com/caddyserver/website/blob/master/Caddyfile) and [`src/docs/index.html`](https://github.com/caddyserver/website/blob/master/src/docs/index.html). - -Enable templates for a static site: - -``` -example.com { - root * /srv - templates - file_server -} -``` - -To serve a simple static response using a template, make sure to set `Content-Type`: - -``` -example.com { - header Content-Type text/plain - templates - respond `Current year is: {{now | date "2006"}}` -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/tls.md b/docs/caddy/docs/docs/caddyfile/directives/tls.md deleted file mode 100644 index 62729bf..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/tls.md +++ /dev/null @@ -1,509 +0,0 @@ -Title: tls (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/tls - -Markdown Content: -Configures TLS for the site. - -**Caddy's default TLS settings are secure. Only change these settings if you have a good reason and understand the implications.** The most common use of this directive will be to specify an ACME account email address, change the ACME CA endpoint, or to provide your own certificates. - -Compatibility note: Due to its sensitive nature as a security protocol, deliberate adjustments to TLS defaults may be made in new minor or patch releases. Old or broken TLS versions, ciphers, features, etc. may be removed at any time. If your deployment is extremely sensitive to changes, you should explicitly specify those values which must remain constant, and be vigilant about upgrades. In almost every case, we recommend using the default settings. - -Syntax ------- - -``` -tls [internal|] | [ ] { - protocols [] - ciphers - curves - alpn - load - ca - ca_root - key_type ed25519|p256|p384|rsa2048|rsa4096 - dns [] - propagation_timeout - propagation_delay - dns_ttl - dns_challenge_override_domain - resolvers - eab - on_demand - reuse_private_keys - client_auth { - mode [request|require|verify_if_given|require_and_verify] - trust_pool - verifier - } - issuer [] - get_certificate [] - insecure_secrets_log -} -``` - -* **internal** means to use Caddy's internal, locally-trusted CA to produce certificates for this site. To further configure the [`internal`](https://caddyserver.com/docs/caddyfile/directives/tls#internal) issuer, use the [`issuer`](https://caddyserver.com/docs/caddyfile/directives/tls#issuer) subdirective. - -* **** is the email address to use for the ACME account managing the site's certificates. You may prefer to use the [`email` global option](https://caddyserver.com/docs/caddyfile/options#email) instead, to configure this for all your sites at once. - - -* **** and **** are the paths to the certificate and private key PEM files. Specifying just one is invalid. - -* **protocols** specifies the minimum and maximum protocol versions. DO NOT change these unless you know what you're doing. Configuring this is rarely necessary, because Caddy will always use modern defaults. - - Default min: `tls1.2`, Default max: `tls1.3` - -* **ciphers** specifies the list of cipher suite names in descending preference order. DO NOT change these unless you know what you're doing. Note that cipher suites are not customizable for TLS 1.3; and not all TLS 1.2 ciphers are enabled by default. The supported names are (in order of preference by the Go stdlib): - - * `TLS_AES_128_GCM_SHA256` - * `TLS_CHACHA20_POLY1305_SHA256` - * `TLS_AES_256_GCM_SHA384` - * `TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256` - * `TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256` - * `TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384` - * `TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384` - * `TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256` - * `TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256` - * `TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA` - * `TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA` - * `TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA` - * `TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA` - * `TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA` -* **curves** specifies the list of EC curves to support. It is recommended to not change these. Supported values are: - - * `x25519` - * `secp256r1` - * `secp384r1` - * `secp521r1` -* **alpn** is the list of values to advertise in the [ALPN extension ![Image 26](https://caddyserver.com/old/resources/images/external-link.svg)](https://developer.mozilla.org/en-US/docs/Glossary/ALPN) of the TLS handshake. - -* **load** specifies a list of folders from which to load PEM files that are certificate+key bundles. - -* **ca** changes the ACME CA endpoint. This is most often used to set [Let's Encrypt's staging endpoint ![Image 27](https://caddyserver.com/old/resources/images/external-link.svg)](https://letsencrypt.org/docs/staging-environment/) when testing, or an internal ACME server. (To change this value for the whole Caddyfile, use the `acme_ca` [global option](https://caddyserver.com/docs/caddyfile/options) instead.) - -* **ca\_root** specifies a PEM file that contains a trusted root certificate for the ACME CA endpoint, if not in the system trust store. - -* **key\_type** is the type of key to use when generating CSRs. Only set this if you have a specific requirement. - -* **dns** enables the [DNS challenge](https://caddyserver.com/docs/automatic-https#dns-challenge) using the specified provider plugin, which must be plugged in from one of the [`caddy-dns` ![Image 28](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddy-dns) repositories. Each provider plugin may have their own syntax following their name; refer to their docs for details. Maintaining support for each DNS provider is a community effort. [Learn how to enable the DNS challenge for your provider at our wiki.](https://caddy.community/t/how-to-use-dns-provider-modules-in-caddy-2/8148) - -* **propagation\_timeout** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets the maximum time to wait for the DNS TXT records to appear when using the DNS challenge. Set to `-1` to disable propagation checks. Default 2 minutes. - -* **propagation\_delay** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to wait before starting DNS TXT records propagation checks when using the DNS challenge. Default `0` (no wait). - -* **dns\_ttl** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets the TTL of the `TXT` record used for the DNS challenge. Rarely needed. - -* **dns\_challenge\_override\_domain** overrides the domain to use for the DNS challenge. This is to delegate the challenge to a different domain. - - You may want to use this if your primary domain's DNS provider does not have a [DNS plugin ![Image 29](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddy-dns) available. You can instead add a `CNAME` record with subdomain `_acme-challenge` to your primary domain, pointing to a secondary domain for which you _do_ have a plugin. This option _does not_ require special support from the plugin. - - When ACME issuers try to solve the DNS challenge for your primary domain, they will then follow the `CNAME` to your secondary domain to find the `TXT` record. - - **Note:** Use full canonical name from the CNAME record as value here - `_acme-challenge` subdomain won't be prepended automatically. - -* **resolvers** customizes the DNS resolvers used when performing the DNS challenge; these take precedence over system resolvers or any default ones. If set here, the resolvers will propagate to all configured certificate issuers. - - This is typically a list of IP addresses. For example, to use [Google Public DNS ![Image 30](https://caddyserver.com/old/resources/images/external-link.svg)](https://developers.google.com/speed/public-dns) : - - ``` - resolvers 8.8.8.8 8.8.4.4 - ``` - -* **eab** configures ACME external account binding (EAB) for this site, using the key ID and MAC key provided by your CA. - -* **on\_demand** enables [On-Demand TLS](https://caddyserver.com/docs/automatic-https#on-demand-tls) for the hostnames given in the site block's address(es). **Security warning:** Doing so in production is insecure unless you also configure the [`on_demand_tls` global option](https://caddyserver.com/docs/caddyfile/options#on-demand-tls) to mitigate abuse. - -* **reuse\_private\_keys** enables reuse of private keys when renewing certificates. By default, a new key is created for every new certificate to mitigate pinning and reduce the scope of key compromise. Key pinning is against industry best practices. This option is not recommended unless you have a specific reason to use it; this may be subject to removal in a future version. - -* **client\_auth** enables and configures TLS client authentication: - - * **mode** is the mode for authenticating the client. Allowed values are: - - | Mode | Description | - | --- | --- | - | request | Ask clients for a certificate, but allow even if there isn't one; do not verify it | - | require | Require clients to present a certificate, but do not verify it | - | verify\_if\_given | Ask clients for a certificate; allow even if there isn't one, but verify it if there is | - | require\_and\_verify | Require clients to present a valid certificate that is verified | - - Default: `require_and_verify` if `trust_pool` module is provided; otherwise, `require`. - - * **trust\_pool** configures the source of certificate authorities (CA) providing certificates against which to validate client certificates. - - The certificate authority used providing the pool of trusted certificates and the configuration within the segment depends on the configured source of trust pool module. The standard modules available in Caddy are [listed below](https://caddyserver.com/docs/caddyfile/directives/tls#trust-pool-providers). The full list of modules, including 3rd-party, is listed in the [`trust_pool` JSON documentation](https://caddyserver.com/docs/json/apps/http/servers/tls_connection_policies/client_authentication/#trust_pool). - - Multiple `trusted_*` directives may be used to specify multiple CA or leaf certificates. Client certificates which are not listed as one of the leaf certificates or signed by any of the specified CAs will be rejected according to the **mode**. - - * **verifier** enables the use of a custom client certificate verifier module. These can perform custom client authentication checks, such as ensuring the certificate is not revoked. - -* **issuer** configures a custom certificate issuer, or a source from which to obtain certificates. - - Which issuer is used and the options that follow in this segment depend on the [issuer modules](https://caddyserver.com/docs/caddyfile/directives/tls#issuers) that are available. Some of the other subdirectives such as `ca` and `dns` are actually shortcuts for configuring the `acme` issuer (and this subdirective was added later), so specifying this directive and some of the others is confusing and thus prohibited. - - This subdirective can be specified multiple times to configure multiple, redundant issuers; if one fails to issue a cert, the next one will be tried. - -* **get\_certificate** enables getting certificates from a [manager module](https://caddyserver.com/docs/caddyfile/directives/tls#certificate-managers) at handshake-time. - -* **insecure\_secrets\_log** enables logging of TLS secrets to a file. This is also known as `SSLKEYLOGFILE`. Uses NSS key log format, which can then be parsed by Wireshark or other tools. ⚠️ **Security Warning:** This is insecure as it allows other programs or tools to decrypt TLS connections, and therefore completely compromises security. However, this capability can be useful for debugging and troubleshooting. - - -### Trust Pool Providers - -These are the standard trust pool providers that can be used in the `trust_pool` subdirective: - -#### inline - -The `inline` module parses the trusted root certificates as listed in the Caddyfile directly in base64 DER-encoded format. The `trust_der` directive may be repeated multiple times. - -``` -trust_pool inline { - trust_der -} -``` - -* **trust\_der** is a base64 DER-encoded CA certificate against which to validate client certificates. - -#### file - -The `file` module reads the trusted root certificates from PEM files from disk. The `pem_file` directive can accept multiple file paths on the same line and may be repeated multiple times. - -``` -... file [...] { - pem_file ... -} -``` - -* **pem\_file** is a path to a PEM CA certificate file against which to validate client certificates. - -#### pki\_root - -The `pki_root` module obtains the _root_ and trusts certificates from the certificate authority defined in the [PKI app](https://caddyserver.com/docs/caddyfile/options#pki-options). The `authority` directive can accept multiple authorities at the same time and may be repeated multiple times. - -``` -... pki_root [...] { - authority ... -} -``` - -* **authority** - -#### pki\_intermediate - -The `pki_intermediate` module obtains the _intermediate_ and trusts certificates from the certificate authority defined in the [PKI app](https://caddyserver.com/docs/caddyfile/options#pki-options). The `authority` directive can accept multiple authorities at the same time and may be repeated multiple times. - -``` -... pki_intermediate [...] { - authority ... -} -``` - -* **authority** is the name of the certificate authority configured in the PKI app. - -#### storage - -The `storage` module extracts the trusted certificates root from Caddy [storage](https://caddyserver.com/docs/caddyfile/options#storage). The `authority` directive can accept multiple authorities at the same time and may be repeated multiple times. - -``` -... storage [...] { - storage - keys ... -} -``` - -* **storage** is an optional storage module to use. If not specified, the default storage module will be used. If specified, it may be specified only once. - -* **keys** is the list of storage keys at which the PEM files of the certificates are stored. The directive accepts multiple values on the same line and may be specified multiple times. - - -#### http - -The `http` module obtains the trusted certificates from HTTP endpoints. The `endpoints` directive can accept multiple endpoints at the same time and may be repeated multiple times. - -``` -... http [] { - endpoints - tls -} -``` - -* **endpoints** is the list of HTTP endpoints from which to obtain certificates. The directive accepts multiple values on the same line and may be specified multiple times. - -* **tls** is an optional TLS configuration to use when connecting to the HTTP endpoint. The segment parsing is defined in the [following section](https://caddyserver.com/docs/caddyfile/directives/tls#tls-1). - - -##### TLS - -``` -... { - ca - insecure_skip_verify - handshake_timeout - server_name - renegotiation -} -``` - -* **ca** is an optional directive to define the provider of trust pool. The configuration follows the same behavior of [`trust_pool`](https://caddyserver.com/docs/caddyfile/directives/tls#trust_pool). If specified, it may be specified only once. - -* **insecure\_skip\_verify** turns off TLS handshake verification, making the connection insecure and vulnerable to man-in-the-middle attacks. _Do not use in production._ The verification is done against either the certificate authorities trusted by the system or as determined by the [`ca`](https://caddyserver.com/docs/caddyfile/directives/tls#ca) directive. - -* **handshake\_timeout** is the maximum [duration](https://caddyserver.com/docs/conventions#durations) to wait for the TLS handshake to complete. Default: No timeout.. - -* **server\_name** sets the server name used when verifying the certificate received in the TLS handshake. By default, this will use the upstream address' host part. - -* **renegotiation** sets the TLS renegotiation level. TLS renegotiation is the act of performing subsequent handshakes after the first. The level may be one of: - - * `never` (the default) disables renegotiation. - * `once` allows a remote server to request renegotiation once per connection. - * `freely` allows a remote server to repeatedly request renegotiation. - -### Issuers - -These issuers come standard with the `tls` directive: - -#### acme - -Obtains certificates using the ACME protocol. Note that `acme` is a default issuer (using Let's Encrypt), so configuring it explicitly is usually unnecessary. - -``` -... acme [] { - dir - test_dir - email - timeout - disable_http_challenge - disable_tlsalpn_challenge - alt_http_port - alt_tlsalpn_port - eab - trusted_roots - dns [] - propagation_timeout - propagation_delay - dns_ttl - dns_challenge_override_domain - resolvers - preferred_chains [smallest] { - root_common_name - any_common_name - } -} -``` - -* **dir** is the URL to the ACME CA's directory. - - Default: `https://acme-v02.api.letsencrypt.org/directory` - -* **test\_dir** is an optional fallback directory to use when retrying challenges; if all challenges fail, this endpoint will be used during retries; useful if a CA has a staging endpoint where you want to avoid rate limits on their production endpoint. - - Default: `https://acme-staging-v02.api.letsencrypt.org/directory` - -* **email** is the ACME account contact email address. - -* **timeout** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to wait before timing out an ACME operation. - -* **disable\_http\_challenge** will disable the HTTP challenge. - -* **disable\_tlsalpn\_challenge** will disable the TLS-ALPN challenge. - -* **alt\_http\_port** is an alternate port on which to serve the HTTP challenge; it has to happen on port 80 so you must forward packets to this alternate port. - -* **alt\_tlsalpn\_port** is an alternate port on which to serve the TLS-ALPN challenge; it has to happen on port 443 so you must forward packets to this alternate port. - -* **eab** specifies an External Account Binding which may be required with some ACME CAs. - -* **trusted\_roots** is one or more root certificates (as PEM filenames) to trust when connecting to the ACME CA server. - -* **dns** configures the DNS challenge. - -* **propagation\_timeout** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets the maximum time to wait for the DNS TXT records to appear when using the DNS challenge. Set to `-1` to disable propagation checks. Default 2 minutes. - -* **propagation\_delay** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets how long to wait before starting DNS TXT records propagation checks when using the DNS challenge. Default 0 (no wait). - -* **dns\_ttl** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets the TTL of the `TXT` record used for the DNS challenge. Rarely needed. - -* **dns\_challenge\_override\_domain** overrides the domain to use for the DNS challenge. This is to delegate the challenge to a different domain. - - You may want to use this if your primary domain's DNS provider does not have a [DNS plugin ![Image 31](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddy-dns) available. You can instead add a `CNAME` record with subdomain `_acme-challenge` to your primary domain, pointing to a secondary domain for which you _do_ have a plugin. This option _does not_ require special support from the plugin. - - When ACME issuers try to solve the DNS challenge for your primary domain, they will then follow the `CNAME` to your secondary domain to find the `TXT` record. - - **Note:** Use full canonical name from the CNAME record as value here - `_acme-challenge` subdomain won't be prepended automatically. - -* **resolvers** customizes the DNS resolvers used when performing the DNS challenge; these take precedence over system resolvers or any default ones. If set here, the resolvers will propagate to all configured certificate issuers. - - This is typically a list of IP addresses. For example, to use [Google Public DNS ![Image 32](https://caddyserver.com/old/resources/images/external-link.svg)](https://developers.google.com/speed/public-dns) : - - ``` - resolvers 8.8.8.8 8.8.4.4 - ``` - -* **preferred\_chains** specifies which certificate chains Caddy should prefer; useful if your CA provides multiple chains. Use one of the following options: - - * **smallest** will tell Caddy to prefer chains with the fewest amount of bytes. - - * **root\_common\_name** is a list of one or more common names; Caddy will choose the first chain that has a root that matches with at least one of the specified common names. - - * **any\_common\_name** is a list of one or more common names; Caddy will choose the first chain that has an issuer that matches with at least one of the specified common names. - - -#### zerossl - -Obtains certificates using [ZeroSSL's proprietary certificate issuance API](https://zerossl.com/documentation/api/). An API key is required and payment may also be required depending on your plan. Note that this issue is distinct from [ZeroSSL's ACME endpoint](https://zerossl.com/documentation/acme/). To use ZeroSSL's ACME endpoint, use the `acme` issuer described above configured with ZeroSSL's ACME directory endpoint. - -``` -... zerossl { - validity_days - alt_http_port - dns ... - propagation_delay - propagation_timeout - resolvers - dns_ttl -} -``` - -* **validity\_days** defines the certificate lifetime. Only certain values are accepted; see [ZeroSSL's docs](https://zerossl.com/documentation/api/create-certificate/) for details. - -* **alt\_http\_port** is the port to use for completing ZeroSSL's HTTP validation, if not port 80. -* **dns** enables CNAME validation method using the named DNS provider with the given configuration for automatic record provisioning. The DNS provider plugin must be installed from the [`caddy-dns` ![Image 33](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddy-dns) repositories. Each provider plugin may have their own syntax following their name; refer to their docs for details. Maintaining support for each DNS provider is a community effort. -* **propagation\_delay** is how long to wait before checking for CNAME record propagation. -* **propagation\_timeout** is how long to wait for CNAME record propagation before giving up. -* **resolvers** defines custom DNS resolvers to use when checking for CNAME record propagation. -* **dns\_ttl** configures the TTL for CNAME records created as part of the validation process. - -#### internal - -Obtains certificates from an internal certificate authority. - -``` -... internal { - ca - lifetime - sign_with_root -} -``` - -* **ca** is the name of the internal CA to use. Default: `local`. See the [PKI app global options](https://caddyserver.com/docs/caddyfile/options#pki-options) to configure the `local` CA, or to create alternate CAs. - - By default, the root CA certificate has a `3600d` lifetime (10 years) and the intermediate has a `7d` lifetime (7 days). - - Caddy will attempt to install the root CA certificate to the system trust store, but this may fail when Caddy is running as an unprivileged user, or when running in a Docker container. In that case, the root CA certificate will need to be manually installed, either by using the [`caddy trust`](https://caddyserver.com/docs/command-line#caddy-trust) command, or by [copying out of the container](https://caddyserver.com/docs/running#usage). - -* **lifetime** is a [duration value](https://caddyserver.com/docs/conventions#durations) that sets the validity period for interally issued leaf certificates. Default: `12h`. It is NOT recommended to change this, unless absolutely necessary. It must be shorter than the intermediate's lifetime. - -* **sign\_with\_root** forces the root to be the issuer instead of the intermediate. This is NOT recommended and should only be used when devices/clients do not properly validate certificate chains (very uncommon). - - -### Certificate Managers - -Certificate manager modules are distinct from issuer modules in that use of manager modules implies that an external tool or service is keeping the certificate renewed, whereas an issuer module implies that Caddy itself is managing the certificate. (Issuer modules take a Certificate Signing Request (CSR) as input, but certificate manager modules take a TLS ClientHello as input.) - -These manager modules come standard with the `tls` directive: - -#### tailscale - -Get certificates from a locally-running [Tailscale ![Image 34](https://caddyserver.com/old/resources/images/external-link.svg)](https://tailscale.com/) instance. [HTTPS must be enabled in your Tailscale account](https://tailscale.com/kb/1153/enabling-https/) (or your open source [Headscale server ![Image 35](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/juanfont/headscale) ); and the Caddy process must either be running as root, or you must configure `tailscaled` to give your Caddy user [permission to fetch certificates](https://github.com/caddyserver/caddy/pull/4541#issuecomment-1021568348). - -_**NOTE: This is usually unnecessary!** Caddy automatically uses Tailscale for all `*.ts.net` domains without any extra configuration._ - -``` -get_certificate tailscale # often unnecessary! -``` - -#### http - -Get certificates by making an HTTP(S) request. The response must have a `200` status code and the body must contain a PEM chain including the full certificate (with intermediates) as well as the private key. - -``` -get_certificate http -``` - -* **url** is the fully-qualified URL to which to make the request. It is strongly advised that this be a local endpoint for performance reasons. The URL will be augmented with the following query string parameters: - - * `server_name`: SNI value - * `signature_schemes`: comma-separated list of hex IDs of signature algorithms - * `cipher_suites`: comma-separated list of hex IDS of cipher suites - -Examples --------- - -Use a custom certificate and key. The certificate should have [SANs](https://en.wikipedia.org/wiki/Subject_Alternative_Name) that match the site address: - -``` -example.com { - tls cert.pem key.pem -} -``` - -Use [locally-trusted](https://caddyserver.com/docs/automatic-https#local-https) certificates for all hosts on the current site block, rather than public certificates via ACME / Let's Encrypt (useful in dev environments): - -``` -example.com { - tls internal -} -``` - -Use locally-trusted certificates, but managed [On-Demand](https://caddyserver.com/docs/automatic-https#on-demand-tls) instead of in the background. This allows you to point any domain at your Caddy instance and have it automatically provision a certificate for you. This SHOULD NOT be used if your Caddy instance is publicly accessible, since an attacker could use it to exhaust your server's resources: - -``` -https:// { - tls internal { - on_demand - } -} -``` - -Use custom options for the internal CA (cannot use the `tls internal` shortcut): - -``` -example.com { - tls { - issuer internal { - ca foo - } - } -} -``` - -Specify an email address for your ACME account (but if only one email is used for all sites, we recommend the `email` [global option](https://caddyserver.com/docs/caddyfile/options) instead): - -``` -example.com { - tls your@email.com -} -``` - -Enable the DNS challenge for a domain managed on Cloudflare with account credentials in an environment variable. This unlocks wildcard certificate support, which requires DNS validation: - -``` -*.example.com { - tls { - dns cloudflare {env.CLOUDFLARE_API_TOKEN} - } -} -``` - -Get the certificate chain via HTTP, instead of having Caddy manage it. Note that [`get_certificate`](https://caddyserver.com/docs/caddyfile/directives/tls#certificate-managers) implies [`on_demand`](https://caddyserver.com/docs/caddyfile/directives/tls#on_demand) is enabled, fetching certificates using a module instead of triggering ACME issuance: - -``` -https:// { - tls { - get_certificate http http://localhost:9007/certs - } -} -``` - -Enable TLS Client Authentication and require clients to present a valid certificate that is verified against all the provided CA's via `trusted_ca_cert_file` - -``` -example.com { - tls { - client_auth { - mode require_and_verify - trusted_ca_cert_file ../caddy.ca.cer - trusted_ca_cert_file ../root.ca.cer - } - } -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/tracing.md b/docs/caddy/docs/docs/caddyfile/directives/tracing.md deleted file mode 100644 index db47dfa..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/tracing.md +++ /dev/null @@ -1,66 +0,0 @@ -Title: tracing (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/tracing - -Markdown Content: -Enables integration with OpenTelemetry tracing facilities, using [`opentelemetry-go` ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/open-telemetry/opentelemetry-go) . - -When enabled, it will propagate an existing trace context or initialize a new one. - -It uses [gRPC](https://github.com/grpc/) as an exporter protocol and W3C [tracecontext](https://www.w3.org/TR/trace-context/) and [baggage](https://www.w3.org/TR/baggage/) as propagators. - -The trace ID is added to [access logs](https://caddyserver.com/docs/caddyfile/directives/log) as the standard `traceID` field. Additionally, the `{http.vars.trace_id}` placeholder is made available, for example to add the ID to a (`request_header`)\[request\_header\] to pass it to your app. - -Syntax ------- - -``` -tracing { - [span ] -} -``` - -* **** is a span name. Please see span [naming guidelines](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.7.0/specification/trace/api.md). - - [Placeholders](https://caddyserver.com/docs/caddyfile/concepts#placeholders) may be used in span names; keep in mind that tracing happens as early as possible, so only request placeholders may be used, and not response placeholders. - - -Configuration -------------- - -### Environment variables - -It can be configured using the environment variables defined by the [OpenTelemetry Environment Variable Specification](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md). - -For the exporter configuration details, please see [spec](https://github.com/open-telemetry/opentelemetry-specification/blob/v1.7.0/specification/protocol/exporter.md). - -For example: - -``` -export OTEL_EXPORTER_OTLP_HEADERS="myAuthHeader=myToken,anotherHeader=value" -export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://my-otlp-endpoint:55680 -``` - -Examples --------- - -Here is a **Caddyfile** example: - -``` -example.com { - handle /api* { - tracing { - span api - } - request_header X-Trace-Id {http.vars.trace_id} - reverse_proxy localhost:8081 - } - - handle { - tracing { - span app - } - reverse_proxy localhost:8080 - } -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/try_files.md b/docs/caddy/docs/docs/caddyfile/directives/try_files.md deleted file mode 100644 index 2b4d3e9..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/try_files.md +++ /dev/null @@ -1,77 +0,0 @@ -Title: try_files (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/try_files - -Markdown Content: -Rewrites the request URI path to the first of the listed files which exists in the site root. If no files match, no rewrite is performed. - -Syntax ------- - -``` -try_files { - policy first_exist|smallest_size|largest_size|most_recently_modified -} -``` - -* **** is the list of files to try. The URI path will be rewritten to the first one that exists. - - To match directories, append a trailing forward slash `/` to the path. All file paths are relative to the site [root](https://caddyserver.com/docs/caddyfile/directives/root), and [glob patterns](https://pkg.go.dev/path/filepath#Match) will be expanded. - - Each argument may also contain a query string, in which case the query string will also be changed if it matches that particular file. - - If the `try_policy` is `first_exist` (the default), then the last item in the list may be a number prefixed by `=` (e.g. `=404`), which as a fallback, will emit an error with that code; the error can be caught and handled with [`handle_errors`](https://caddyserver.com/docs/caddyfile/directives/handle_errors). - -* **policy** is the policy for choosing the file among the list of files. - - Default: `first_exist` - - -Expanded form -------------- - -The `try_files` directive is basically a shortcut for: - -``` -@try_files file -rewrite @try_files {file_match.relative} -``` - -Note that this directive does not accept a matcher token. If you need more complex matching logic, then use the expanded form above as a basis. - -See the [`file` matcher](https://caddyserver.com/docs/caddyfile/matchers#file) for more details. - -Examples --------- - -If the request does not match any static files, rewrite to your PHP index/router entrypoint: - -``` -try_files {path} /index.php -``` - -Same, but adding the original path to the query string (required by some legacy PHP apps): - -``` -try_files {path} /index.php?{query}&p={path} -``` - -Same, but also match directories: - -``` -try_files {path} {path}/ /index.php?{query}&p={path} -``` - -Attempt to rewrite to a file or directory if it exists, otherwise emit a 404 error (which can be caught and handled with [`handle_errors`](https://caddyserver.com/docs/caddyfile/directives/handle_errors)): - -``` -try_files {path} {path}/ =404 -``` - -Choose the most recently deployed version of a static file (e.g. serve `index.be331df.html` when `index.html` is requested): - -``` -try_files {file.base}.*.{file.ext} { - policy most_recently_modified -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/uri.md b/docs/caddy/docs/docs/caddyfile/directives/uri.md deleted file mode 100644 index ff496e4..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/uri.md +++ /dev/null @@ -1,152 +0,0 @@ -Title: uri (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/uri - -Markdown Content: -Manipulates a request's URI. It can strip path prefix/suffix or replace substrings on the whole URI. - -This directive is distinct from [`rewrite`](https://caddyserver.com/docs/caddyfile/directives/rewrite) in that `uri` _differentiably_ changes the URI, rather than resetting it to something completely different as `rewrite` does. While `rewrite` is treated specially as an internal redirect, `uri` is just another middleware. - -Syntax ------- - -Multiple different operations are supported: - -``` -uri [] strip_prefix -uri [] strip_suffix -uri [] replace [] -uri [] path_regexp -uri [] query [-|+] [] -uri [] query { - [] [] - ... -} -``` - -The first (non-matcher) argument specifies the operation: - -* **strip\_prefix** strips the prefix from the path. - -* **strip\_suffix** strips the suffix from the path. - -* **replace** performs a substring replacement across the whole URI. - - * **** is the prefix, suffix, or search string/regular expression. If a prefix, the leading forward slash may be omitted, since paths always start with a forward slash. - - * **** is the replacement string. Supports using capture groups with `$name` or `${name}` syntax, or with a number for the index, such as `$1`. See the [Go documentation](https://golang.org/pkg/regexp/#Regexp.Expand) for details. If the replacement value is `""`, then the matching text is removed from the value. - - * **** is an optional limit to the maximum number of replacements. - -* **path\_regexp** performs a regular expression replacement on the path portion of the URI. - - * **** is the prefix, suffix, or search string/regular expression. If a prefix, the leading forward slash may be omitted, since paths always start with a forward slash. - - * **** is the replacement string. Supports using capture groups with `$name` or `${name}` syntax, or with a number for the index, such as `$1`. See the [Go documentation](https://golang.org/pkg/regexp/#Regexp.Expand) for details. If the replacement value is `""`, then the matching text is removed from the value. - -* **query** performs manipulations on the URI query, with the mode depending on the prefix to the parameter name or the count of arguments. A block can be used to specify multiple operations at once, grouped and performed in this order: rename 🡒 set 🡒 append 🡒 replace 🡒 delete. - - * With no prefix, the parameter is set with the given value in the query. - - For example, `uri query foo bar` will set the value of the `foo` param to `bar`. - - * Prefix with `-` to remove the parameter from the query. - - For example, `uri query -foo` will delete the `foo` parameter from the query. - - * Prefix with `+` to append a parameter to the query, with the given value. This will _not_ overwrite an existing parameter with the same name (omit the `+` to overwrite). - - For example, `uri query +foo bar` will append `foo=bar` to the query. - - * A param with `>` as an infix will rename the parameter to the value after the `>`. - - For example, `uri query foo>bar` will rename the `foo` parameter to `bar`. - - * With three arguments, query value regular expression replacement is performed, where the first arg is the query param name, the second is the search value, and the third is the replacement. The first arg (param name) may be `*` to perform the replacement on all query params. - - Supports using capture groups with `$name` or `${name}` syntax, or with a number for the index, such as `$1`. See the [Go documentation](https://golang.org/pkg/regexp/#Regexp.Expand) for details. If the replacement value is `""`, then the matching text is removed from the value. - - For example, `uri query foo ^(ba)r $1z` would replace the value of the `foo` param, where the value began with `bar` resulting in the value becoming `baz`. - - -URI mutations occur on the normalized or unescaped form of the URI. However, escape sequences can be used in the prefix or suffix patterns to match only those literal escapes at those positions in the request path. For example, `uri strip_prefix /a/b` will rewrite both `/a/b/c` and `/a%2Fb/c` to `/c`; and `uri strip_prefix /a%2Fb` will rewrite `/a%2Fb/c` to `/c`, but won't match `/a/b/c`. - -The URI path is cleaned of directory traversal dots before modifications. Additionally, multiple slashes (such as `//`) are merged unless the `` contains multiple slashes too. - -Similar directives ------------------- - -Some other directives can also manipulate the request URI. - -* [`rewrite`](https://caddyserver.com/docs/caddyfile/directives/rewrite) changes the entire path and query to a new value instead of partially changing the value. - -* [`handle_path`](https://caddyserver.com/docs/caddyfile/directives/handle_path) does the same as [`handle`](https://caddyserver.com/docs/caddyfile/directives/handle), but it strips a prefix from the request before running its handlers. Can be used instead of `uri strip_prefix` to eliminate one extra line of configuration in many cases. - - -Examples --------- - -Strip `/api` from the beginning of all request paths: - -``` -uri strip_prefix /api -``` - -Strip `.php` from the end of all request paths: - -``` -uri strip_suffix .php -``` - -Replace "/docs/" with "/v1/docs/" in any request URI: - -``` -uri replace /docs/ /v1/docs/ -``` - -Collapse all repeated slashes in the request path (but not the request query) to a single slash: - -``` -uri path_regexp /{2,} / -``` - -Set the value of the `foo` query parameter to `bar`: - -``` -uri query foo bar -``` - -Remove the `foo` parameter from the query: - -``` -uri query -foo -``` - -Rename the `foo` query parameter to `bar`: - -``` -uri query foo>bar -``` - -Append the `bar` parameter to the query: - -``` -uri query +foo bar -``` - -Replace the value of the `foo` query parameter where the value begins with `bar` with `baz`: - -``` -uri query foo ^(ba)r $1z -``` - -Perform multiple query operations at once: - -``` -uri query { - +foo bar - -baz - qux test - renamethis>renamed -} -``` diff --git a/docs/caddy/docs/docs/caddyfile/directives/vars.md b/docs/caddy/docs/docs/caddyfile/directives/vars.md deleted file mode 100644 index 44db916..0000000 --- a/docs/caddy/docs/docs/caddyfile/directives/vars.md +++ /dev/null @@ -1,61 +0,0 @@ -Title: vars (Caddyfile directive) - Caddy Documentation - -URL Source: https://caddyserver.com/docs/caddyfile/directives/vars - -Markdown Content: -Sets one or more variables to a particular value, to be used later in the request handling chain. - -The primary way to access variables is with placeholders, which have the form `{vars.variable_name}`, or with the [`vars`](https://caddyserver.com/docs/caddyfile/matchers#vars) and [`vars_regexp`](https://caddyserver.com/docs/caddyfile/matchers#vars_regexp) request matchers. - -You may use variables with the [`templates`](https://caddyserver.com/docs/caddyfile/directives/templates) directive using the `placeholder` function, for example: `{{placeholder "http.vars.variable_name"}}` - -As a special case, it's possible to override the variable named `http.auth.user.id`, which is stored in the replacer, to update the `user_id` field in [access logs](https://caddyserver.com/docs/caddyfile/directives/log). - -Syntax ------- - -``` -vars [] [ ] { - - ... -} -``` - -* **** is the variable name to set. - -* **** is the value of the variable. - - The value will be type converted if possible; `true` and `false` will be converted to boolean types, and numeric values will be converted to integer or float accordingly. To avoid this conversion and keep them as strings, you may wrap them with [quotes](https://caddyserver.com/docs/caddyfile/concepts#tokens-and-quotes). - - -Examples --------- - -To set a single variable, the value being conditional based on the request path, then responding with the value: - -``` -example.com { - vars /foo* isFoo "yep" - vars isFoo "nope" - - respond {vars.isFoo} -} -``` - -To set multiple variables, each converted to the appropriate scalar type: - -``` -vars { - # boolean - abc true - - # integer - def 1 - - # float - ghi 2.3 - - # string - jkl "example" -} -``` diff --git a/docs/caddy/docs/docs/extending-caddy/namespaces.md b/docs/caddy/docs/docs/extending-caddy/namespaces.md deleted file mode 100644 index 0b5d272..0000000 --- a/docs/caddy/docs/docs/extending-caddy/namespaces.md +++ /dev/null @@ -1,134 +0,0 @@ -Title: Module Namespaces - Caddy Documentation - -URL Source: https://caddyserver.com/docs/extending-caddy/namespaces - -Markdown Content: -Module Namespaces — Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -SearchK - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -Module Namespaces[🔗](https://caddyserver.com/docs/extending-caddy/namespaces#module-namespaces "Direct link") -============================================================================================================== - -Caddy guest modules are loaded generically as `interface{}` or `any` types. In order for the host modules to be able to use them, the loaded guest modules are usually type-asserted to a known type first. This page describes the mapping from module namespaces to Go types for all the standard modules. - -Documentation for non-standard module namespaces can be found with the documentation for the host module that defines them. - -One way to read this table is, "If your module is in , then it should compile as ." - -| Namespace | Expected Interface Type | Description | Notes | -| --- | --- | --- | --- | -| | [`caddy.App`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#App) | Caddy app | | -| admin.api | [`caddy.AdminRouter`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#AdminRouter) - -[`caddy.AdminHandler`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#AdminHandler) | Registers HTTP routes for admin - -HTTP handler middleware | | -| caddy.config\_loaders | [`caddy.ConfigLoader`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#ConfigLoader) | Loads a config | _⚠️ Experimental_ | -| caddy.fs | [`fs.FS`](https://pkg.go.dev/io/fs#FS) | Virtual file system | _⚠️ Experimental_ | -| caddy.listeners | [`caddy.ListenerWrapper`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#ListenerWrapper) | Wrap network listeners | | -| caddy.logging.encoders | [`zapcore.Encoder`](https://pkg.go.dev/go.uber.org/zap/zapcore#Encoder) | Log entry encoder | | -| caddy.logging.encoders.filter | [`logging.LogFieldFilter`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/logging#LogFieldFilter) | Log field filter | | -| caddy.logging.writers | [`caddy.WriterOpener`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#WriterOpener) | Log writers | | -| caddy.storage | [`caddy.StorageConverter`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#StorageConverter) | Storage backends | | -| dns.providers | [`certmagic.DNSProvider`](https://pkg.go.dev/github.com/caddyserver/certmagic#DNSProvider) | DNS challenge solver | | -| events.handlers | [`caddyevents.Handler`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyevents#Handler) | Event handlers | _⚠️ Experimental_ | -| http.authentication.hashes | [`caddyauth.Comparer`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/caddyauth#Comparer) - -[`caddyauth.Hasher`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/caddyauth#Hasher) | Password comparers - -Password hashers | | -| http.authentication.providers | [`caddyauth.Authenticator`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/caddyauth#Authenticator) | HTTP authentication providers | | -| http.encoders | [`encode.Encoding`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/encode#Encoding) - -[`encode.Encoder`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/encode#Encoder) | Creates an encoder (compression) - -Encodes a data stream | | -| http.handlers | [`caddyhttp.MiddlewareHandler`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp#MiddlewareHandler) | HTTP handlers | | -| http.ip\_sources | [`caddyhttp.IPRangeSource`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp#IPRangeSource) | IP ranges for trusted proxies | | -| http.matchers | [`caddyhttp.RequestMatcher`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp#RequestMatcher) - -[`caddyhttp.CELLibraryProducer`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp#CELLibraryProducer) | HTTP request matchers - -Support for CEL expressions | - -_(Optional)_ | -| http.precompressed | [`encode.Precompressed`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/encode#Precompressed) | Supported precompress mappings | | -| http.reverse\_proxy.circuit\_breakers | [`reverseproxy.CircuitBreaker`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy#CircuitBreaker) | Reverse proxy circuit breakers | | -| http.reverse\_proxy.selection\_policies | [`reverseproxy.Selector`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy#Selector) | Load balancing selection policies | | -| http.reverse\_proxy.transport | [`http.RoundTripper`](https://pkg.go.dev/net/http#RoundTripper) | HTTP reverse proxy transports | | -| http.reverse\_proxy.upstreams | [`reverseproxy.UpstreamSource`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy#UpstreamSource) | Dynamic upstream source | _⚠️ Experimental_ | -| tls.ca\_pool.source | [`caddytls.CA`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#CA) | Source of trusted root certs | | -| tls.certificates | [`caddytls.CertificateLoader`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#CertificateLoader) | TLS certificate source | | -| tls.client\_auth | [`caddytls.ClientCertificateVerifier`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#ClientCertificateVerifier) | Verifies client certificates | | -| tls.get\_certificate | [`certmagic.Manager`](https://pkg.go.dev/github.com/caddyserver/certmagic#Manager) | TLS certificate manager | _⚠️ Experimental_ | -| tls.handshake\_match | [`caddytls.ConnectionMatcher`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#ConnectionMatcher) | TLS connection matcher | | -| tls.issuance | [`certmagic.Issuer`](https://pkg.go.dev/github.com/caddyserver/certmagic#Issuer) | TLS certificate issuer | | -| tls.leaf\_cert\_loader | [`caddytls.LeafCertificateLoader`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#LeafCertificateLoader) | Loads trusted leaf certs | | -| tls.permission | [`caddytls.OnDemandPermission`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#OnDemandPermission) | Whether to obtain a cert for a domain | _⚠️ Experimental_ | -| tls.stek | [`caddytls.STEKProvider`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#STEKProvider) | TLS session ticket key source | | - -Namespaces marked as "Experimental" are subject to change. (Please develop with them so we can finalize their interfaces!) - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/admin.md b/docs/caddy/docs/docs/json/admin.md deleted file mode 100644 index c7940a3..0000000 --- a/docs/caddy/docs/docs/json/admin.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: admin - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/admin/ - -Markdown Content: -admin - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps.md b/docs/caddy/docs/docs/json/apps.md deleted file mode 100644 index 492fbc7..0000000 --- a/docs/caddy/docs/docs/json/apps.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: apps - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/ - -Markdown Content: -apps - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/http/http_port.md b/docs/caddy/docs/docs/json/apps/http/http_port.md deleted file mode 100644 index bd8adfe..0000000 --- a/docs/caddy/docs/docs/json/apps/http/http_port.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: http/http_port - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/http/http_port/ - -Markdown Content: -http/http\_port - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/http/https_port.md b/docs/caddy/docs/docs/json/apps/http/https_port.md deleted file mode 100644 index 5c1a3d0..0000000 --- a/docs/caddy/docs/docs/json/apps/http/https_port.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: http/https_port - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/http/https_port/ - -Markdown Content: -http/https\_port - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/http/servers/automatic_https/ignore_loaded_certificates.md b/docs/caddy/docs/docs/json/apps/http/servers/automatic_https/ignore_loaded_certificates.md deleted file mode 100644 index 82ab5c0..0000000 --- a/docs/caddy/docs/docs/json/apps/http/servers/automatic_https/ignore_loaded_certificates.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: apps/http/.../automatic_https/ignore_loaded_certificates - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/http/servers/automatic_https/ignore_loaded_certificates/ - -Markdown Content: -apps/http/.../automatic\_https/ignore\_loaded\_certificates - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/http/servers/listener_wrappers/http_redirect.md b/docs/caddy/docs/docs/json/apps/http/servers/listener_wrappers/http_redirect.md deleted file mode 100644 index a059740..0000000 --- a/docs/caddy/docs/docs/json/apps/http/servers/listener_wrappers/http_redirect.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: apps/http/.../listener_wrappers/http_redirect - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/http/servers/listener_wrappers/http_redirect/ - -Markdown Content: -apps/http/.../listener\_wrappers/http\_redirect - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/http/servers/listener_wrappers/proxy_protocol.md b/docs/caddy/docs/docs/json/apps/http/servers/listener_wrappers/proxy_protocol.md deleted file mode 100644 index c2d58de..0000000 --- a/docs/caddy/docs/docs/json/apps/http/servers/listener_wrappers/proxy_protocol.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: apps/http/.../listener_wrappers/proxy_protocol - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/http/servers/listener_wrappers/proxy_protocol/ - -Markdown Content: -apps/http/.../listener\_wrappers/proxy\_protocol - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/http/servers/routes/match/host.md b/docs/caddy/docs/docs/json/apps/http/servers/routes/match/host.md deleted file mode 100644 index dcaccd3..0000000 --- a/docs/caddy/docs/docs/json/apps/http/servers/routes/match/host.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: apps/http/.../match/host - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/http/servers/routes/match/host/ - -Markdown Content: -apps/http/.../match/host - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/http/servers/trusted_proxies.md b/docs/caddy/docs/docs/json/apps/http/servers/trusted_proxies.md deleted file mode 100644 index 7581d96..0000000 --- a/docs/caddy/docs/docs/json/apps/http/servers/trusted_proxies.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: servers/trusted_proxies - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/http/servers/trusted_proxies/ - -Markdown Content: -servers/trusted\_proxies - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/tls/automation/on_demand.md b/docs/caddy/docs/docs/json/apps/tls/automation/on_demand.md deleted file mode 100644 index f5a33ab..0000000 --- a/docs/caddy/docs/docs/json/apps/tls/automation/on_demand.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: automation/on_demand - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/tls/automation/on_demand/ - -Markdown Content: -automation/on\_demand - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/tls/automation/policies.md b/docs/caddy/docs/docs/json/apps/tls/automation/policies.md deleted file mode 100644 index 7e9e614..0000000 --- a/docs/caddy/docs/docs/json/apps/tls/automation/policies.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: automation/policies - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/tls/automation/policies/ - -Markdown Content: -automation/policies - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/tls/certificates/automate.md b/docs/caddy/docs/docs/json/apps/tls/certificates/automate.md deleted file mode 100644 index 8ef946c..0000000 --- a/docs/caddy/docs/docs/json/apps/tls/certificates/automate.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: certificates/automate - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/apps/tls/certificates/automate/ - -Markdown Content: -certificates/automate - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/logging.md b/docs/caddy/docs/docs/json/logging.md deleted file mode 100644 index efc1df0..0000000 --- a/docs/caddy/docs/docs/json/logging.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: logging - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/logging/ - -Markdown Content: -logging - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/logging/logs.md b/docs/caddy/docs/docs/json/logging/logs.md deleted file mode 100644 index 276bc89..0000000 --- a/docs/caddy/docs/docs/json/logging/logs.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: logging/logs - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/logging/logs/ - -Markdown Content: -logging/logs - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/storage/file_system.md b/docs/caddy/docs/docs/json/storage/file_system.md deleted file mode 100644 index 4672502..0000000 --- a/docs/caddy/docs/docs/json/storage/file_system.md +++ /dev/null @@ -1,85 +0,0 @@ -Title: storage/file_system - JSON Config Structure - -URL Source: https://caddyserver.com/docs/json/storage/file_system/ - -Markdown Content: -storage/file\_system - JSON Config Structure - Caddy Documentation -=============== - -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) - -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project - -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) - -* [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) -* Get Caddy -* [Install](https://caddyserver.com/docs/install) -* [Build from source](https://caddyserver.com/docs/build) -* Tutorials -* [Getting Started](https://caddyserver.com/docs/getting-started) -* [Quick-starts](https://caddyserver.com/docs/quick-starts) - * [Using the API](https://caddyserver.com/docs/quick-starts/api) - * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - * [Static files](https://caddyserver.com/docs/quick-starts/static-files) - * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - * [HTTPS](https://caddyserver.com/docs/quick-starts/https) -* [Caddy API](https://caddyserver.com/docs/api-tutorial) -* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) -* Reference -* [Command Line](https://caddyserver.com/docs/command-line) -* [API](https://caddyserver.com/docs/api) -* [Caddyfile](https://caddyserver.com/docs/caddyfile) - * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) - * [Global options](https://caddyserver.com/docs/caddyfile/options) - * [Directives](https://caddyserver.com/docs/caddyfile/directives) - * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) - * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) - * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -* [Modules](https://caddyserver.com/docs/modules/) -* [JSON Config Structure](https://caddyserver.com/docs/json/) -* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) -* Articles -* [Caddy Architecture](https://caddyserver.com/docs/architecture) -* [Conventions](https://caddyserver.com/docs/conventions) -* [Config Adapters](https://caddyserver.com/docs/config-adapters) -* [Keep Caddy Running](https://caddyserver.com/docs/running) -* [How Logging Works](https://caddyserver.com/docs/logging) -* [Monitoring Caddy](https://caddyserver.com/docs/metrics) -* [Profiling Caddy](https://caddyserver.com/docs/profiling) -* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) -* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) -* Developers -* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) - * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) - * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) - * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) -* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) - -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` - -Description ------------ - -Field List ----------- - -Fulfilled by modules in namespace: - -This property is **required** because it specifies the module name. - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) -[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) - -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/modules.md b/docs/caddy/docs/docs/modules.md deleted file mode 100644 index 60b089d..0000000 --- a/docs/caddy/docs/docs/modules.md +++ /dev/null @@ -1,679 +0,0 @@ -Title: Modules - Caddy Documentation - -URL Source: https://caddyserver.com/docs/modules/ - -Markdown Content: -This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). - -We recommend using your browser's "Find in page" feature for quick lookups. - -| | Module ID | Description | -| --- | --- | --- | -| Standard | [admin.api.load](https://caddyserver.com/docs/modules/admin.api.load) | is a module that provides the /load endpoint for the Caddy admin API. | -| Standard | [admin.api.metrics](https://caddyserver.com/docs/modules/admin.api.metrics) | is a module that serves a metrics endpoint so that any gathered metrics can be exposed for scraping. | -| Standard | [admin.api.pki](https://caddyserver.com/docs/modules/admin.api.pki) | is a module that serves PKI endpoints to retrieve information about the CAs being managed by Caddy. | -| Non-standard | [admin.api.purge](https://caddyserver.com/docs/modules/admin.api.purge) | is a module that provides the /purge endpoint as the admin api. | -| Standard | [admin.api.reverse\_proxy](https://caddyserver.com/docs/modules/admin.api.reverse_proxy) | is a module that provides the /reverse\_proxy/upstreams endpoint for the Caddy admin API. | -| Non-standard | [admin.api.trojan](https://caddyserver.com/docs/modules/admin.api.trojan) | is ... | -| Standard | [caddy.config\_loaders.http](https://caddyserver.com/docs/modules/caddy.config_loaders.http) | can load Caddy configs over HTTP(S). | -| Non-standard | [caddy.config\_loaders.storage](https://caddyserver.com/docs/modules/caddy.config_loaders.storage) | is a dynamic configuration loader that reads the configuration from a Caddy storage. | -| Standard | [caddy.filesystems](https://caddyserver.com/docs/modules/caddy.filesystems) | loads caddy.fs modules into the global filesystem map | -| Non-standard | [caddy.fs.git](https://caddyserver.com/docs/modules/caddy.fs.git) | The \`git\` filesystem module uses a git repository as the virtual filesystem. | -| Non-standard | [caddy.fs.s3](https://caddyserver.com/docs/modules/caddy.fs.s3) | is a Caddy virtual filesystem module for AWS S3 (and compatible) object store. | -| Standard | [caddy.listeners.http\_redirect](https://caddyserver.com/docs/modules/caddy.listeners.http_redirect) | provides HTTP-\>HTTPS redirects for connections that come on the TLS port as an HTTP request, by detecting using the first few bytes that it's not a TLS handshake, but instead an HTTP request.... | -| Non-standard | [caddy.listeners.ngrok](https://caddyserver.com/docs/modules/caddy.listeners.ngrok) | is a \`listener\_wrapper\` whose address is an ngrok-ingress address | -| Non-standard | [caddy.listeners.ngrok.tunnels.http](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http) | ngrok HTTP tunnel | -| Non-standard | [caddy.listeners.ngrok.tunnels.labeled](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.labeled) | ngrok Labeled Tunnel | -| Non-standard | [caddy.listeners.ngrok.tunnels.tcp](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tcp) | ngrok TCP tunnel | -| Non-standard | [caddy.listeners.ngrok.tunnels.tls](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tls) | ngrok TLS tunnel Note: only available for ngrok Enterprise user | -| Standard | [caddy.listeners.proxy\_protocol](https://caddyserver.com/docs/modules/caddy.listeners.proxy_protocol#github.com/caddyserver/caddy)(github.com/caddyserver/caddy) - | provides PROXY protocol support to Caddy by implementing the caddy.ListenerWrapper interface. | -| Non-standard | [caddy.listeners.proxy\_protocol](https://caddyserver.com/docs/modules/caddy.listeners.proxy_protocol#github.com/mastercactapus/caddy2-proxyprotocol)(github.com/mastercactapus/caddy2-proxyprotocol) - - | | -| Non-standard | [caddy.listeners.throttle](https://caddyserver.com/docs/modules/caddy.listeners.throttle) | The \`throttle\` listener limits the bandwidth of the connection to the given values. | -| Standard | [caddy.listeners.tls](https://caddyserver.com/docs/modules/caddy.listeners.tls) | is a no-op listener wrapper that marks where the TLS listener should be in a chain of listener wrappers. | -| Non-standard | [caddy.listeners.trojan](https://caddyserver.com/docs/modules/caddy.listeners.trojan) | implements an TLS wrapper that it accept connections from clients and check the connection with pre-defined password and aead cipher defined by go-shadowsocks2, and return a normal page if failed.... | -| Standard | [caddy.logging.encoders.append](https://caddyserver.com/docs/modules/caddy.logging.encoders.append) | can be used to add fields to all log entries that pass through it. | -| Standard | [caddy.logging.encoders.console](https://caddyserver.com/docs/modules/caddy.logging.encoders.console) | encodes log entries that are mostly human-readable. | -| Non-standard | [caddy.logging.encoders.elastic](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic) | | -| Standard | [caddy.logging.encoders.filter](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter) | can filter (manipulate) fields on log entries before they are actually encoded by an underlying encoder. | -| Non-standard | [caddy.logging.encoders.filter.basic\_auth\_user](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.basic_auth_user) | is a Caddy log field filter that replaces the a base64 encoded authorization header with just the user name. | -| Standard | [caddy.logging.encoders.filter.cookie](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.cookie) | is a Caddy log field filter that filters cookies. | -| Standard | [caddy.logging.encoders.filter.delete](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.delete) | is a Caddy log field filter that deletes the field. | -| Standard | [caddy.logging.encoders.filter.hash](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.hash) | is a Caddy log field filter that replaces the field with the initial 4 bytes of the SHA-256 hash of the content. | -| Standard | [caddy.logging.encoders.filter.ip\_mask](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.ip_mask) | is a Caddy log field filter that masks IP addresses in a string, or in an array of strings. | -| Standard | [caddy.logging.encoders.filter.query](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.query) | is a Caddy log field filter that filters query parameters from a URL. | -| Standard | [caddy.logging.encoders.filter.regexp](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.regexp) | is a Caddy log field filter that replaces the field matching the provided regexp with the indicated string. | -| Standard | [caddy.logging.encoders.filter.rename](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.rename) | is a Caddy log field filter that renames the field's key with the indicated name. | -| Standard | [caddy.logging.encoders.filter.replace](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.replace) | is a Caddy log field filter that replaces the field with the indicated string. | -| Non-standard | [caddy.logging.encoders.filter.tls\_cipher](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_cipher) | is Caddy log field filter that replaces the numeric TLS cipher\_suite value with the string representation. | -| Non-standard | [caddy.logging.encoders.filter.tls\_version](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_version) | is a Caddy log field filter that replaces the numeric TLS version with the string version and optionally adds a prefix. | -| Non-standard | [caddy.logging.encoders.formatted](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#github.com/caddyserver/format-encoder)(github.com/caddyserver/format-encoder) - - | allows the user to provide custom template for log prints. | -| Non-standard | [caddy.logging.encoders.formatted](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#github.com/caddyserver/transform-encoder)(github.com/caddyserver/transform-encoder) - - | | -| Standard | [caddy.logging.encoders.json](https://caddyserver.com/docs/modules/caddy.logging.encoders.json) | encodes entries as JSON. | -| Standard | [caddy.logging.encoders.logfmt](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt) | encodes log entries as logfmt: https://www.brandur.org/logfmt Note that logfmt does not encode nested structures properly, so it is not a good fit for most logs. | -| Standard | [caddy.logging.encoders.single\_field](https://caddyserver.com/docs/modules/caddy.logging.encoders.single_field) | writes a log entry that consists entirely of a single string field in the log entry. | -| Non-standard | [caddy.logging.encoders.transform](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform) | allows the user to provide custom template for log prints. | -| Standard | [caddy.logging.writers.discard](https://caddyserver.com/docs/modules/caddy.logging.writers.discard) | discards all writes. | -| Standard | [caddy.logging.writers.file](https://caddyserver.com/docs/modules/caddy.logging.writers.file) | can write logs to files. | -| Non-standard | [caddy.logging.writers.graphite](https://caddyserver.com/docs/modules/caddy.logging.writers.graphite) | is a Caddy logger used to send server activity to a Graphite database. | -| Non-standard | [caddy.logging.writers.influx\_log](https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log) | | -| Non-standard | [caddy.logging.writers.influxlog](https://caddyserver.com/docs/modules/caddy.logging.writers.influxlog) | is a influxdb client to write time series data | -| Standard | [caddy.logging.writers.net](https://caddyserver.com/docs/modules/caddy.logging.writers.net) | implements a log writer that outputs to a network socket. | -| Standard | [caddy.logging.writers.stderr](https://caddyserver.com/docs/modules/caddy.logging.writers.stderr) | writes logs to standard error. | -| Standard | [caddy.logging.writers.stdout](https://caddyserver.com/docs/modules/caddy.logging.writers.stdout) | writes logs to standard out. | -| Non-standard | [caddy.storage.consul](https://caddyserver.com/docs/modules/caddy.storage.consul#github.com/pteich/caddy-tlsconsul)(github.com/pteich/caddy-tlsconsul) - - | allows to store certificates and other TLS resources in a shared cluster environment using Consul's key/value-store. | -| Non-standard | [caddy.storage.consul](https://caddyserver.com/docs/modules/caddy.storage.consul#github.com/pteich/caddy-tlsconsul)(github.com/pteich/caddy-tlsconsul) - - | holds all parameters for the Consul connection | -| Non-standard | [caddy.storage.consul](https://caddyserver.com/docs/modules/caddy.storage.consul#github.com/sillygod/cdp-cache)(github.com/sillygod/cdp-cache) - - | implements the certmagic storage's interface This holds the consul client and kv store | -| Non-standard | [caddy.storage.dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#github.com/silinternational/certmagic-storage-dynamodb)(github.com/silinternational/certmagic-storage-dynamodb) - - | implements certmagic.Storage to facilitate storage of certificates in DynamoDB for a clustered environment. | -| Non-standard | [caddy.storage.dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#github.com/silinternational/certmagic-storage-dynamodb)(github.com/silinternational/certmagic-storage-dynamodb) - - | implements certmagic.Storage to facilitate storage of certificates in DynamoDB for a clustered environment. | -| Non-standard | [caddy.storage.encrypted](https://caddyserver.com/docs/modules/caddy.storage.encrypted) | is the impelementation of certmagic.Storage interface for Caddy with encryption/decryption layer using \[SOPS\](https://github.com/getsops/sops). | -| Non-standard | [caddy.storage.encrypted.key.age](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.age) | is a key type to be used with encryption provider. | -| Non-standard | [caddy.storage.encrypted.key.gcp\_kms](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.gcp_kms) | uses GCPKMS (Google Cloud Platform KMS) for the encryption/decryption. | -| Non-standard | [caddy.storage.encrypted.provider.local](https://caddyserver.com/docs/modules/caddy.storage.encrypted.provider.local) | encryption provider avails in-process encryption/decryption capabilities | -| Non-standard | [caddy.storage.env\_redis](https://caddyserver.com/docs/modules/caddy.storage.env_redis) | | -| Standard | [caddy.storage.file\_system](https://caddyserver.com/docs/modules/caddy.storage.file_system) | is a certmagic.Storage wrapper for certmagic.FileStorage. | -| Non-standard | [caddy.storage.gcs](https://caddyserver.com/docs/modules/caddy.storage.gcs) | implements a caddy storage backend for Google Cloud Storage. | -| Non-standard | [caddy.storage.mysql](https://caddyserver.com/docs/modules/caddy.storage.mysql) | | -| Non-standard | [caddy.storage.nats](https://caddyserver.com/docs/modules/caddy.storage.nats) | | -| Non-standard | [caddy.storage.postgres](https://caddyserver.com/docs/modules/caddy.storage.postgres) | | -| Non-standard | [caddy.storage.redis](https://caddyserver.com/docs/modules/caddy.storage.redis#github.com/gamalan/caddy-tlsredis)(github.com/gamalan/caddy-tlsredis) - - | contain Redis client, and plugin option | -| Non-standard | [caddy.storage.redis](https://caddyserver.com/docs/modules/caddy.storage.redis#github.com/pberkel/caddy-storage-redis)(github.com/pberkel/caddy-storage-redis) - - | implements a Caddy storage backend for Redis It supports Single (Standalone), Cluster, or Sentinal (Failover) Redis server configurations. | -| Non-standard | [caddy.storage.redis](https://caddyserver.com/docs/modules/caddy.storage.redis#github.com/techio-dev/caddy-redis)(github.com/techio-dev/caddy-redis) - - | | -| Non-standard | [caddy.storage.s3](https://caddyserver.com/docs/modules/caddy.storage.s3#github.com/ss098/certmagic-s3)(github.com/ss098/certmagic-s3) - - | | -| Non-standard | [caddy.storage.s3](https://caddyserver.com/docs/modules/caddy.storage.s3#github.com/techknowlogick/certmagic-s3)(github.com/techknowlogick/certmagic-s3) - - | | -| Non-standard | [caddy.storage.vault](https://caddyserver.com/docs/modules/caddy.storage.vault) | A highly available storage module that integrates with HashiCorp Vault. | -| Non-standard | [crowdsec](https://caddyserver.com/docs/modules/crowdsec) | is a Caddy App that functions as a CrowdSec bouncer. | -| Non-standard | [distributed.consul](https://caddyserver.com/docs/modules/distributed.consul) | handles the client to interact with the consul agent | -| Non-standard | [dns.providers.acmedns](https://caddyserver.com/docs/modules/dns.providers.acmedns) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.acmeproxy](https://caddyserver.com/docs/modules/dns.providers.acmeproxy) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.alidns](https://caddyserver.com/docs/modules/dns.providers.alidns) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.azure](https://caddyserver.com/docs/modules/dns.providers.azure) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.cloudflare](https://caddyserver.com/docs/modules/dns.providers.cloudflare) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.ddnss](https://caddyserver.com/docs/modules/dns.providers.ddnss) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.desec](https://caddyserver.com/docs/modules/dns.providers.desec) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.digitalocean](https://caddyserver.com/docs/modules/dns.providers.digitalocean) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.dinahosting](https://caddyserver.com/docs/modules/dns.providers.dinahosting) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.dnsmadeeasy](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.dnspod](https://caddyserver.com/docs/modules/dns.providers.dnspod) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.dreamhost](https://caddyserver.com/docs/modules/dns.providers.dreamhost) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.duckdns](https://caddyserver.com/docs/modules/dns.providers.duckdns) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.dynu](https://caddyserver.com/docs/modules/dns.providers.dynu) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.gandi](https://caddyserver.com/docs/modules/dns.providers.gandi) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.glesys](https://caddyserver.com/docs/modules/dns.providers.glesys) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.google\_domains](https://caddyserver.com/docs/modules/dns.providers.google_domains) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.googleclouddns](https://caddyserver.com/docs/modules/dns.providers.googleclouddns) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.he](https://caddyserver.com/docs/modules/dns.providers.he) | lets Caddy read and manipulate DNS records hosted by Hurricane Electric. | -| Non-standard | [dns.providers.hetzner](https://caddyserver.com/docs/modules/dns.providers.hetzner) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.hexonet](https://caddyserver.com/docs/modules/dns.providers.hexonet) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.infomaniak](https://caddyserver.com/docs/modules/dns.providers.infomaniak) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.inwx](https://caddyserver.com/docs/modules/dns.providers.inwx) | lets Caddy read and manipulate DNS records hosted by INWX. | -| Non-standard | [dns.providers.ionos](https://caddyserver.com/docs/modules/dns.providers.ionos) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.leaseweb](https://caddyserver.com/docs/modules/dns.providers.leaseweb) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.lego\_deprecated](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated) | is a shim module that allows any and all of the DNS providers in go-acme/lego to be used with Caddy. | -| Non-standard | [dns.providers.linode](https://caddyserver.com/docs/modules/dns.providers.linode#github.com/caddy-dns/linode)(github.com/caddy-dns/linode) - - | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.linode](https://caddyserver.com/docs/modules/dns.providers.linode#github.com/tosie/caddy-dns-linode)(github.com/tosie/caddy-dns-linode) - - | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.loopia](https://caddyserver.com/docs/modules/dns.providers.loopia) | | -| Non-standard | [dns.providers.mailinabox](https://caddyserver.com/docs/modules/dns.providers.mailinabox) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.metaname](https://caddyserver.com/docs/modules/dns.providers.metaname) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.namecheap](https://caddyserver.com/docs/modules/dns.providers.namecheap) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.namedotcom](https://caddyserver.com/docs/modules/dns.providers.namedotcom) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.namesilo](https://caddyserver.com/docs/modules/dns.providers.namesilo) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.netcup](https://caddyserver.com/docs/modules/dns.providers.netcup) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.netlify](https://caddyserver.com/docs/modules/dns.providers.netlify) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.njalla](https://caddyserver.com/docs/modules/dns.providers.njalla) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.openstack-designate](https://caddyserver.com/docs/modules/dns.providers.openstack-designate) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.ovh](https://caddyserver.com/docs/modules/dns.providers.ovh) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.porkbun](https://caddyserver.com/docs/modules/dns.providers.porkbun) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | -| Non-standard | [dns.providers.powerdns](https://caddyserver.com/docs/modules/dns.providers.powerdns) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.rfc2136](https://caddyserver.com/docs/modules/dns.providers.rfc2136) | | -| Non-standard | [dns.providers.route53](https://caddyserver.com/docs/modules/dns.providers.route53#github.com/caddy-dns/route53)(github.com/caddy-dns/route53) - - | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.route53](https://caddyserver.com/docs/modules/dns.providers.route53#github.com/ryantiger658/route53)(github.com/ryantiger658/route53) - - | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.tencentcloud](https://caddyserver.com/docs/modules/dns.providers.tencentcloud) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.vercel](https://caddyserver.com/docs/modules/dns.providers.vercel) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dns.providers.vultr](https://caddyserver.com/docs/modules/dns.providers.vultr) | wraps the provider implementation as a Caddy module. | -| Non-standard | [dynamic\_dns](https://caddyserver.com/docs/modules/dynamic_dns) | is a Caddy app that keeps your DNS records updated with the public IP address of your instance. | -| Non-standard | [dynamic\_dns.ip\_sources.command](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.command) | is an IP source that looks up the public IP addresses by executing a script or command from your filesystem. | -| Non-standard | [dynamic\_dns.ip\_sources.simple\_http](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.simple_http) | is an IP source that looks up the public IP addresses by making HTTP(S) requests to the specified endpoints; it will try each endpoint with IPv4 and IPv6 until at least one returns a valid value.... | -| Non-standard | [dynamic\_dns.ip\_sources.upnp](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.upnp) | gets the IP address from UPnP device. | -| Standard | [events](https://caddyserver.com/docs/modules/events) | implements a global eventing system within Caddy. | -| Non-standard | [events.handlers.exec](https://caddyserver.com/docs/modules/events.handlers.exec) | implements an event handler that runs a command/program. | -| Non-standard | [events.handlers.nats](https://caddyserver.com/docs/modules/events.handlers.nats) | | -| Non-standard | [exec](https://caddyserver.com/docs/modules/exec) | is top level module that runs shell commands. | -| Non-standard | [frankenphp](https://caddyserver.com/docs/modules/frankenphp) | | -| Non-standard | [geoip2](https://caddyserver.com/docs/modules/geoip2) | is global caddy app with http.handlers.geoip2 it update geoip2 data automatically by the params | -| Standard | [http](https://caddyserver.com/docs/modules/http) | is a robust, production-ready HTTP server. | -| Standard | [http.authentication.hashes.bcrypt](https://caddyserver.com/docs/modules/http.authentication.hashes.bcrypt) | implements the bcrypt hash. | -| Standard | [http.authentication.hashes.scrypt](https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt) | implements the scrypt KDF as a hash. | -| Non-standard | [http.authentication.providers.authorize](https://caddyserver.com/docs/modules/http.authentication.providers.authorize) | authorizes access to endpoints based on the presense and content of JWT token. | -| Non-standard | [http.authentication.providers.authorizer](https://caddyserver.com/docs/modules/http.authentication.providers.authorizer) | authorizes access to endpoints based on the presense and content of JWT token. | -| Non-standard | [http.authentication.providers.discord](https://caddyserver.com/docs/modules/http.authentication.providers.discord) | allows you to authenticate caddy routes from a Discord User Identity. | -| Non-standard | [http.authentication.providers.forms](https://caddyserver.com/docs/modules/http.authentication.providers.forms) | authorizes access to endpoints based on the credentials provided in a request. | -| Standard | [http.authentication.providers.http\_basic](https://caddyserver.com/docs/modules/http.authentication.providers.http_basic) | facilitates HTTP basic authentication. | -| Non-standard | [http.authentication.providers.jwt](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#github.com/ggicci/caddy-jwt)(github.com/ggicci/caddy-jwt) - - | facilitates JWT (JSON Web Token) authentication. | -| Non-standard | [http.authentication.providers.jwt](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#github.com/greenpau/caddy-auth-jwt)(github.com/greenpau/caddy-auth-jwt) - - | authorizes access to endpoints based on the presense and content of JWT token. | -| Non-standard | [http.authentication.providers.saml](https://caddyserver.com/docs/modules/http.authentication.providers.saml) | authenticates requests the SAML Response to the SP Assertion Consumer Service using the HTTP-POST Binding. | -| Non-standard | [http.encoders.br](https://caddyserver.com/docs/modules/http.encoders.br#github.com/dunglas/caddy-cbrotli)(github.com/dunglas/caddy-cbrotli) - - | can create Brotli encoders. | -| Non-standard | [http.encoders.br](https://caddyserver.com/docs/modules/http.encoders.br#github.com/ueffel/caddy-brotli)(github.com/ueffel/caddy-brotli) - - | can create brotli encoders. | -| Standard | [http.encoders.gzip](https://caddyserver.com/docs/modules/http.encoders.gzip) | can create gzip encoders. | -| Standard | [http.encoders.zstd](https://caddyserver.com/docs/modules/http.encoders.zstd) | can create Zstandard encoders. | -| Standard | [http.handlers.acme\_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) | is an ACME server handler. | -| Non-standard | [http.handlers.adobe\_usage\_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker) | implements HTTP middleware that parses uploaded log files from Adobe desktop applications in order to collect measurements about past launches. | -| Non-standard | [http.handlers.argsort](https://caddyserver.com/docs/modules/http.handlers.argsort#github.com/teodorescuserban/caddy-argsort)(github.com/teodorescuserban/caddy-argsort) - - | sort the query arguments after optionally lowercasing them. | -| Non-standard | [http.handlers.argsort](https://caddyserver.com/docs/modules/http.handlers.argsort#github.com/teodorescuserban/caddy-argsort)(github.com/teodorescuserban/caddy-argsort) - - | implements an HTTP handler that reorders the query arguments. | -| Non-standard | [http.handlers.authelia](https://caddyserver.com/docs/modules/http.handlers.authelia) | implements a plugin for securing routes with authentication | -| Standard | [http.handlers.authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) | is a middleware which provides user authentication. | -| Non-standard | [http.handlers.authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator) | implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0, SAML Authentication. | -| Non-standard | [http.handlers.authp](https://caddyserver.com/docs/modules/http.handlers.authp) | implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0, SAML Authentication. | -| Non-standard | [http.handlers.authz](https://caddyserver.com/docs/modules/http.handlers.authz) | | -| Non-standard | [http.handlers.basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp) | is a Caddy module that enhances Caddy's \`basic\_auth\` directive by adding Time-based One-Time Password (TOTP) two-factor authentication (2FA). | -| Non-standard | [http.handlers.cache](https://caddyserver.com/docs/modules/http.handlers.cache#github.com/caddyserver/cache-handler)(github.com/caddyserver/cache-handler) - - | allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking. | -| Non-standard | [http.handlers.cache](https://caddyserver.com/docs/modules/http.handlers.cache#github.com/caddyserver/cache-handler)(github.com/caddyserver/cache-handler) - - | allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking. | -| Non-standard | [http.handlers.cache](https://caddyserver.com/docs/modules/http.handlers.cache#github.com/darkweak/souin)(github.com/darkweak/souin) - - | development repository of the cache handler, allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking.... | -| Non-standard | [http.handlers.cache](https://caddyserver.com/docs/modules/http.handlers.cache#github.com/darkweak/souin)(github.com/darkweak/souin) - - | development repository of the cache handler, allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking.... | -| Non-standard | [http.handlers.cgi](https://caddyserver.com/docs/modules/http.handlers.cgi) | | -| Non-standard | [http.handlers.cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag) | manipulate various flags (Secure, HttpOnly, ...) in the Set-Cookie reponse headers. | -| Standard | [http.handlers.copy\_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) | is a special HTTP handler which may only be used within reverse\_proxy's handle\_response routes, to copy the proxy response. | -| Standard | [http.handlers.copy\_response\_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) | is a special HTTP handler which may only be used within reverse\_proxy's handle\_response routes, to copy headers from the proxy response. | -| Non-standard | [http.handlers.crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec) | matches request IPs to CrowdSec decisions to (dis)allow access | -| Non-standard | [http.handlers.ct](https://caddyserver.com/docs/modules/http.handlers.ct) | allows to transpile YAML based configuration into a JSON ignition to be used with Flatcar or Fedora CoreOS. | -| Non-standard | [http.handlers.discord](https://caddyserver.com/docs/modules/http.handlers.discord) | is used in combination with http.authentication.providers.discord to provide an authentication layer based on a Discord identity. | -| Non-standard | [http.handlers.dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher) | | -| Standard | [http.handlers.encode](https://caddyserver.com/docs/modules/http.handlers.encode) | is a middleware which can encode responses. | -| Standard | [http.handlers.error](https://caddyserver.com/docs/modules/http.handlers.error) | implements a simple handler that returns an error. | -| Non-standard | [http.handlers.esi](https://caddyserver.com/docs/modules/http.handlers.esi) | to handle, process and serve ESI tags. | -| Non-standard | [http.handlers.exec](https://caddyserver.com/docs/modules/http.handlers.exec) | implements an HTTP handler that runs shell command. | -| Non-standard | [http.handlers.extra\_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders) | provides additional placeholders that can be used within Caddy configurations: Placeholder | Description ------------|------------- \`{extra.caddy.version.simple}\` | Simple version information of the Caddy server.... | -| Standard | [http.handlers.file\_server](https://caddyserver.com/docs/modules/http.handlers.file_server) | implements a handler that serves static files. | -| Non-standard | [http.handlers.filter](https://caddyserver.com/docs/modules/http.handlers.filter) | implements an HTTP handler that writes the visitor's IP address to a file or stream. | -| Non-standard | [http.handlers.floaty](https://caddyserver.com/docs/modules/http.handlers.floaty) | | -| Non-standard | [http.handlers.forward\_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth) | | -| Non-standard | [http.handlers.gbox](https://caddyserver.com/docs/modules/http.handlers.gbox) | implements an HTTP handler as a GraphQL reverse proxy server for caching, securing, and monitoring. | -| Non-standard | [http.handlers.geofence](https://caddyserver.com/docs/modules/http.handlers.geofence) | implements IP geofencing functionality. | -| Non-standard | [http.handlers.geoip](https://caddyserver.com/docs/modules/http.handlers.geoip) | Allows looking up the Country Code of an IP address based on the Maxmind database | -| Non-standard | [http.handlers.geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2) | is an GeoIP2 server handler. | -| Non-standard | [http.handlers.git](https://caddyserver.com/docs/modules/http.handlers.git) | implements git repository manager. | -| Non-standard | [http.handlers.gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg#github.com/MagnaXSoftware/gopkg)(github.com/MagnaXSoftware/gopkg) - - | implements vanity go package import paths. | -| Non-standard | [http.handlers.gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg#github.com/MagnaXSoftware/gopkg)(github.com/MagnaXSoftware/gopkg) - - | represents the GoPkg Caddy module. | -| Non-standard | [http.handlers.grpc\_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web) | is an HTTP handler that bridges gRPC-Web <\--\> gRPC requests. | -| Non-standard | [http.handlers.guard](https://caddyserver.com/docs/modules/http.handlers.guard) | is an elegant IPQS plugin for Caddy. | -| Standard | [http.handlers.headers](https://caddyserver.com/docs/modules/http.handlers.headers) | is a middleware which modifies request and response headers. | -| Non-standard | [http.handlers.hmac](https://caddyserver.com/docs/modules/http.handlers.hmac) | implements an HTTP handler that validates request body with hmac. | -| Non-standard | [http.handlers.http\_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache) | is a http handler as a middleware to cache the response | -| Non-standard | [http.handlers.image\_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter#github.com/ueffel/caddy-imagefilter)(github.com/ueffel/caddy-imagefilter) - - | is a caddy module that can apply image filters to images from the filesystem at runtime. | -| Non-standard | [http.handlers.image\_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter#github.com/ueffel/caddy-imagefilter)(github.com/ueffel/caddy-imagefilter) - - | is a caddy module that can apply image filters to images from the filesystem at runtime. | -| Non-standard | [http.handlers.image\_filter.filter.crop](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.crop) | produces a cropped image as rectangular region of a specific size. | -| Non-standard | [http.handlers.image\_filter.filter.fit](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.fit) | scales a image to fit to the specified maximum width and height using a linear filter, the image aspect ratio is preserved. | -| Non-standard | [http.handlers.image\_filter.filter.flip](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.flip) | s flips (mirrors) a image vertically or horizontally. | -| Non-standard | [http.handlers.image\_filter.filter.resize](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.resize) | can downsize images. | -| Non-standard | [http.handlers.image\_filter.filter.rotate](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.rotate) | rotates a image 90, 180 or 270 degrees counter-clockwise. | -| Non-standard | [http.handlers.image\_filter.filter.sharpen](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.sharpen) | produces a sharpened version of the image. | -| Non-standard | [http.handlers.image\_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor) | allow user to do image processing on the fly using libvips With simple queries parameters you can resize, convert, crop your served images | -| Non-standard | [http.handlers.imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy) | | -| Standard | [http.handlers.intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) | is a middleware that intercepts then replaces or modifies the original response. | -| Standard | [http.handlers.invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) | implements a handler that compiles and executes a named route that was defined on the server. | -| Non-standard | [http.handlers.ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap) | implements a middleware that maps IP / Subnets as inputs to outputs. | -| Non-standard | [http.handlers.jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait) | | -| Non-standard | [http.handlers.json\_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse) | implements an HTTP handler that parses json body as placeholders. | -| Non-standard | [http.handlers.lambda](https://caddyserver.com/docs/modules/http.handlers.lambda) | is a middleware which triggers execution of a function when it is invoked. | -| Non-standard | [http.handlers.listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy) | is a Caddy http.handlers module that listens for requests to specific URIs/paths and reports IPs that hit these URIs to AbuseIPDB. | -| Standard | [http.handlers.log\_append](https://caddyserver.com/docs/modules/http.handlers.log_append) | implements a middleware that takes a key and value, where the key is the name of a log field and the value is a placeholder, or variable key, or constant value to use for that field.... | -| Non-standard | [http.handlers.lura](https://caddyserver.com/docs/modules/http.handlers.lura) | implements a high-performance API Gateway using the Lura framework (https://luraproject.org/). | -| Standard | [http.handlers.map](https://caddyserver.com/docs/modules/http.handlers.map) | implements a middleware that maps inputs to outputs. | -| Non-standard | [http.handlers.mercure](https://caddyserver.com/docs/modules/http.handlers.mercure) | implements a Mercure hub as a Caddy module. | -| Standard | [http.handlers.metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) | is a module that serves a /metrics endpoint so that any gathered metrics can be exposed for scraping. | -| Non-standard | [http.handlers.minifier](https://caddyserver.com/docs/modules/http.handlers.minifier) | | -| Non-standard | [http.handlers.oauth2\_token\_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection) | is a Caddy http.handlers Module for authorizing requests via OAuth2 Token Introspection | -| Non-standard | [http.handlers.olaf](https://caddyserver.com/docs/modules/http.handlers.olaf) | implements a handler that embeds Olaf's declarative configuration, which will be expanded later by a config adapter named \`olaf\`. | -| Non-standard | [http.handlers.olo\_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature) | | -| Non-standard | [http.handlers.openapi](https://caddyserver.com/docs/modules/http.handlers.openapi) | | -| Non-standard | [http.handlers.openapi\_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator) | is used to validate OpenAPI requests and responses against an OpenAPI specification | -| Non-standard | [http.handlers.php](https://caddyserver.com/docs/modules/http.handlers.php) | | -| Non-standard | [http.handlers.pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch) | | -| Non-standard | [http.handlers.pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster) | | -| Non-standard | [http.handlers.pmtiles\_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy) | creates a Z/X/Y tileserver backed by a local or remote bucket of PMTiles archives. | -| Non-standard | [http.handlers.prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus) | \- | -| Non-standard | [http.handlers.public\_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix) | adds placeholders that return values based on the Public Suffix List, or PSL (https://publicsuffix.org). | -| Standard | [http.handlers.push](https://caddyserver.com/docs/modules/http.handlers.push) | is a middleware for HTTP/2 server push. | -| Non-standard | [http.handlers.quantity\_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter) | limits the number of successful requests for a token and allows the counter to be reset. | -| Non-standard | [http.handlers.rate\_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit#github.com/RussellLuo/caddy-ext)(github.com/RussellLuo/caddy-ext) - - | implements a handler for rate-limiting. | -| Non-standard | [http.handlers.rate\_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit#github.com/mholt/caddy-ratelimit)(github.com/mholt/caddy-ratelimit) - - | implements rate limiting functionality. | -| Non-standard | [http.handlers.realip](https://caddyserver.com/docs/modules/http.handlers.realip) | | -| Non-standard | [http.handlers.redir\_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns) | is a RedirDns for manipulating redirecting based on DNS TXT record. | -| Non-standard | [http.handlers.replace\_response](https://caddyserver.com/docs/modules/http.handlers.replace_response) | manipulates response bodies by performing substring or regex replacements. | -| Standard | [http.handlers.request\_body](https://caddyserver.com/docs/modules/http.handlers.request_body) | is a middleware for manipulating the request body. | -| Non-standard | [http.handlers.request\_body\_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var) | implements an HTTP handler that replaces {http.request.body.\*} with the value of the given field from request body, if any. | -| Non-standard | [http.handlers.request\_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug) | is a middleware which displays the content of the request it handles. | -| Non-standard | [http.handlers.request\_id](https://caddyserver.com/docs/modules/http.handlers.request_id) | implements an HTTP handler that writes a unique request ID to response headers. | -| Standard | [http.handlers.reverse\_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) | implements a highly configurable and production-ready reverse proxy. | -| Standard | [http.handlers.rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) | is a middleware which can rewrite/mutate HTTP requests. | -| Non-standard | [http.handlers.s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy) | implements a proxy to return, set, delete or browse objects from S3 | -| Non-standard | [http.handlers.sablier](https://caddyserver.com/docs/modules/http.handlers.sablier) | | -| Non-standard | [http.handlers.save](https://caddyserver.com/docs/modules/http.handlers.save) | | -| Non-standard | [http.handlers.scion](https://caddyserver.com/docs/modules/http.handlers.scion) | | -| Standard | [http.handlers.static\_response](https://caddyserver.com/docs/modules/http.handlers.static_response) | implements a simple responder for static responses. | -| Standard | [http.handlers.subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) | implements a handler that compiles and executes routes. | -| Non-standard | [http.handlers.teapot](https://caddyserver.com/docs/modules/http.handlers.teapot) | implements a static "418 I'm a teapot" response to all requests on the route | -| Standard | [http.handlers.templates](https://caddyserver.com/docs/modules/http.handlers.templates) | is a middleware which executes response bodies as Go templates. | -| Non-standard | [http.handlers.templates.functions.hitCounter](https://caddyserver.com/docs/modules/http.handlers.templates.functions.hitCounter) | implements a simple early-Web hit counter. | -| Non-standard | [http.handlers.trace](https://caddyserver.com/docs/modules/http.handlers.trace) | is a middleware which displays the content of the request it handles. | -| Standard | [http.handlers.tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) | implements an HTTP handler that adds support for distributed tracing, using OpenTelemetry. | -| Non-standard | [http.handlers.trojan](https://caddyserver.com/docs/modules/http.handlers.trojan) | implements an HTTP handler that ... | -| Non-standard | [http.handlers.umami](https://caddyserver.com/docs/modules/http.handlers.umami) | A Caddy module which sends visitor information to Umami's Events REST API endpoint. | -| Non-standard | [http.handlers.upload](https://caddyserver.com/docs/modules/http.handlers.upload) | Middleware implements an HTTP handler that writes the uploaded file to a file on the disk. | -| Non-standard | [http.handlers.user\_agent\_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse) | | -| Standard | [http.handlers.vars](https://caddyserver.com/docs/modules/http.handlers.vars) | is an HTTP middleware which sets variables to have values that can be used in the HTTP request handler chain. | -| Non-standard | [http.handlers.vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain) | add suport for the Vulcain protocol (fast and idiomatic client-driven REST APIs) as a Caddy module. | -| Non-standard | [http.handlers.waf](https://caddyserver.com/docs/modules/http.handlers.waf#github.com/BraveRoy/caddy-waf)(github.com/BraveRoy/caddy-waf) - - | | -| Non-standard | [http.handlers.waf](https://caddyserver.com/docs/modules/http.handlers.waf#github.com/corazawaf/coraza-caddy)(github.com/corazawaf/coraza-caddy) - - | | -| Non-standard | [http.handlers.wafris](https://caddyserver.com/docs/modules/http.handlers.wafris) | Wafris, a free, open source WAF (web application firewall) | -| Non-standard | [http.handlers.wake\_on\_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan) | wakes up a target host on HTTP requests using wake-on-lan. | -| Non-standard | [http.handlers.webdav](https://caddyserver.com/docs/modules/http.handlers.webdav) | implements an HTTP handler for responding to WebDAV clients. | -| Non-standard | [http.handlers.webhook](https://caddyserver.com/docs/modules/http.handlers.webhook) | is the module configuration. | -| Non-standard | [http.handlers.xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate#github.com/infogulch/xtemplate-caddy)(github.com/infogulch/xtemplate-caddy) - - | | -| Non-standard | [http.handlers.xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate#github.com/infogulch/xtemplate)(github.com/infogulch/xtemplate) - - | | -| Non-standard | [http.handlers.xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates#github.com/infogulch/caddy-xtemplate)(github.com/infogulch/caddy-xtemplate) - - | | -| Non-standard | [http.handlers.xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates#github.com/infogulch/caddy-xtemplates)(github.com/infogulch/caddy-xtemplates) - - | | -| Non-standard | [http.ip\_sources.bunny](https://caddyserver.com/docs/modules/http.ip_sources.bunny) | provides a range of IP address prefixes (CIDRs) retrieved from https://api.bunny.net/system/edgeserverlist and https://api.bunny.net/system/edgeserverlist/ipv6. | -| Non-standard | [http.ip\_sources.cloudflare](https://caddyserver.com/docs/modules/http.ip_sources.cloudflare) | provides a range of IP address prefixes (CIDRs) retrieved from cloudflare. | -| Non-standard | [http.ip\_sources.cloudfront](https://caddyserver.com/docs/modules/http.ip_sources.cloudfront) | The module that auto trusted\_proxies \`AWS CloudFront EDGE servers\` from CloudFront. | -| Non-standard | [http.ip\_sources.combine](https://caddyserver.com/docs/modules/http.ip_sources.combine) | This module combines the prefixes returned by several other IP source plugins. | -| Non-standard | [http.ip\_sources.dns](https://caddyserver.com/docs/modules/http.ip_sources.dns) | provides a range of IP addresses associated with a DNS name. | -| Non-standard | [http.ip\_sources.gcp\_cloudcdn](https://caddyserver.com/docs/modules/http.ip_sources.gcp_cloudcdn) | The module auto trusted\_proxies \`GCP CloudCDN EDGE servers\` from \`\_cloud-eoips.googleusercontent.com\` TXT record Doc: https://cloud.google.com/cdn/docs/set-up-external-backend-internet-neg Range from: \_cloud-eoips.googleusercontent.com... | -| Standard | [http.ip\_sources.static](https://caddyserver.com/docs/modules/http.ip_sources.static) | provides a static range of IP address prefixes (CIDRs). | -| Standard | [http.matchers.client\_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) | matches requests by the client IP address, i.e. | -| Non-standard | [http.matchers.conneg](https://caddyserver.com/docs/modules/http.matchers.conneg) | matches requests by comparing results of a content negotiation process to a (list of) value(s). | -| Non-standard | [http.matchers.cron](https://caddyserver.com/docs/modules/http.matchers.cron) | matches requests based on multiple sets of cron expressions. | -| Non-standard | [http.matchers.dynamic\_client\_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip) | matchers the requests by the client IP address. | -| Non-standard | [http.matchers.dynamic\_remote\_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip) | matchers the requests by the remote IP address. | -| Non-standard | [http.matchers.exec\_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop) | is a matcher that blocks all requests. | -| Non-standard | [http.matchers.execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch) | is a matcher that blocks all request. | -| Standard | [http.matchers.expression](https://caddyserver.com/docs/modules/http.matchers.expression) | matches requests by evaluating a \[CEL\](https://github.com/google/cel-spec) expression. | -| Non-standard | [http.matchers.fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban) | implements an HTTP handler that checks a specified file for banned IPs and matches if they are found | -| Standard | [http.matchers.file](https://caddyserver.com/docs/modules/http.matchers.file) | is an HTTP request matcher that can match requests based upon file existence. | -| Standard | [http.matchers.header](https://caddyserver.com/docs/modules/http.matchers.header) | matches requests by header fields. | -| Standard | [http.matchers.header\_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) | matches requests by a regular expression on header fields. | -| Standard | [http.matchers.host](https://caddyserver.com/docs/modules/http.matchers.host) | matches requests by the Host value (case-insensitive). | -| Non-standard | [http.matchers.maxmind\_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation) | Allows to filter requests based on source IP country. | -| Standard | [http.matchers.method](https://caddyserver.com/docs/modules/http.matchers.method) | matches requests by the method. | -| Standard | [http.matchers.not](https://caddyserver.com/docs/modules/http.matchers.not) | matches requests by negating the results of its matcher sets. | -| Standard | [http.matchers.path](https://caddyserver.com/docs/modules/http.matchers.path) | case-insensitively matches requests by the URI's path. | -| Standard | [http.matchers.path\_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) | matches requests by a regular expression on the URI's path. | -| Standard | [http.matchers.protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) | matches requests by protocol. | -| Standard | [http.matchers.query](https://caddyserver.com/docs/modules/http.matchers.query) | matches requests by the URI's query string. | -| Non-standard | [http.matchers.remote\_host](https://caddyserver.com/docs/modules/http.matchers.remote_host) | matches based on the remote IP of the connection. | -| Standard | [http.matchers.remote\_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) | matches requests by the remote IP address, i.e. | -| Non-standard | [http.matchers.signed](https://caddyserver.com/docs/modules/http.matchers.signed) | | -| Standard | [http.matchers.vars](https://caddyserver.com/docs/modules/http.matchers.vars) | is an HTTP request matcher which can match requests based on variables in the context or placeholder values. | -| Standard | [http.matchers.vars\_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) | matches the value of the context variables by a given regular expression. | -| Standard | [http.precompressed.br](https://caddyserver.com/docs/modules/http.precompressed.br) | provides the file extension for files precompressed with brotli encoding. | -| Standard | [http.precompressed.gzip](https://caddyserver.com/docs/modules/http.precompressed.gzip) | provides the file extension for files precompressed with gzip encoding. | -| Standard | [http.precompressed.zstd](https://caddyserver.com/docs/modules/http.precompressed.zstd) | provides the file extension for files precompressed with zstandard encoding. | -| Standard | [http.reverse\_proxy.selection\_policies.client\_ip\_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.client_ip_hash) | is a policy that selects a host based on hashing the client IP of the request, as determined by the HTTP app's trusted proxies settings. | -| Standard | [http.reverse\_proxy.selection\_policies.cookie](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie) | is a policy that selects a host based on a given cookie name. | -| Standard | [http.reverse\_proxy.selection\_policies.first](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.first) | is a policy that selects the first available host. | -| Standard | [http.reverse\_proxy.selection\_policies.header](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.header) | is a policy that selects a host based on a given request header. | -| Standard | [http.reverse\_proxy.selection\_policies.ip\_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.ip_hash) | is a policy that selects a host based on hashing the remote IP of the request. | -| Standard | [http.reverse\_proxy.selection\_policies.least\_conn](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.least_conn) | is a policy that selects the host with the least active requests. | -| Standard | [http.reverse\_proxy.selection\_policies.query](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.query) | is a policy that selects a host based on a given request query parameter. | -| Standard | [http.reverse\_proxy.selection\_policies.random](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random) | is a policy that selects an available host at random. | -| Standard | [http.reverse\_proxy.selection\_policies.random\_choose](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random_choose) | is a policy that selects two or more available hosts at random, then chooses the one with the least load. | -| Standard | [http.reverse\_proxy.selection\_policies.round\_robin](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.round_robin) | is a policy that selects a host based on round-robin ordering. | -| Standard | [http.reverse\_proxy.selection\_policies.uri\_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.uri_hash) | is a policy that selects a host by hashing the request URI. | -| Standard | [http.reverse\_proxy.selection\_policies.weighted\_round\_robin](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.weighted_round_robin) | is a policy that selects a host based on weighted round-robin ordering. | -| Non-standard | [http.reverse\_proxy.transport.aws](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws) | The AWS transport module injects the AWS V4 Signature for requests proxied to AWS services. | -| Standard | [http.reverse\_proxy.transport.fastcgi](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi) | facilitates FastCGI communication. | -| Standard | [http.reverse\_proxy.transport.http](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http) | is essentially a configuration wrapper for http.Transport. | -| Non-standard | [http.reverse\_proxy.transport.http\_ntlm](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm) | proxies HTTP with NTLM authentication. | -| Non-standard | [http.reverse\_proxy.transport.scgi](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.scgi) | facilitates SCGI communication. | -| Non-standard | [http.reverse\_proxy.transport.uwsgi](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.uwsgi#github.com/BadAimWeeb/caddy-uwsgi-transport)(github.com/BadAimWeeb/caddy-uwsgi-transport) - - | The uwsgi transport module allows you to proxy requests to an uWSGI server with uwsgi protocol. | -| Non-standard | [http.reverse\_proxy.transport.uwsgi](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.uwsgi#github.com/wxh06/caddy-uwsgi-transport)(github.com/wxh06/caddy-uwsgi-transport) - - | | -| Non-standard | [http.reverse\_proxy.transport.ziti](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.ziti) | | -| Standard | [http.reverse\_proxy.upstreams.a](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a) | provides upstreams from A/AAAA lookups. | -| Non-standard | [http.reverse\_proxy.upstreams.docker](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.docker) | provides upstreams from the docker host. | -| Standard | [http.reverse\_proxy.upstreams.multi](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.multi) | is a single dynamic upstream source that aggregates the results of multiple dynamic upstream sources. | -| Standard | [http.reverse\_proxy.upstreams.srv](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv) | provides upstreams from SRV lookups. | -| Non-standard | [layer4](https://caddyserver.com/docs/modules/layer4) | is a Caddy app that operates closest to layer 4 of the OSI model. | -| Non-standard | [layer4.handlers.echo](https://caddyserver.com/docs/modules/layer4.handlers.echo) | is a simple handler that writes what it reads. | -| Non-standard | [layer4.handlers.proxy](https://caddyserver.com/docs/modules/layer4.handlers.proxy) | is a handler that can proxy connections. | -| Non-standard | [layer4.handlers.proxy\_protocol](https://caddyserver.com/docs/modules/layer4.handlers.proxy_protocol) | is a connection handler that accepts the PROXY protocol. | -| Non-standard | [layer4.handlers.tee](https://caddyserver.com/docs/modules/layer4.handlers.tee) | is a layer4 handler that replicates a connection so that a branch of handlers can concurrently handle it. | -| Non-standard | [layer4.handlers.throttle](https://caddyserver.com/docs/modules/layer4.handlers.throttle) | throttles connections using leaky bucket rate limiting. | -| Non-standard | [layer4.handlers.tls](https://caddyserver.com/docs/modules/layer4.handlers.tls) | is a connection handler that terminates TLS. | -| Non-standard | [layer4.matchers.crowdsec](https://caddyserver.com/docs/modules/layer4.matchers.crowdsec) | matches IPs to CrowdSec decisions to (dis)allow access | -| Non-standard | [layer4.matchers.http](https://caddyserver.com/docs/modules/layer4.matchers.http) | is able to match HTTP connections. | -| Non-standard | [layer4.matchers.ip](https://caddyserver.com/docs/modules/layer4.matchers.ip) | matches requests by remote IP (or CIDR range). | -| Non-standard | [layer4.matchers.proxy\_protocol](https://caddyserver.com/docs/modules/layer4.matchers.proxy_protocol) | | -| Non-standard | [layer4.matchers.ssh](https://caddyserver.com/docs/modules/layer4.matchers.ssh) | is able to match SSH connections. | -| Non-standard | [layer4.matchers.tls](https://caddyserver.com/docs/modules/layer4.matchers.tls) | is able to match TLS connections. | -| Non-standard | [layer4.matchers.xmpp](https://caddyserver.com/docs/modules/layer4.matchers.xmpp) | is able to match XMPP connections. | -| Non-standard | [layer4.proxy.selection\_policies.first](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.first) | is a policy that selects the first available host. | -| Non-standard | [layer4.proxy.selection\_policies.ip\_hash](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.ip_hash) | is a policy that selects a host based on hashing the remote IP of the connection. | -| Non-standard | [layer4.proxy.selection\_policies.least\_conn](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.least_conn) | is a policy that selects the upstream with the least active connections. | -| Non-standard | [layer4.proxy.selection\_policies.random](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random) | is a policy that selects an available host at random. | -| Non-standard | [layer4.proxy.selection\_policies.random\_choose](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random_choose) | is a policy that selects two or more available hosts at random, then chooses the one with the least load. | -| Non-standard | [layer4.proxy.selection\_policies.round\_robin](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.round_robin) | is a policy that selects a host based on round-robin ordering. | -| Standard | [pki](https://caddyserver.com/docs/modules/pki) | provides Public Key Infrastructure facilities for Caddy. | -| Non-standard | [profefe](https://caddyserver.com/docs/modules/profefe) | The \`profefe\` app collects profiling data during the life-time of the process and uploads them to the profefe server. | -| Non-standard | [profiling](https://caddyserver.com/docs/modules/profiling) | The \`profiling\` app hosts the collection of push-based profiling agents with common profiling parameters acorss the Caddy instance. | -| Non-standard | [profiling.profiler.profefe](https://caddyserver.com/docs/modules/profiling.profiler.profefe) | is the container of the \`profefe\` profiler if configured as a guest module of the \`profiling\` app | -| Non-standard | [profiling.profiler.pyroscope](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope) | is the container of the \`pyroscope\` profiler if configured as a guest module of the \`profiling\` app | -| Non-standard | [pyroscope](https://caddyserver.com/docs/modules/pyroscope) | The \`pyroscope\` app collects profiling data during the life-time of the process and uploads them to the Pyroscope server. | -| Non-standard | [reconnect](https://caddyserver.com/docs/modules/reconnect) | is a module that provides an additional "reconnect" network type that can be used to reconnect to a \[network address\] if the initial connection fails. | -| Non-standard | [scion](https://caddyserver.com/docs/modules/scion) | implements a caddy module. | -| Non-standard | [security](https://caddyserver.com/docs/modules/security) | implements security manager. | -| Non-standard | [ssh](https://caddyserver.com/docs/modules/ssh#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | is the app providing ssh services | -| Non-standard | [ssh](https://caddyserver.com/docs/modules/ssh#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | is the app providing ssh services | -| Non-standard | [ssh.actor\_matchers.critical\_option](https://caddyserver.com/docs/modules/ssh.actor_matchers.critical_option#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | matches request by the value of critical-option of the certificate/user | -| Non-standard | [ssh.actor\_matchers.critical\_option](https://caddyserver.com/docs/modules/ssh.actor_matchers.critical_option#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | matches request by the value of critical-option of the certificate/user | -| Non-standard | [ssh.actor\_matchers.extension](https://caddyserver.com/docs/modules/ssh.actor_matchers.extension#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | matches request by SSH protocol extension | -| Non-standard | [ssh.actor\_matchers.extension](https://caddyserver.com/docs/modules/ssh.actor_matchers.extension#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | matches request by SSH protocol extension | -| Non-standard | [ssh.actor\_matchers.group](https://caddyserver.com/docs/modules/ssh.actor_matchers.group#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | matches requests by user's group | -| Non-standard | [ssh.actor\_matchers.group](https://caddyserver.com/docs/modules/ssh.actor_matchers.group#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | matches requests by user's group | -| Non-standard | [ssh.actor\_matchers.not](https://caddyserver.com/docs/modules/ssh.actor_matchers.not#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | matches requests by negating the results of its matcher sets. | -| Non-standard | [ssh.actor\_matchers.not](https://caddyserver.com/docs/modules/ssh.actor_matchers.not#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | matches requests by negating the results of its matcher sets. | -| Non-standard | [ssh.actor\_matchers.remote\_ip](https://caddyserver.com/docs/modules/ssh.actor_matchers.remote_ip#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | matches requests by client IP (or CIDR range). | -| Non-standard | [ssh.actor\_matchers.remote\_ip](https://caddyserver.com/docs/modules/ssh.actor_matchers.remote_ip#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | matches requests by client IP (or CIDR range). | -| Non-standard | [ssh.actor\_matchers.user](https://caddyserver.com/docs/modules/ssh.actor_matchers.user#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | matches requests by username | -| Non-standard | [ssh.actor\_matchers.user](https://caddyserver.com/docs/modules/ssh.actor_matchers.user#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | matches requests by username | -| Non-standard | [ssh.actors.shell](https://caddyserver.com/docs/modules/ssh.actors.shell#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | is an \`ssh.actors\` module providing "shell" to a session. | -| Non-standard | [ssh.actors.shell](https://caddyserver.com/docs/modules/ssh.actors.shell#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | is an \`ssh.actors\` module providing "shell" to a session. | -| Non-standard | [ssh.actors.static\_response](https://caddyserver.com/docs/modules/ssh.actors.static_response#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | is an actor that writes a static value to the client | -| Non-standard | [ssh.actors.static\_response](https://caddyserver.com/docs/modules/ssh.actors.static_response#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | is an actor that writes a static value to the client | -| Non-standard | [ssh.ask.localforward.allow](https://caddyserver.com/docs/modules/ssh.ask.localforward.allow#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | is PortForwardingAsker module which always allows the session | -| Non-standard | [ssh.ask.localforward.allow](https://caddyserver.com/docs/modules/ssh.ask.localforward.allow#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | is PortForwardingAsker module which always allows the session | -| Non-standard | [ssh.ask.localforward.deny](https://caddyserver.com/docs/modules/ssh.ask.localforward.deny#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | Allow is PortForwardingAsker module which always rejects the session | -| Non-standard | [ssh.ask.localforward.deny](https://caddyserver.com/docs/modules/ssh.ask.localforward.deny#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | Allow is PortForwardingAsker module which always rejects the session | -| Non-standard | [ssh.ask.pty.allow](https://caddyserver.com/docs/modules/ssh.ask.pty.allow#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | is PtyAsker module which always allows the PTY session | -| Non-standard | [ssh.ask.pty.allow](https://caddyserver.com/docs/modules/ssh.ask.pty.allow#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | is PtyAsker module which always allows the PTY session | -| Non-standard | [ssh.ask.pty.deny](https://caddyserver.com/docs/modules/ssh.ask.pty.deny#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | Allow is PtyAsker module which always rejects the PTY session | -| Non-standard | [ssh.ask.pty.deny](https://caddyserver.com/docs/modules/ssh.ask.pty.deny#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | Allow is PtyAsker module which always rejects the PTY session | -| Non-standard | [ssh.ask.reverseforward.allow](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.allow#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | | -| Non-standard | [ssh.ask.reverseforward.allow](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.allow#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | | -| Non-standard | [ssh.ask.reverseforward.deny](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.deny#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | | -| Non-standard | [ssh.ask.reverseforward.deny](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.deny#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | | -| Non-standard | [ssh.authentication.flows.interactive](https://caddyserver.com/docs/modules/ssh.authentication.flows.interactive#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | holds the interactive authentication providers | -| Non-standard | [ssh.authentication.flows.interactive](https://caddyserver.com/docs/modules/ssh.authentication.flows.interactive#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | holds the interactive authentication providers | -| Non-standard | [ssh.authentication.flows.password\_auth](https://caddyserver.com/docs/modules/ssh.authentication.flows.password_auth#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | // PasswordAuthFlow holds the password-based authentication providers | -| Non-standard | [ssh.authentication.flows.password\_auth](https://caddyserver.com/docs/modules/ssh.authentication.flows.password_auth#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | // PasswordAuthFlow holds the password-based authentication providers | -| Non-standard | [ssh.authentication.flows.public\_key](https://caddyserver.com/docs/modules/ssh.authentication.flows.public_key#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | holds the public key authentication providers | -| Non-standard | [ssh.authentication.flows.public\_key](https://caddyserver.com/docs/modules/ssh.authentication.flows.public_key#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | holds the public key authentication providers | -| Non-standard | [ssh.authentication.providers.password.static](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | | -| Non-standard | [ssh.authentication.providers.password.static](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | | -| Non-standard | [ssh.authentication.providers.public\_key.os](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | is an authenticator that authenticates the user based on the \`.ssh/authorized\_keys\` in the user's $HOME | -| Non-standard | [ssh.authentication.providers.public\_key.os](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | is an authenticator that authenticates the user based on the \`.ssh/authorized\_keys\` in the user's $HOME | -| Non-standard | [ssh.authentication.providers.public\_key.static](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | | -| Non-standard | [ssh.authentication.providers.public\_key.static](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | | -| Non-standard | [ssh.config.loaders.provided](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | Lifted and merged from golang.org/x/crypto/ssh ProvidedConfig holds server specific configuration data. | -| Non-standard | [ssh.config.loaders.provided](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | Lifted and merged from golang.org/x/crypto/ssh ProvidedConfig holds server specific configuration data. | -| Non-standard | [ssh.config\_matchers.local\_ip](https://caddyserver.com/docs/modules/ssh.config_matchers.local_ip#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | matches requests by local IP (or CIDR range). | -| Non-standard | [ssh.config\_matchers.local\_ip](https://caddyserver.com/docs/modules/ssh.config_matchers.local_ip#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | matches requests by local IP (or CIDR range). | -| Non-standard | [ssh.config\_matchers.not](https://caddyserver.com/docs/modules/ssh.config_matchers.not#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | matches requests by negating the results of its matcher sets. | -| Non-standard | [ssh.config\_matchers.not](https://caddyserver.com/docs/modules/ssh.config_matchers.not#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | matches requests by negating the results of its matcher sets. | -| Non-standard | [ssh.config\_matchers.remote\_ip](https://caddyserver.com/docs/modules/ssh.config_matchers.remote_ip#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | matches requests by client IP (or CIDR range). | -| Non-standard | [ssh.config\_matchers.remote\_ip](https://caddyserver.com/docs/modules/ssh.config_matchers.remote_ip#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | matches requests by client IP (or CIDR range). | -| Non-standard | [ssh.session.authorizers.chained](https://caddyserver.com/docs/modules/ssh.session.authorizers.chained#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | is a multi-authorizer module that authorizes a session against multiple authorizers | -| Non-standard | [ssh.session.authorizers.chained](https://caddyserver.com/docs/modules/ssh.session.authorizers.chained#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | is a multi-authorizer module that authorizes a session against multiple authorizers | -| Non-standard | [ssh.session.authorizers.max\_session](https://caddyserver.com/docs/modules/ssh.session.authorizers.max_session#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | is an authorizer that permits sessions so long as the number of active sessions is below the specified maximum. | -| Non-standard | [ssh.session.authorizers.max\_session](https://caddyserver.com/docs/modules/ssh.session.authorizers.max_session#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | is an authorizer that permits sessions so long as the number of active sessions is below the specified maximum. | -| Non-standard | [ssh.session.authorizers.public](https://caddyserver.com/docs/modules/ssh.session.authorizers.public#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | authorizes all sessions | -| Non-standard | [ssh.session.authorizers.public](https://caddyserver.com/docs/modules/ssh.session.authorizers.public#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | authorizes all sessions | -| Non-standard | [ssh.session.authorizers.reject](https://caddyserver.com/docs/modules/ssh.session.authorizers.reject#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | rejects all sessions | -| Non-standard | [ssh.session.authorizers.reject](https://caddyserver.com/docs/modules/ssh.session.authorizers.reject#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | rejects all sessions | -| Non-standard | [ssh.signers.fallback](https://caddyserver.com/docs/modules/ssh.signers.fallback#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | signer checks if the RSA, Ed25519, and ECDSA private keys exist in the storage to load. | -| Non-standard | [ssh.signers.fallback](https://caddyserver.com/docs/modules/ssh.signers.fallback#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | will check if the signers exist in the storage, otherwise generate them. | -| Non-standard | [ssh.signers.file](https://caddyserver.com/docs/modules/ssh.signers.file#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | is a session signer that uses pre-existing keys, which may be backed as files | -| Non-standard | [ssh.signers.file](https://caddyserver.com/docs/modules/ssh.signers.file#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | is a session signer that uses pre-existing keys, which may be backed as files or retrievable via HTTP | -| Non-standard | [ssh.subsystem.inmem\_sftp](https://caddyserver.com/docs/modules/ssh.subsystem.inmem_sftp#github.com/kadeessh/kadeessh)(github.com/kadeessh/kadeessh) - - | is an in-memory SFTP server allowing shared space between all users. | -| Non-standard | [ssh.subsystem.inmem\_sftp](https://caddyserver.com/docs/modules/ssh.subsystem.inmem_sftp#github.com/mohammed90/caddy-ssh)(github.com/mohammed90/caddy-ssh) - - | is an in-memory SFTP server allowing shared space between all users. | -| Non-standard | [supervisor](https://caddyserver.com/docs/modules/supervisor) | | -| Standard | [tls](https://caddyserver.com/docs/modules/tls) | provides TLS facilities including certificate loading and management, client auth, and more. | -| Standard | [tls.ca\_pool.source.file](https://caddyserver.com/docs/modules/tls.ca_pool.source.file) | generates trusted root certificates pool from the designated DER and PEM file | -| Standard | [tls.ca\_pool.source.http](https://caddyserver.com/docs/modules/tls.ca_pool.source.http) | The HTTPCertPool fetches the trusted root certificates from HTTP(S) endpoints. | -| Standard | [tls.ca\_pool.source.inline](https://caddyserver.com/docs/modules/tls.ca_pool.source.inline) | is a certificate authority pool provider coming from a DER-encoded certificates in the config | -| Standard | [tls.ca\_pool.source.lazy](https://caddyserver.com/docs/modules/tls.ca_pool.source.lazy) | defers the generation of the certificate pool from the guest module to demand-time rather than at provisionig time. | -| Standard | [tls.ca\_pool.source.pki\_intermediate](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_intermediate) | extracts the trusted intermediate certificates from Caddy's native 'pki' app | -| Standard | [tls.ca\_pool.source.pki\_root](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_root) | extracts the trusted root certificates from Caddy's native 'pki' app | -| Standard | [tls.ca\_pool.source.storage](https://caddyserver.com/docs/modules/tls.ca_pool.source.storage) | extracts the trusted certificates root from Caddy storage | -| Standard | [tls.certificates.automate](https://caddyserver.com/docs/modules/tls.certificates.automate) | will automatically manage certificates for the names in the list, including obtaining and renewing certificates. | -| Standard | [tls.certificates.load\_files](https://caddyserver.com/docs/modules/tls.certificates.load_files) | loads certificates and their associated keys from disk. | -| Standard | [tls.certificates.load\_folders](https://caddyserver.com/docs/modules/tls.certificates.load_folders) | loads certificates and their associated keys from disk by recursively walking the specified directories, looking for PEM files which contain both a certificate and a key. | -| Standard | [tls.certificates.load\_pem](https://caddyserver.com/docs/modules/tls.certificates.load_pem) | loads certificates and their associated keys by decoding their PEM blocks directly. | -| Standard | [tls.certificates.load\_storage](https://caddyserver.com/docs/modules/tls.certificates.load_storage) | loads certificates and their associated keys from the globally configured storage module. | -| Non-standard | [tls.client\_auth.revocation](https://caddyserver.com/docs/modules/tls.client_auth.revocation) | Allows checking of client certificate revocation status based on CRL or OCSP | -| Standard | [tls.client\_auth.verifier.leaf](https://caddyserver.com/docs/modules/tls.client_auth.verifier.leaf) | verifies the client's leaf certificate. | -| Non-standard | [tls.client\_auth.verifier.san\_dns](https://caddyserver.com/docs/modules/tls.client_auth.verifier.san_dns) | | -| Non-standard | [tls.get\_certificate.file](https://caddyserver.com/docs/modules/tls.get_certificate.file) | can get a certificate via file. | -| Standard | [tls.get\_certificate.http](https://caddyserver.com/docs/modules/tls.get_certificate.http) | can get a certificate via HTTP(S) request. | -| Non-standard | [tls.get\_certificate.pfx](https://caddyserver.com/docs/modules/tls.get_certificate.pfx) | allow user to set path to .pfx file to load TLS certificate | -| Standard | [tls.get\_certificate.tailscale](https://caddyserver.com/docs/modules/tls.get_certificate.tailscale) | is a module that can get certificates from the local Tailscale process. | -| Non-standard | [tls.handshake\_match.alpn](https://caddyserver.com/docs/modules/tls.handshake_match.alpn) | | -| Standard | [tls.handshake\_match.local\_ip](https://caddyserver.com/docs/modules/tls.handshake_match.local_ip) | matches based on the IP address of the interface receiving the connection. | -| Standard | [tls.handshake\_match.remote\_ip](https://caddyserver.com/docs/modules/tls.handshake_match.remote_ip) | matches based on the remote IP of the connection. | -| Standard | [tls.handshake\_match.sni](https://caddyserver.com/docs/modules/tls.handshake_match.sni) | matches based on SNI. | -| Standard | [tls.issuance.acme](https://caddyserver.com/docs/modules/tls.issuance.acme) | manages certificates using the ACME protocol (RFC 8555). | -| Non-standard | [tls.issuance.certsrv](https://caddyserver.com/docs/modules/tls.issuance.certsrv) | can request certificates from a Microsoft Active Directory Certificate Services instance | -| Standard | [tls.issuance.internal](https://caddyserver.com/docs/modules/tls.issuance.internal) | is a certificate issuer that generates certificates internally using a locally-configured CA which can be customized using the \`pki\` app. | -| Standard | [tls.issuance.zerossl](https://caddyserver.com/docs/modules/tls.issuance.zerossl) | uses the ZeroSSL API to get certificates. | -| Standard | [tls.leaf\_cert\_loader.file](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.file) | loads leaf certificates from disk. | -| Standard | [tls.leaf\_cert\_loader.folder](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.folder) | loads certificates and their associated keys from disk by recursively walking the specified directories, looking for PEM files which contain both a certificate and a key. | -| Standard | [tls.leaf\_cert\_loader.pem](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.pem) | loads leaf certificates by decoding their PEM blocks directly. | -| Standard | [tls.leaf\_cert\_loader.storage](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.storage) | loads leaf certificates from the globally configured storage module. | -| Standard | [tls.permission.http](https://caddyserver.com/docs/modules/tls.permission.http) | determines permission for a TLS certificate by making a request to an HTTP endpoint. | -| Standard | [tls.stek.distributed](https://caddyserver.com/docs/modules/tls.stek.distributed) | implements a distributed STEK provider. | -| Standard | [tls.stek.standard](https://caddyserver.com/docs/modules/tls.stek.standard) | | -| Non-standard | [trojan.proxies.env\_proxy](https://caddyserver.com/docs/modules/trojan.proxies.env_proxy) | is ... | -| Non-standard | [trojan.proxies.no\_proxy](https://caddyserver.com/docs/modules/trojan.proxies.no_proxy) | is ... | -| Non-standard | [trojan.upstreams.caddy](https://caddyserver.com/docs/modules/trojan.upstreams.caddy) | is ... | -| Non-standard | [trojan.upstreams.memory](https://caddyserver.com/docs/modules/trojan.upstreams.memory) | is ... | diff --git a/docs/caddy/docs/docs/extending-caddy.md b/docs/caddy/extending-caddy.md similarity index 82% rename from docs/caddy/docs/docs/extending-caddy.md rename to docs/caddy/extending-caddy.md index 09c0a02..6c998b9 100644 --- a/docs/caddy/docs/docs/extending-caddy.md +++ b/docs/caddy/extending-caddy.md @@ -7,8 +7,8 @@ Caddy is easy to extend because of its modular architecture. Most kinds of Caddy **Prerequisites:** -Quick Start[🔗](https://caddyserver.com/docs/extending-caddy#quick-start "Direct link") ---------------------------------------------------------------------------------------- +Quick Start +----------- A Caddy module is any named type that registers itself as a Caddy module when its package is imported. Crucially, a module always implements the [`caddy.Module`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#Module) interface, which provides its name and a constructor function. @@ -53,21 +53,21 @@ Under the hood, `xcaddy` is simply making a new Go module that requires both Cad import _ "github.com/example/mymodule" ``` -Module Basics[🔗](https://caddyserver.com/docs/extending-caddy#module-basics "Direct link") -------------------------------------------------------------------------------------------- +Module Basics +------------- Caddy modules: -1. Implement the `caddy.Module` interface to provide an ID and constructor -2. Have a unique name in the proper namespace -3. Usually satisfy some interface(s) that are meaningful to the host module for that namespace +1. Implement the `caddy.Module` interface to provide an ID and constructor +2. Have a unique name in the proper namespace +3. Usually satisfy some interface(s) that are meaningful to the host module for that namespace **Host modules** (or _parent modules_) are modules which load/initialize other modules. They typically define namespaces for guest modules. **Guest modules** (or _child modules_) are modules which get loaded or initialized. All modules are guest modules. -Module IDs[🔗](https://caddyserver.com/docs/extending-caddy#module-ids "Direct link") -------------------------------------------------------------------------------------- +Module IDs +---------- Each Caddy module has a unique ID, consisting of a namespace and name: @@ -77,7 +77,7 @@ Each Caddy module has a unique ID, consisting of a namespace and name: Module IDs must use `snake_case` convention. -### Namespaces[🔗](https://caddyserver.com/docs/extending-caddy#namespaces "Direct link") +### Namespaces Namespaces are like classes, i.e. a namespace defines some functionality that is common among all modules within it. For example, we can expect that all modules within the `http.handlers` namespace are HTTP handlers. It follows that a host module may type-assert guest modules in that namespace from `interface{}` types into a more specific, useful type such as `caddyhttp.MiddlewareHandler`. @@ -91,12 +91,12 @@ The `caddy` and `admin` namespaces are reserved and cannot be app names. To write modules which plug into 3rd-party host modules, consult those modules for their namespace documentation. -### Names[🔗](https://caddyserver.com/docs/extending-caddy#names "Direct link") +### Names The name within a namespace is significant and highly visible to users, but is not particularly important, as long as it is unique, concise, and makes sense for what it does. -App Modules[🔗](https://caddyserver.com/docs/extending-caddy#app-modules "Direct link") ---------------------------------------------------------------------------------------- +App Modules +----------- Apps are modules with an empty namespace, and which conventionally become their own top-level namespace. App modules implement the [`caddy.App`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#App) interface. @@ -112,12 +112,12 @@ Example [apps](https://caddyserver.com/docs/json/apps/) are `http` and `tls`. Th Guest modules written for these apps should be in a namespace derived from the app name. For example, HTTP handlers use the `http.handlers` namespace and TLS certificate loaders use the `tls.certificates` namespace. -Module Implementation[🔗](https://caddyserver.com/docs/extending-caddy#module-implementation "Direct link") ------------------------------------------------------------------------------------------------------------ +Module Implementation +--------------------- A module can be virtually any type, but structs are the most common because they can hold user configuration. -### Configuration[🔗](https://caddyserver.com/docs/extending-caddy#configuration "Direct link") +### Configuration Most modules require some configuration. Caddy takes care of this automatically, as long as your type is compatible with JSON. Thus, if a module is a struct type, it will need struct tags on its fields, which should use `snake_casing` according to Caddy convention: @@ -132,20 +132,20 @@ Using the `omitempty` option in the struct tag will omit the field from the JSON When a module is initialized, it will already have its configuration filled out. It is also possible to perform additional [provisioning](https://caddyserver.com/docs/extending-caddy#provisioning) and [validation](https://caddyserver.com/docs/extending-caddy#validating) steps after a module is initialized. -### Module Lifecycle[🔗](https://caddyserver.com/docs/extending-caddy#module-lifecycle "Direct link") +### Module Lifecycle A module's life begins when it is loaded by a host module. The following happens: -1. [`New()`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#ModuleInfo.New) is called to get an instance of the module's value. -2. The module's configuration is unmarshaled into that instance. -3. If the module is a [`caddy.Provisioner`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#Provisioner), the `Provision()` method is called. -4. If the module is a [`caddy.Validator`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#Validator), the `Validate()` method is called. -5. At this point, the host module is given the loaded guest module as an `interface{}` value, so the host module will usually type-assert the guest module into a more useful type. Check the documentation for the host module to know what is required of a guest module in its namespace, e.g. what methods need to be implemented. -6. When a module is no longer needed, and if it is a [`caddy.CleanerUpper`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#CleanerUpper), the `Cleanup()` method is called. +1. [`New()`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#ModuleInfo.New) is called to get an instance of the module's value. +2. The module's configuration is unmarshaled into that instance. +3. If the module is a [`caddy.Provisioner`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#Provisioner), the `Provision()` method is called. +4. If the module is a [`caddy.Validator`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#Validator), the `Validate()` method is called. +5. At this point, the host module is given the loaded guest module as an `interface{}` value, so the host module will usually type-assert the guest module into a more useful type. Check the documentation for the host module to know what is required of a guest module in its namespace, e.g. what methods need to be implemented. +6. When a module is no longer needed, and if it is a [`caddy.CleanerUpper`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#CleanerUpper), the `Cleanup()` method is called. Note that multiple loaded instances of your module may overlap at a given time! During config changes, new modules are started before the old ones are stopped. Be sure to use global state carefully. Use the [`caddy.UsagePool`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#UsagePool) type to help manage global state across module loads. If your module listens on a socket, use `caddy.Listen*()` to get a socket that supports overlapping usage. -### Provisioning[🔗](https://caddyserver.com/docs/extending-caddy#provisioning "Direct link") +### Provisioning A module's configuration will be unmarshaled into its value automatically (when loading the JSON config). This means, for example, that struct fields will be filled out for you. @@ -167,7 +167,7 @@ A module may access other apps by calling `ctx.App()`, but modules must not have Additionally, you should avoid performing expensive operations in `Provision`, since provisioning is performed even if a config is only being validated. When in the provisioning phase, do not expect that the module will actually be used. -#### Logs[🔗](https://caddyserver.com/docs/extending-caddy#logs "Direct link") +#### Logs See [how logging works](https://caddyserver.com/docs/logging) in Caddy. If your module needs logging, do not use `log.Print*()` from the Go standard library. In other words, **do not use Go's global logger**. Caddy uses high-performance, highly flexible, structured logging with [zap](https://github.com/uber-go/zap). @@ -181,7 +181,7 @@ func (g *Gizmo) Provision(ctx caddy.Context) error { Then you can emit structured, leveled logs using `g.logger`. See [zap's godoc](https://pkg.go.dev/go.uber.org/zap?tab=doc#Logger) for details. -### Validating[🔗](https://caddyserver.com/docs/extending-caddy#validating "Direct link") +### Validating Modules which would like to validate their configuration may do so by satisfying the (optional) [`caddy.Validator`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#Validator) interface: @@ -195,7 +195,7 @@ func (g Gizmo) Validate() error { Validate should be a read-only function. It is run after the `Provision()` method. -### Interface guards[🔗](https://caddyserver.com/docs/extending-caddy#interface-guards "Direct link") +### Interface guards Caddy module behavior is implicit because Go interfaces are satisfied implicitly. Simply adding the right methods to your module's type is all it takes to make or break your module's correctness. Thus, making a typo or getting the method signature wrong can lead to unexpected (lack of) behavior. @@ -221,8 +221,8 @@ This prevents the program from compiling if `*FileServer` does not satisfy those Without interface guards, confusing bugs can slip in. For example, if your module must provision itself before being used but your `Provision()` method has a mistake (e.g. misspelled or wrong signature), provisioning will never happen, leading to head-scratching. Interface guards are super easy and can prevent that. They usually go at the bottom of the file. -Host Modules[🔗](https://caddyserver.com/docs/extending-caddy#host-modules "Direct link") ------------------------------------------------------------------------------------------ +Host Modules +------------ A module becomes a host module when it loads its own guest modules. This is useful if a piece of the module's functionality can be implemented in different ways. @@ -240,7 +240,7 @@ The first field (`GadgetRaw` in this example) is where the raw, unprovisioned JS The second field (`Gadget`) is where the final, provisioned value will eventually be stored. Since the second field is not user-facing, we exclude it from JSON with a struct tag. (You could also unexport it if it is not needed by other packages, and then no struct tag is needed.) -### Caddy struct tags[🔗](https://caddyserver.com/docs/extending-caddy#caddy-struct-tags "Direct link") +### Caddy struct tags The `caddy` struct tag on the raw module field helps Caddy to know the namespace and name (comprising the complete ID) of the module to load. It is also used for generating documentation. @@ -256,7 +256,7 @@ The `namespace=` part is required. It defines the namespace in which to look for The `inline_key=` part is only used if the module's name will be found _inline_ with the module itself; this implies that the value is an object where one of the keys is the _inline key_, and its value is the name of the module. If omitted, then the field type must be a [`caddy.ModuleMap`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#ModuleMap) or `[]caddy.ModuleMap`, where the map key is the module name. -### Loading guest modules[🔗](https://caddyserver.com/docs/extending-caddy#loading-guest-modules "Direct link") +### Loading guest modules To load a guest module, call [`ctx.LoadModule()`](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#Context.LoadModule) during the provision phase: @@ -282,13 +282,13 @@ Notice how the loaded module is type-asserted: `g.Gadget = val.(Gadgeter)` - thi If your host module defines a new namespace, be sure to document both that namespace and its Go type(s) for developers [like we have done here](https://caddyserver.com/docs/extending-caddy/namespaces). -Module Documentation[🔗](https://caddyserver.com/docs/extending-caddy#module-documentation "Direct link") ---------------------------------------------------------------------------------------------------------- +Module Documentation +-------------------- Register the module to make a new Caddy module show up in the module documentation and be available in [http://caddyserver.com/download](http://caddyserver.com/download). The registration is available at [http://caddyserver.com/account](http://caddyserver.com/account). Create a new account if you don't have one already and click on "Register package". -Complete Example[🔗](https://caddyserver.com/docs/extending-caddy#complete-example "Direct link") -------------------------------------------------------------------------------------------------- +Complete Example +---------------- Let's suppose we want to write an HTTP handler module. This will be a contrived middleware for demonstration purposes which prints the visitor's IP address to a stream on every HTTP request. diff --git a/docs/caddy/docs/docs/extending-caddy/caddyfile.md b/docs/caddy/extending-caddy/caddyfile.md similarity index 86% rename from docs/caddy/docs/docs/extending-caddy/caddyfile.md rename to docs/caddy/extending-caddy/caddyfile.md index 386f107..8c58ef7 100644 --- a/docs/caddy/docs/docs/extending-caddy/caddyfile.md +++ b/docs/caddy/extending-caddy/caddyfile.md @@ -5,8 +5,8 @@ URL Source: https://caddyserver.com/docs/extending-caddy/caddyfile Markdown Content: Caddy modules are automatically added to the [native JSON config](https://caddyserver.com/docs/json/) by virtue of their namespace when they are [registered](https://pkg.go.dev/github.com/caddyserver/caddy/v2?tab=doc#RegisterModule), making them both usable and documented. This makes Caddyfile support purely optional, but it is often requested by users who prefer the Caddyfile. -Unmarshaler[🔗](https://caddyserver.com/docs/extending-caddy/caddyfile#unmarshaler "Direct link") -------------------------------------------------------------------------------------------------- +Unmarshaler +----------- To add Caddyfile support for your module, simply implement the [`caddyfile.Unmarshaler`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/caddyconfig/caddyfile?tab=doc#Unmarshaler) interface. You get to choose the Caddyfile syntax your module has by how you parse the tokens. @@ -49,7 +49,7 @@ You should also add an [interface guard](https://caddyserver.com/docs/extending- var _ caddyfile.Unmarshaler = (*Gizmo)(nil) ``` -### Blocks[🔗](https://caddyserver.com/docs/extending-caddy/caddyfile#blocks "Direct link") +### Blocks To accept more configuration than can fit on a single line, you may wish to allow a block with subdirectives. This can be done using `d.NextBlock()` and iterating until you return to the original nesting level: @@ -66,8 +66,8 @@ for nesting := d.Nesting(); d.NextBlock(nesting); { As long as each iteration of the loop consumes the entire segment (line or block), then this is an elegant way to handle blocks. -HTTP Directives[🔗](https://caddyserver.com/docs/extending-caddy/caddyfile#http-directives "Direct link") ---------------------------------------------------------------------------------------------------------- +HTTP Directives +--------------- The HTTP Caddyfile is Caddy's default Caddyfile adapter syntax (or "server type"). It is extensible, meaning you can [register](https://pkg.go.dev/github.com/caddyserver/caddy/v2/caddyconfig/httpcaddyfile?tab=doc#RegisterDirective) your own "top-level" directives for your module: @@ -102,7 +102,7 @@ func parseCaddyfileHandler(h httpcaddyfile.Helper) (caddyhttp.MiddlewareHandler, See the [`httpcaddyfile` package godoc](https://pkg.go.dev/github.com/caddyserver/caddy/v2/caddyconfig/httpcaddyfile?tab=doc) for more information about how to use the `httpcaddyfile.Helper` type. -### Handler order[🔗](https://caddyserver.com/docs/extending-caddy/caddyfile#handler-order "Direct link") +### Handler order All directives which return HTTP middleware/handler values need to be evaluated in the correct order. For example, a handler that sets the root directory of the site has to come before a handler that accesses the root directory, so that it will know what the directory path is. @@ -111,19 +111,17 @@ The HTTP Caddyfile [has a hard-coded ordering for the standard directives](https **When you register a new handler directive, it must be added to that list before it can be used (outside of a `route` block).** This is done using one of three methods: * (Recommended) The plugin author can call [`httpcaddyfile.RegisterDirectiveOrder`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/caddyconfig/httpcaddyfile#RegisterDirectiveOrder) in `init()` after registering the directive, to insert the directive into the order relative to another [standard directive](https://caddyserver.com/docs/caddyfile/directives#directive-order). Doing so, users can use the directive directly in their sites without extra setup. For example, to insert your directive `gizmo` to be evaluated after the `header` handler: - - ``` - httpcaddyfile.RegisterDirectiveOrder("gizmo", httpcaddyfile.After, "header") - ``` - + +``` +httpcaddyfile.RegisterDirectiveOrder("gizmo", httpcaddyfile.After, "header") +``` * Users may add the [`order` global option](https://caddyserver.com/docs/caddyfile/options) to modify the standard order for their Caddyfile. For example: `order gizmo before respond` will insert a new directive `gizmo` to be evaluated before the `respond` handler. Then the directive can be used normally. - + * Users can place the directive in a [`route` block](https://caddyserver.com/docs/caddyfile/directives/route). Because directives in a route block are not reordered, the directives used in a route block do not need to appear in the list. - If you choose one of the latter two options, please document a recommendation for your users for where in the list is the right place for your directive to be ordered, so that they can use it properly. -### Classes[🔗](https://caddyserver.com/docs/extending-caddy/caddyfile#classes "Direct link") +### Classes This table describes each class with exported types that is recognized by the HTTP Caddyfile adapter: @@ -131,13 +129,13 @@ This table describes each class with exported types that is recognized by the HT | --- | --- | --- | | bind | `[]string` | Server listener bind addresses | | route | `caddyhttp.Route` | HTTP handler route | -| error\_route | `*caddyhttp.Subroute` | HTTP error handling route | -| tls.connection\_policy | `*caddytls.ConnectionPolicy` | TLS connection policy | -| tls.cert\_issuer | `certmagic.Issuer` | TLS certificate issuer | -| tls.cert\_loader | `caddytls.CertificateLoader` | TLS certificate loader | +| error_route | `*caddyhttp.Subroute` | HTTP error handling route | +| tls.connection_policy | `*caddytls.ConnectionPolicy` | TLS connection policy | +| tls.cert_issuer | `certmagic.Issuer` | TLS certificate issuer | +| tls.cert_loader | `caddytls.CertificateLoader` | TLS certificate loader | -Server Types[🔗](https://caddyserver.com/docs/extending-caddy/caddyfile#server-types "Direct link") ---------------------------------------------------------------------------------------------------- +Server Types +------------ Structurally, the Caddyfile is a simple format, so there can be different types of Caddyfile formats (sometimes called "server types") to suit different needs. diff --git a/docs/caddy/docs/docs/extending-caddy/config-adapters.md b/docs/caddy/extending-caddy/config-adapters.md similarity index 86% rename from docs/caddy/docs/docs/extending-caddy/config-adapters.md rename to docs/caddy/extending-caddy/config-adapters.md index 888f909..78c29a6 100644 --- a/docs/caddy/docs/docs/extending-caddy/config-adapters.md +++ b/docs/caddy/extending-caddy/config-adapters.md @@ -7,8 +7,8 @@ For various reasons, you may wish to configure Caddy using a format that is not If one does not already exist for the language/syntax/format you prefer, you can write one! -Template[🔗](https://caddyserver.com/docs/extending-caddy/config-adapters#template "Direct link") -------------------------------------------------------------------------------------------------- +Template +-------- Here's a template you can start with: @@ -48,8 +48,8 @@ When populating fields of the config that are `json.RawMessage` types (i.e. modu * [`caddyconfig.JSON()`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/caddyconfig?tab=doc#JSON) is for marshaling module values without the module name embedded. (Often used for ModuleMap fields where the module name is the map key.) * [`caddyconfig.JSONModuleObject()`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/caddyconfig?tab=doc#JSONModuleObject) is for marshaling module values with the module name added to the object. (Used pretty much everywhere else.) -Caddyfile Server Types[🔗](https://caddyserver.com/docs/extending-caddy/config-adapters#caddyfile-server-types "Direct link") ------------------------------------------------------------------------------------------------------------------------------ +Caddyfile Server Types +---------------------- It is also possible to implement a custom Caddyfile format. The Caddyfile adapter is a single adapter implementation and its default "server type" is HTTP, but it supports alternate "server types" at registration. For example, the HTTP Caddyfile is registered like so: diff --git a/docs/caddy/extending-caddy/namespaces.md b/docs/caddy/extending-caddy/namespaces.md new file mode 100644 index 0000000..8430a3c --- /dev/null +++ b/docs/caddy/extending-caddy/namespaces.md @@ -0,0 +1,45 @@ +Title: Module Namespaces - Caddy Documentation + +URL Source: https://caddyserver.com/docs/extending-caddy/namespaces + +Markdown Content: +Caddy guest modules are loaded generically as `interface{}` or `any` types. In order for the host modules to be able to use them, the loaded guest modules are usually type-asserted to a known type first. This page describes the mapping from module namespaces to Go types for all the standard modules. + +Documentation for non-standard module namespaces can be found with the documentation for the host module that defines them. + +| Namespace | Expected Interface Type | Description | Notes | +| --- | --- | --- | --- | +| | [`caddy.App`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#App) | Caddy app | | +| admin.api | [`caddy.AdminRouter`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#AdminRouter) [`caddy.AdminHandler`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#AdminHandler) | Registers HTTP routes for admin HTTP handler middleware | | +| caddy.config_loaders | [`caddy.ConfigLoader`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#ConfigLoader) | Loads a config | _⚠️ Experimental_ | +| caddy.fs | [`fs.FS`](https://pkg.go.dev/io/fs#FS) | Virtual file system | _⚠️ Experimental_ | +| caddy.listeners | [`caddy.ListenerWrapper`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#ListenerWrapper) | Wrap network listeners | | +| caddy.logging.encoders | [`zapcore.Encoder`](https://pkg.go.dev/go.uber.org/zap/zapcore#Encoder) | Log entry encoder | | +| caddy.logging.encoders.filter | [`logging.LogFieldFilter`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/logging#LogFieldFilter) | Log field filter | | +| caddy.logging.writers | [`caddy.WriterOpener`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#WriterOpener) | Log writers | | +| caddy.storage | [`caddy.StorageConverter`](https://pkg.go.dev/github.com/caddyserver/caddy/v2#StorageConverter) | Storage backends | | +| dns.providers | [`certmagic.DNSProvider`](https://pkg.go.dev/github.com/caddyserver/certmagic#DNSProvider) | DNS challenge solver | | +| events.handlers | [`caddyevents.Handler`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyevents#Handler) | Event handlers | _⚠️ Experimental_ | +| http.authentication.hashes | [`caddyauth.Comparer`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/caddyauth#Comparer) [`caddyauth.Hasher`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/caddyauth#Hasher) | Password comparers Password hashers | | +| http.authentication.providers | [`caddyauth.Authenticator`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/caddyauth#Authenticator) | HTTP authentication providers | | +| http.encoders | [`encode.Encoding`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/encode#Encoding) [`encode.Encoder`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/encode#Encoder) | Creates an encoder (compression) Encodes a data stream | | +| http.handlers | [`caddyhttp.MiddlewareHandler`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp#MiddlewareHandler) | HTTP handlers | | +| http.ip_sources | [`caddyhttp.IPRangeSource`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp#IPRangeSource) | IP ranges for trusted proxies | | +| http.matchers | [`caddyhttp.RequestMatcher`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp#RequestMatcher) [`caddyhttp.CELLibraryProducer`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp#CELLibraryProducer) | HTTP request matchers Support for CEL expressions | _(Optional)_ | +| http.precompressed | [`encode.Precompressed`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/encode#Precompressed) | Supported precompress mappings | | +| http.reverse_proxy.circuit_breakers | [`reverseproxy.CircuitBreaker`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy#CircuitBreaker) | Reverse proxy circuit breakers | | +| http.reverse_proxy.selection_policies | [`reverseproxy.Selector`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy#Selector) | Load balancing selection policies | | +| http.reverse_proxy.transport | [`http.RoundTripper`](https://pkg.go.dev/net/http#RoundTripper) | HTTP reverse proxy transports | | +| http.reverse_proxy.upstreams | [`reverseproxy.UpstreamSource`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddyhttp/reverseproxy#UpstreamSource) | Dynamic upstream source | _⚠️ Experimental_ | +| tls.ca_pool.source | [`caddytls.CA`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#CA) | Source of trusted root certs | | +| tls.certificates | [`caddytls.CertificateLoader`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#CertificateLoader) | TLS certificate source | | +| tls.client_auth | [`caddytls.ClientCertificateVerifier`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#ClientCertificateVerifier) | Verifies client certificates | | +| tls.ech.publishers | [`caddytls.ECHPublisher`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#ECHPublisher) | Publishes Encrypted ClientHello (ECH) configurations | _⚠️ Experimental_ | +| tls.get_certificate | [`certmagic.Manager`](https://pkg.go.dev/github.com/caddyserver/certmagic#Manager) | TLS certificate manager | _⚠️ Experimental_ | +| tls.handshake_match | [`caddytls.ConnectionMatcher`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#ConnectionMatcher) | TLS connection matcher | | +| tls.issuance | [`certmagic.Issuer`](https://pkg.go.dev/github.com/caddyserver/certmagic#Issuer) | TLS certificate issuer | | +| tls.leaf_cert_loader | [`caddytls.LeafCertificateLoader`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#LeafCertificateLoader) | Loads trusted leaf certs | | +| tls.permission | [`caddytls.OnDemandPermission`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#OnDemandPermission) | Whether to obtain a cert for a domain | _⚠️ Experimental_ | +| tls.stek | [`caddytls.STEKProvider`](https://pkg.go.dev/github.com/caddyserver/caddy/v2/modules/caddytls#STEKProvider) | TLS session ticket key source | | + +Namespaces marked as "Experimental" are subject to change. (Please develop with them so we can finalize their interfaces!) diff --git a/docs/caddy/docs/docs/extending-caddy/placeholders.md b/docs/caddy/extending-caddy/placeholders.md similarity index 81% rename from docs/caddy/docs/docs/extending-caddy/placeholders.md rename to docs/caddy/extending-caddy/placeholders.md index f2b3100..8033748 100644 --- a/docs/caddy/docs/docs/extending-caddy/placeholders.md +++ b/docs/caddy/extending-caddy/placeholders.md @@ -3,8 +3,8 @@ Title: Placeholder Support - Caddy Documentation URL Source: https://caddyserver.com/docs/extending-caddy/placeholders Markdown Content: -Placeholders[🔗](https://caddyserver.com/docs/extending-caddy/placeholders#placeholders "Direct link") ------------------------------------------------------------------------------------------------------- +Placeholders +------------ In Caddy, placeholders are processed by each individual plugin as needed; they do not automatically work everywhere. @@ -12,8 +12,8 @@ This means that if you wish for your plugin to support placeholders, you must ex If you are not yet familiar with placeholders, start by [reading here](https://caddyserver.com/docs/conventions#placeholders)! -Placeholders Overview[🔗](https://caddyserver.com/docs/extending-caddy/placeholders#placeholders-overview "Direct link") ------------------------------------------------------------------------------------------------------------------------- +Placeholders Overview +--------------------- [Placeholders](https://caddyserver.com/docs/conventions#placeholders) are a string in the format `{foo.bar}` used as dynamic configuration values, which is later evaluated at runtime. @@ -82,14 +82,14 @@ Since `srv1` used `{env.HOST}` (a global placeholder), it remains untouched when This does mean that users writing JSON config (not using Caddyfile) cannot use the `{$ENV}` syntax. For that reason, it's important that plugin authors implement support for replacing placeholders when the config is provisioned. This is explained below. -Implementing placeholder support[🔗](https://caddyserver.com/docs/extending-caddy/placeholders#implementing-placeholder-support "Direct link") ----------------------------------------------------------------------------------------------------------------------------------------------- +Implementing placeholder support +-------------------------------- You should not process placeholders in [`UnmarshalCaddyfile()`](https://caddyserver.com/docs/extending-caddy/caddyfile). Instead, placeholders should be replaced later, either in the [`Provision()`](https://caddyserver.com/docs/extending-caddy#provisioning) step, or during your module's execution (e.g. `ServeHTTP()` for HTTP handlers, `Match()` for matchers, etc.), using a `caddy.Replacer`. -### Examples[🔗](https://caddyserver.com/docs/extending-caddy/placeholders#examples "Direct link") +### Examples -Here, we are using a newly constructed replacer to process placeholders. It has access to [global placeholders](https://caddyserver.com/docs/conventions#placeholders) such as `{env.HOST}`, but _not_ HTTP placeholders such as `{http.request.uri}` because provisoning happens when the config is loaded, and not during a request. +Here, we are using a newly constructed replacer to process placeholders. It has access to [global placeholders](https://caddyserver.com/docs/conventions#placeholders) such as `{env.HOST}`, but _not_ HTTP placeholders such as `{http.request.uri}` because provisioning happens when the config is loaded, and not during a request. ``` func (g *Gizmo) Provision(ctx caddy.Context) error { diff --git a/docs/caddy/docs/docs/getting-started.md b/docs/caddy/getting-started.md similarity index 96% rename from docs/caddy/docs/docs/getting-started.md rename to docs/caddy/getting-started.md index 9f1105c..eca6753 100644 --- a/docs/caddy/docs/docs/getting-started.md +++ b/docs/caddy/getting-started.md @@ -31,24 +31,15 @@ Welcome to Caddy! This tutorial will explore the basics of using Caddy and help Let's start by running it: -``` -caddy -``` - +`caddy` Oops; without a subcommand, the `caddy` command only displays help text. You can use this any time you forget what to do. To start Caddy as a daemon, use the `run` subcommand: -``` -caddy run -``` - +`caddy run` This blocks forever, but what is it doing? At the moment... nothing. By default, Caddy's configuration ("config") is blank. We can verify this using the [admin API](https://caddyserver.com/docs/api) in another terminal: -``` -curl localhost:2019/config/ -``` - +`curl localhost:2019/config/` We can make Caddy useful by giving it a config. This can be done many ways, but we'll start by making a POST request to the [/load](https://caddyserver.com/docs/api#post-load) endpoint using `curl` in the next section. Your first config @@ -90,10 +81,7 @@ curl localhost:2019/load \ We can verify that Caddy applied our new config with another GET request: -``` -curl localhost:2019/config/ -``` - +`curl localhost:2019/config/` Test that it works by going to [localhost:2015](http://localhost:2015/) in your browser or use `curl`: ``` @@ -120,16 +108,10 @@ Save that to a file named `Caddyfile` (no extension) in the current directory. Stop Caddy if it is already running (Ctrl+C), then run: -``` -caddy adapt -``` - +`caddy adapt` Or if you stored the Caddyfile somewhere else or named it something other than `Caddyfile`: -``` -caddy adapt --config /path/to/Caddyfile -``` - +`caddy adapt --config /path/to/Caddyfile` You will see JSON output! What happened here? We just used a [_config adapter_](https://caddyserver.com/docs/config-adapters) to convert our Caddyfile to Caddy's native JSON structure. @@ -138,16 +120,10 @@ While we could take that output and make another API request, we can skip all th Now that there is a Caddyfile in the current folder, let's do `caddy run` again: -``` -caddy run -``` - +`caddy run` Or if your Caddyfile is somewhere else: -``` -caddy run --config /path/to/Caddyfile -``` - +`caddy run --config /path/to/Caddyfile` (If it is called something else that doesn't start with "Caddyfile", you will need to specify `--adapter caddyfile`.) You can now try loading your site again and you will see that it is working! @@ -211,18 +187,12 @@ Since Caddy is a server, it runs indefinitely. That means your terminal won't un Although `caddy run` is the most common and is usually recommended (especially when making a system service!), you can alternatively use `caddy start` to start Caddy and have it run in the background: -``` -caddy start -``` - +`caddy start` This will let you use your terminal again, which is convenient in some interactive headless environments. You will then have to stop the process yourself, since Ctrl+C won't stop it for you: -``` -caddy stop -``` - +`caddy stop` Or use [the /stop endpoint](https://caddyserver.com/docs/api#post-stop) of the API. Reloading config @@ -236,10 +206,7 @@ When using the command line, however, it may be tempting to use Ctrl+C to stop y Instead, use the [`caddy reload`](https://caddyserver.com/docs/command-line#caddy-reload) command for a graceful config change: -``` -caddy reload -``` - +`caddy reload` This actually just uses the API under the hood. It will load and, if necessary, adapt your config file to JSON, then gracefully replace the active configuration without downtime. If there are any errors loading the new config, Caddy rolls back to the last working config. diff --git a/docs/caddy/docs/docs.md b/docs/caddy/index.md similarity index 86% rename from docs/caddy/docs/docs.md rename to docs/caddy/index.md index bac7521..4e7b395 100644 --- a/docs/caddy/docs/docs.md +++ b/docs/caddy/index.md @@ -5,8 +5,8 @@ URL Source: https://caddyserver.com/docs/ Markdown Content: Caddy is a powerful, extensible platform to serve your sites, services, and apps, written in Go. If you're new to Caddy, the way you serve the Web is about to change. -Introduction[🔗](https://caddyserver.com/docs/#introduction "Direct link") --------------------------------------------------------------------------- +Introduction +------------ Most people use Caddy as a web server or proxy, but at its core, Caddy is a server of servers. With the [requisite modules](https://caddyserver.com/docs/modules/), it can take on the role of any long-running process! @@ -14,8 +14,8 @@ Configuration is both dynamic and exportable with [Caddy's API](https://caddyser Caddy compiles for all major platforms and has no runtime dependencies. -First time?[🔗](https://caddyserver.com/docs/#first-time "Direct link") ------------------------------------------------------------------------ +First time? +----------- No problem! **We suggest that _everyone_ regardless of experience go through our [Getting Started guide](https://caddyserver.com/docs/getting-started).** It will give you a well-rounded perspective on your new web server that will be invaluable as you continue learning. @@ -27,8 +27,8 @@ We recommend sticking to these official resources to [install](https://caddyserv But whatever you do, enjoy using your new web server. Caddy is an experience unlike any other server software you've used! -Getting help[🔗](https://caddyserver.com/docs/#getting-help "Direct link") --------------------------------------------------------------------------- +Getting help +------------ If you need help using Caddy, please ask nicely in [our community forum](https://caddy.community/). We would be happy to help you. All we ask is that you fill out the help template as thoroughly as possible, and pay it forward by helping others. We always need more helpers. diff --git a/docs/caddy/docs/docs/install.md b/docs/caddy/install.md similarity index 68% rename from docs/caddy/docs/docs/install.md rename to docs/caddy/install.md index 927ba8c..2d97d84 100644 --- a/docs/caddy/docs/docs/install.md +++ b/docs/caddy/install.md @@ -26,24 +26,26 @@ This page describes various methods for installing Caddy on your system. * [Unikraft](https://caddyserver.com/docs/install#unikraft) * [OPNsense](https://caddyserver.com/docs/install#opnsense) -Static binaries ---------------- +Static binaries[🔗](https://caddyserver.com/docs/install#static-binaries "Direct link") +--------------------------------------------------------------------------------------- **If installing onto a production system, we recommend using our official package for your distro if available below.** -1. Obtain a Caddy binary: - * [from releases on GitHub](https://github.com/caddyserver/caddy/releases) (expand "Assets") +1. Obtain a Caddy binary: + * [from releases on GitHub](https://github.com/caddyserver/caddy/releases) (expand "Assets") * Refer to [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) for how to verify the asset signature + * [from our download page](https://caddyserver.com/download) * [by building from source](https://caddyserver.com/docs/build) (either with `go` or `xcaddy`) -2. [Install Caddy as a system service.](https://caddyserver.com/docs/running#manual-installation) This is strongly recommended, especially for production servers. + +2. [Install Caddy as a system service.](https://caddyserver.com/docs/running#manual-installation) This is strongly recommended, especially for production servers. Place the binary in one of your `$PATH` (or `%PATH%` on Windows) directories so you can run `caddy` without typing the full path of the executable file. (Run `echo $PATH` to see the list of directories that qualify.) You can upgrade static binaries by replacing them with newer versions and restarting Caddy. The [`caddy upgrade` command](https://caddyserver.com/docs/command-line#caddy-upgrade) can make this easy. -Debian, Ubuntu, Raspbian ------------------------- +Debian, Ubuntu, Raspbian[🔗](https://caddyserver.com/docs/install#debian-ubuntu-raspbian "Direct link") +------------------------------------------------------------------------------------------------------- Installing this package automatically starts and runs Caddy as a [systemd service](https://caddyserver.com/docs/running#linux-service) named `caddy`. It also comes with an optional `caddy-api` service which is _not_ enabled by default, but should be used if you primarily configure Caddy via its API instead of config files. @@ -55,6 +57,8 @@ After installing, please read the [service usage instructions](https://caddyserv sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list +chmod o+r /usr/share/keyrings/caddy-stable-archive-keyring.gpg +chmod o+r /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy ``` @@ -65,6 +69,8 @@ sudo apt install caddy sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl curl -1sLf 'https://dl.cloudsmith.io/public/caddy/testing/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-testing-archive-keyring.gpg curl -1sLf 'https://dl.cloudsmith.io/public/caddy/testing/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-testing.list +chmod o+r /usr/share/keyrings/caddy-testing-archive-keyring.gpg +chmod o+r /etc/apt/sources.list.d/caddy-testing.list sudo apt update sudo apt install caddy ``` @@ -73,140 +79,110 @@ sudo apt install caddy If you wish to use the packaged support files (systemd services, bash completion and default configuration) with a custom Caddy build, instructions can be [found here](https://caddyserver.com/docs/build#package-support-files-for-custom-builds-for-debianubunturaspbian). -Fedora, RedHat, CentOS ----------------------- +Fedora, RedHat, CentOS[🔗](https://caddyserver.com/docs/install#fedora-redhat-centos "Direct link") +--------------------------------------------------------------------------------------------------- This package comes with both of Caddy's [systemd service](https://caddyserver.com/docs/running#linux-service) unit files, but does not enable them by default. Using the service is recommended. If you do, please read the [service usage instructions](https://caddyserver.com/docs/running#using-the-service). -Fedora or RHEL/CentOS 8: +Fedora: ``` -dnf install 'dnf-command(copr)' +dnf install dnf5-plugins dnf copr enable @caddy/caddy dnf install caddy ``` -RHEL/CentOS 7: +CentOS/RHEL: ``` -yum install yum-plugin-copr -yum copr enable @caddy/caddy -yum install caddy +dnf install dnf-plugins-core +dnf copr enable @caddy/caddy +dnf install caddy ``` [**View the Caddy COPR**](https://copr.fedorainfracloud.org/coprs/g/caddy/caddy/) -Arch Linux, Manjaro, Parabola ------------------------------ +Arch Linux, Manjaro, Parabola[🔗](https://caddyserver.com/docs/install#arch-linux-manjaro-parabola "Direct link") +----------------------------------------------------------------------------------------------------------------- This package comes with heavily modified versions of both of Caddy's [systemd service](https://caddyserver.com/docs/running#linux-service) unit files, but does not enable them by default. Those modifications include a custom start/stop behavior and additional sandboxing flags which are explained in [systemd's exec documentation](https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Sandboxing), which may lead to certain host directories not being available to the Caddy process. -``` -pacman -Syu caddy -``` - +`pacman -Syu caddy` [**View Caddy in the Arch Linux repositories**](https://archlinux.org/packages/extra/x86_64/caddy/) and [**the Arch Linux Wiki**](https://wiki.archlinux.org/title/Caddy) -Docker ------- - -``` -docker pull caddy -``` +Docker[🔗](https://caddyserver.com/docs/install#docker "Direct link") +--------------------------------------------------------------------- +`docker pull caddy` [**View on Docker Hub**](https://hub.docker.com/_/caddy) See our [recommended Docker Compose configuration](https://caddyserver.com/docs/running#docker-compose) and usage instructions. -Gentoo ------- +Gentoo[🔗](https://caddyserver.com/docs/install#gentoo "Direct link") +--------------------------------------------------------------------- _Note: This is a community-maintained installation method._ -``` -emerge www-servers/caddy -``` - +`emerge www-servers/caddy` [**View Gentoo Package**](https://packages.gentoo.org/packages/www-servers/caddy) -Homebrew (Mac) --------------- +Homebrew (Mac)[🔗](https://caddyserver.com/docs/install#homebrew-mac "Direct link") +----------------------------------------------------------------------------------- _Note: This is a community-maintained installation method._ -``` -brew install caddy -``` - +`brew install caddy` [**View the Homebrew formula**](https://formulae.brew.sh/formula/caddy) -Chocolatey (Windows) --------------------- +Chocolatey (Windows)[🔗](https://caddyserver.com/docs/install#chocolatey-windows "Direct link") +----------------------------------------------------------------------------------------------- _Note: This is a community-maintained installation method._ -``` -choco install caddy -``` - +`choco install caddy` [**View the Chocolatey package**](https://chocolatey.org/packages/caddy) -Scoop (Windows) ---------------- +Scoop (Windows)[🔗](https://caddyserver.com/docs/install#scoop-windows "Direct link") +------------------------------------------------------------------------------------- _Note: This is a community-maintained installation method._ -``` -scoop install caddy -``` - +`scoop install caddy` [**View the Scoop manifest**](https://github.com/ScoopInstaller/Main/blob/master/bucket/caddy.json) -Webi ----- +Webi[🔗](https://caddyserver.com/docs/install#webi "Direct link") +----------------------------------------------------------------- _Note: This is a community-maintained installation method._ Linux and macOS: -``` -curl -sS https://webi.sh/caddy | sh -``` - +`curl -sS https://webi.sh/caddy | sh` Windows: -``` -curl.exe https://webi.ms/caddy | powershell -``` - +`curl.exe https://webi.ms/caddy | powershell` You may need to adjust the Windows firewall rules to allow non-localhost incoming connections. [**View on Webi**](https://webinstall.dev/caddy) -Ansible -------- +Ansible[🔗](https://caddyserver.com/docs/install#ansible "Direct link") +----------------------------------------------------------------------- _Note: This is a community-maintained installation method._ -``` -ansible-galaxy install nvjacobo.caddy -``` - +`ansible-galaxy install nvjacobo.caddy` [**View the Ansible role repository**](https://github.com/nvjacobo/caddy) -Termux ------- +Termux[🔗](https://caddyserver.com/docs/install#termux "Direct link") +--------------------------------------------------------------------- _Note: This is a community-maintained installation method._ -``` -pkg install caddy -``` - +`pkg install caddy` [**View the Termux build.sh file**](https://github.com/termux/termux-packages/blob/master/packages/caddy/build.sh) -Nix/Nixpkgs/NixOS ------------------ +Nix/Nixpkgs/NixOS[🔗](https://caddyserver.com/docs/install#nixnixpkgsnixos "Direct link") +----------------------------------------------------------------------------------------- _Note: This is a community-maintained installation method._ @@ -215,34 +191,25 @@ _Note: This is a community-maintained installation method._ [**View Caddy in the Nixpkgs search**](https://search.nixos.org/packages?channel=unstable&show=caddy&query=caddy) and [**the NixOS options search**](https://search.nixos.org/options?channel=unstable&show=services.caddy.enable&query=services.caddy) -Unikraft --------- +Unikraft[🔗](https://caddyserver.com/docs/install#unikraft "Direct link") +------------------------------------------------------------------------- _Note: This is a community-maintained installation method._ First install Unikraft's companion tool, [`kraft`](https://unikraft.org/docs/cli): -``` -curl --proto '=https' --tlsv1.2 -sSf https://get.kraftkit.sh | sh -``` - +`curl --proto '=https' --tlsv1.2 -sSf https://get.kraftkit.sh | sh` Then run Caddy with Unikraft using: -``` -kraft run --rm -p 2015:2015 --plat qemu --arch x86_64 -M 256M caddy:2.7 -``` - +`kraft run --rm -p 2015:2015 --plat qemu --arch x86_64 -M 256M caddy:2.7` To allow non-localhost incoming connections, you need to [connect the unikernel instance to a network](https://unikraft.org/docs/cli/running#connecting-a-unikernel-instance-to-a-network). [**View the Unikraft application catalog**](https://github.com/unikraft/catalog/tree/main/examples/caddy) and [**the KraftCloud platform examples (powered by Unikraft)**](https://github.com/kraftcloud/examples/tree/main/caddy). -OPNsense --------- +OPNsense[🔗](https://caddyserver.com/docs/install#opnsense "Direct link") +------------------------------------------------------------------------- _Note: This is a community-maintained installation method._ -``` -pkg install os-caddy -``` - +`pkg install os-caddy` [**View the FreeBSD caddy-custom makefile**](https://github.com/opnsense/ports/blob/master/www/caddy-custom/Makefile) and [**the os-caddy plugin source**](https://github.com/opnsense/plugins/tree/master/www/caddy) diff --git a/docs/caddy/docs/docs/json.md b/docs/caddy/json.md similarity index 90% rename from docs/caddy/docs/docs/json.md rename to docs/caddy/json.md index aa2daf7..b0a8dd8 100644 --- a/docs/caddy/docs/docs/json.md +++ b/docs/caddy/json.md @@ -13,7 +13,7 @@ Markdown Content: **Code repository:** -**Custom builds:** `xcaddy build --with ` +**Custom builds:**`xcaddy build --with` Description[🔗](https://caddyserver.com/docs/json/#docs "Direct link") ---------------------------------------------------------------------- @@ -29,62 +29,50 @@ Generally, all config settings are optional, as it is Caddy convention to have g Go programs which are directly building a Config struct value should take care to populate the JSON-encodable fields of the struct (i.e. the fields with `json` struct tags) if employing the module lifecycle (e.g. Provision method calls). [🔗](https://caddyserver.com/docs/json/#admin)[admin](https://caddyserver.com/docs/json/admin/) - AdminConfig configures Caddy's API endpoint, which is used to manage Caddy while it is running. [🔗](https://caddyserver.com/docs/json/#admin/disabled)[admin/disabled](https://caddyserver.com/docs/json/admin/disabled/) - If true, the admin endpoint will be completely disabled. Note that this makes any runtime changes to the config impossible, since the interface to do so is through the admin endpoint. [🔗](https://caddyserver.com/docs/json/#admin/listen)[admin/listen](https://caddyserver.com/docs/json/admin/listen/) - The address to which the admin endpoint's listener should bind itself. Can be any single network address that can be parsed by Caddy. Default: localhost:2019 -[🔗](https://caddyserver.com/docs/json/#admin/enforce_origin)[admin/enforce\_origin](https://caddyserver.com/docs/json/admin/enforce_origin/) - +[🔗](https://caddyserver.com/docs/json/#admin/enforce_origin)[admin/enforce_origin](https://caddyserver.com/docs/json/admin/enforce_origin/) If true, CORS headers will be emitted, and requests to the API will be rejected if their `Host` and `Origin` headers do not match the expected value(s). Use `origins` to customize which origins/hosts are allowed. If `origins` is not set, the listen address is the only value allowed by default. Enforced only on local (plaintext) endpoint. [🔗](https://caddyserver.com/docs/json/#admin/origins)[admin/origins](https://caddyserver.com/docs/json/admin/origins/) - The list of allowed origins/hosts for API requests. Only needed if accessing the admin endpoint from a host different from the socket's network interface or if `enforce_origin` is true. If not set, the listener address will be the default value. If set but empty, no origins will be allowed. Enforced only on local (plaintext) endpoint. [🔗](https://caddyserver.com/docs/json/#admin/config)[admin/config](https://caddyserver.com/docs/json/admin/config/) - Options pertaining to configuration management. ConfigSettings configures the management of configuration. [🔗](https://caddyserver.com/docs/json/#admin/config/persist)[admin/config/persist](https://caddyserver.com/docs/json/admin/config/persist/) - Whether to keep a copy of the active config on disk. Default is true. Note that "pulled" dynamic configs (using the neighboring "load" module) are not persisted; only configs that are pushed to Caddy get persisted. [🔗](https://caddyserver.com/docs/json/#admin/config/load)[admin/config/load](https://caddyserver.com/docs/json/admin/config/load/) - Loads a configuration to use. This is helpful if your configs are managed elsewhere, and you want Caddy to pull its config dynamically when it starts. The pulled config completely replaces the current one, just like any other config load. It is an error if a pulled config is configured to pull another config. EXPERIMENTAL: Subject to change. -Fulfilled by modules in namespace: **caddy.config\_loaders** +Fulfilled by modules in namespace: **caddy.config_loaders** * [http](https://caddyserver.com/docs/json/admin/config/load/http/) -* [storage](https://caddyserver.com/docs/json/admin/config/load/storage/) Non-standard +* [storage](https://caddyserver.com/docs/json/admin/config/load/storage/)Non-standard [🔗](https://caddyserver.com/docs/json/#admin/identity)[admin/identity](https://caddyserver.com/docs/json/admin/identity/) - Options that establish this server's identity. Identity refers to credentials which can be used to uniquely identify and authenticate this server instance. This is required if remote administration is enabled (but does not require remote administration to be enabled). Default: no identity management. IdentityConfig configures management of this server's identity. An identity consists of credentials that uniquely verify this instance; for example, TLS certificates (public + private key pairs). [🔗](https://caddyserver.com/docs/json/#admin/identity/identifiers)[admin/identity/identifiers](https://caddyserver.com/docs/json/admin/identity/identifiers/) - List of names or IP addresses which refer to this server. Certificates will be obtained for these identifiers so secure TLS connections can be made using them. [🔗](https://caddyserver.com/docs/json/#admin/identity/issuers)[admin/identity/issuers](https://caddyserver.com/docs/json/admin/identity/issuers/) - Issuers that can provide this admin endpoint its identity certificate(s). Default: ACME issuers configured for ZeroSSL and Let's Encrypt. Be sure to change this if you require credentials for private identifiers. [🔗](https://caddyserver.com/docs/json/#admin/remote)[admin/remote](https://caddyserver.com/docs/json/admin/remote/) - Options pertaining to remote administration. By default, remote administration is disabled. If enabled, identity management must also be configured, as that is how the endpoint is secured. See the neighboring "identity" object. EXPERIMENTAL: This feature is subject to change. @@ -96,35 +84,28 @@ This endpoint is secured using identity management, which must be configured sep EXPERIMENTAL: Subject to change. [🔗](https://caddyserver.com/docs/json/#admin/remote/listen)[admin/remote/listen](https://caddyserver.com/docs/json/admin/remote/listen/) - The address on which to start the secure listener. Default: :2021 -[🔗](https://caddyserver.com/docs/json/#admin/remote/access_control)[admin/remote/access\_control](https://caddyserver.com/docs/json/admin/remote/access_control/) - +[🔗](https://caddyserver.com/docs/json/#admin/remote/access_control)[admin/remote/access_control](https://caddyserver.com/docs/json/admin/remote/access_control/) List of access controls for this secure admin endpoint. This configures TLS mutual authentication (i.e. authorized client certificates), but also application-layer permissions like which paths and methods each identity is authorized for. AdminAccess specifies what permissions an identity or group of identities are granted. -[🔗](https://caddyserver.com/docs/json/#admin/remote/access_control/public_keys)[admin/remote/access\_control/public\_keys](https://caddyserver.com/docs/json/admin/remote/access_control/public_keys/) - +[🔗](https://caddyserver.com/docs/json/#admin/remote/access_control/public_keys)[admin/remote/access_control/public_keys](https://caddyserver.com/docs/json/admin/remote/access_control/public_keys/) Base64-encoded DER certificates containing public keys to accept. (The contents of PEM certificate blocks are base64-encoded DER.) Any of these public keys can appear in any part of a verified chain. -[🔗](https://caddyserver.com/docs/json/#admin/remote/access_control/permissions)[admin/remote/access\_control/permissions](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/) - +[🔗](https://caddyserver.com/docs/json/#admin/remote/access_control/permissions)[admin/remote/access_control/permissions](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/) Limits what the associated identities are allowed to do. If unspecified, all permissions are granted. AdminPermissions specifies what kinds of requests are allowed to be made to the admin endpoint. -[🔗](https://caddyserver.com/docs/json/#admin/remote/access_control/permissions/paths)[admin/remote/access\_control/permissions/paths](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/paths/) - +[🔗](https://caddyserver.com/docs/json/#admin/remote/access_control/permissions/paths)[admin/remote/access_control/permissions/paths](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/paths/) The API paths allowed. Paths are simple prefix matches. Any subpath of the specified paths will be allowed. -[🔗](https://caddyserver.com/docs/json/#admin/remote/access_control/permissions/methods)[admin/remote/access\_control/permissions/methods](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/methods/) - +[🔗](https://caddyserver.com/docs/json/#admin/remote/access_control/permissions/methods)[admin/remote/access_control/permissions/methods](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/methods/) The HTTP methods allowed for the given paths. [🔗](https://caddyserver.com/docs/json/#logging)[logging](https://caddyserver.com/docs/json/logging/) - Logging facilitates logging within Caddy. The default log is called "default" and you can customize it. You can also define additional logs. By default, all logs at INFO level and higher are written to standard error ("stderr" writer) in a human-readable format ("console" encoder if stdout is an interactive terminal, "json" encoder otherwise). @@ -134,17 +115,14 @@ All defined logs accept all log entries by default, but you can filter by level Caddy logs (except the sink) are zero-allocation, so they are very high-performing in terms of memory and CPU time. Enabling sampling can further increase throughput on extremely high-load servers. [🔗](https://caddyserver.com/docs/json/#logging/sink)[logging/sink](https://caddyserver.com/docs/json/logging/sink/) - Sink is the destination for all unstructured logs emitted from Go's standard library logger. These logs are common in dependencies that are not designed specifically for use in Caddy. Because it is global and unstructured, the sink lacks most advanced features and customizations. StandardLibLog configures the default Go standard library global logger in the log package. This is necessary because module dependencies which are not built specifically for Caddy will use the standard logger. This is also known as the "sink" logger. [🔗](https://caddyserver.com/docs/json/#logging/sink/writer)[logging/sink/writer](https://caddyserver.com/docs/json/logging/sink/writer/) - The module that writes out log entries for the sink. [🔗](https://caddyserver.com/docs/json/#logging/logs)[logging/logs](https://caddyserver.com/docs/json/logging/logs/) - Logs are your logs, keyed by an arbitrary name of your choosing. The default log can be customized by defining a log called "default". You can further define other logs and filter what kinds of entries they accept. CustomLog represents a custom logger configuration. @@ -152,73 +130,64 @@ CustomLog represents a custom logger configuration. By default, a log will emit all log entries. Some entries will be skipped if sampling is enabled. Further, the Include and Exclude parameters define which loggers (by name) are allowed or rejected from emitting in this log. If both Include and Exclude are populated, their values must be mutually exclusive, and longer namespaces have priority. If neither are populated, all logs are emitted. [🔗](https://caddyserver.com/docs/json/#logging/logs/writer)[logging/logs/writer](https://caddyserver.com/docs/json/logging/logs/writer/) - The writer defines where log entries are emitted. [🔗](https://caddyserver.com/docs/json/#logging/logs/encoder)[logging/logs/encoder](https://caddyserver.com/docs/json/logging/logs/encoder/) - The encoder is how the log entries are formatted or encoded. [🔗](https://caddyserver.com/docs/json/#logging/logs/level)[logging/logs/level](https://caddyserver.com/docs/json/logging/logs/level/) - Level is the minimum level to emit, and is inclusive. Possible levels: DEBUG, INFO, WARN, ERROR, PANIC, and FATAL [🔗](https://caddyserver.com/docs/json/#logging/logs/sampling)[logging/logs/sampling](https://caddyserver.com/docs/json/logging/logs/sampling/) - Sampling configures log entry sampling. If enabled, only some log entries will be emitted. This is useful for improving performance on extremely high-pressure servers. LogSampling configures log entry sampling. [🔗](https://caddyserver.com/docs/json/#logging/logs/sampling/interval)[logging/logs/sampling/interval](https://caddyserver.com/docs/json/logging/logs/sampling/interval/) - The window over which to conduct sampling. A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. [🔗](https://caddyserver.com/docs/json/#logging/logs/sampling/first)[logging/logs/sampling/first](https://caddyserver.com/docs/json/logging/logs/sampling/first/) - Log this many entries within a given level and message for each interval. [🔗](https://caddyserver.com/docs/json/#logging/logs/sampling/thereafter)[logging/logs/sampling/thereafter](https://caddyserver.com/docs/json/logging/logs/sampling/thereafter/) - If more entries with the same level and message are seen during the same interval, keep one in this many entries until the end of the interval. [🔗](https://caddyserver.com/docs/json/#logging/logs/include)[logging/logs/include](https://caddyserver.com/docs/json/logging/logs/include/) - Include defines the names of loggers to emit in this log. For example, to include only logs emitted by the admin API, you would include "admin.api". [🔗](https://caddyserver.com/docs/json/#logging/logs/exclude)[logging/logs/exclude](https://caddyserver.com/docs/json/logging/logs/exclude/) - Exclude defines the names of loggers that should be skipped by this log. For example, to exclude only HTTP access logs, you would exclude "http.log.access". [🔗](https://caddyserver.com/docs/json/#storage)[storage](https://caddyserver.com/docs/json/storage/) - StorageRaw is a storage module that defines how/where Caddy stores assets (such as TLS certificates). The default storage module is `caddy.storage.file_system` (the local file system), and the default path [depends on the OS and environment](https://caddyserver.com/docs/conventions#data-directory). [🔗](https://caddyserver.com/docs/json/#apps)[apps](https://caddyserver.com/docs/json/apps/) - AppsRaw are the apps that Caddy will load and run. The app module name is the key, and the app's config is the associated value. ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. Fulfilled by modules in namespace: -* [exec](https://caddyserver.com/docs/json/apps/exec/) Non-standard -* [reconnect](https://caddyserver.com/docs/json/apps/reconnect/) Non-standard -* [supervisor](https://caddyserver.com/docs/json/apps/supervisor/) Non-standard * [events](https://caddyserver.com/docs/json/apps/events/) * [http](https://caddyserver.com/docs/json/apps/http/) * [pki](https://caddyserver.com/docs/json/apps/pki/) * [tls](https://caddyserver.com/docs/json/apps/tls/) -* [frankenphp](https://caddyserver.com/docs/json/apps/frankenphp/) Non-standard -* [security](https://caddyserver.com/docs/json/apps/security/) Non-standard -* [crowdsec](https://caddyserver.com/docs/json/apps/crowdsec/) Non-standard -* [ssh](https://caddyserver.com/docs/json/apps/ssh/) Non-standard -* [dynamic\_dns](https://caddyserver.com/docs/json/apps/dynamic_dns/) Non-standard -* [layer4](https://caddyserver.com/docs/json/apps/layer4/) Non-standard -* [ssh](https://caddyserver.com/docs/json/apps/ssh/) Non-standard -* [profefe](https://caddyserver.com/docs/json/apps/profefe/) Non-standard -* [profiling](https://caddyserver.com/docs/json/apps/profiling/) Non-standard -* [pyroscope](https://caddyserver.com/docs/json/apps/pyroscope/) Non-standard -* [scion](https://caddyserver.com/docs/json/apps/scion/) Non-standard -* [geoip2](https://caddyserver.com/docs/json/apps/geoip2/) Non-standard +* [crowdsec](https://caddyserver.com/docs/json/apps/crowdsec/)Non-standard +* [dns01proxy](https://caddyserver.com/docs/json/apps/dns01proxy/)Non-standard +* [dynamic_dns](https://caddyserver.com/docs/json/apps/dynamic_dns/)Non-standard +* [exec](https://caddyserver.com/docs/json/apps/exec/)Non-standard +* [frankenphp](https://caddyserver.com/docs/json/apps/frankenphp/)Non-standard +* [geoip2](https://caddyserver.com/docs/json/apps/geoip2/)Non-standard +* [layer4](https://caddyserver.com/docs/json/apps/layer4/)Non-standard +* [pocketbase](https://caddyserver.com/docs/json/apps/pocketbase/)Non-standard +* [profefe](https://caddyserver.com/docs/json/apps/profefe/)Non-standard +* [profiling](https://caddyserver.com/docs/json/apps/profiling/)Non-standard +* [pyroscope](https://caddyserver.com/docs/json/apps/pyroscope/)Non-standard +* [reconnect](https://caddyserver.com/docs/json/apps/reconnect/)Non-standard +* [scion](https://caddyserver.com/docs/json/apps/scion/)Non-standard +* [security](https://caddyserver.com/docs/json/apps/security/)Non-standard +* [ssh](https://caddyserver.com/docs/json/apps/ssh/)Non-standard +* [ssh](https://caddyserver.com/docs/json/apps/ssh/)Non-standard +* [supervisor](https://caddyserver.com/docs/json/apps/supervisor/)Non-standard diff --git a/docs/caddy/json/admin.md b/docs/caddy/json/admin.md new file mode 100644 index 0000000..f83bb61 --- /dev/null +++ b/docs/caddy/json/admin.md @@ -0,0 +1,91 @@ +Title: admin - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/ + +Markdown Content: +`{▾ "disabled": false, "listen": "", "enforce_origin": false, "origins": [""], "config": {▾ "persist": false, "load": {•••} }, "identity": {▾ "identifiers": [""], "issuers": [{•••}] }, "remote": {▾ "listen": "", "access_control": [{▾ "public_keys": [""], "permissions": [{▾ }] }] }}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/#docs "Direct link") +---------------------------------------------------------------------------- + +AdminConfig configures Caddy's API endpoint, which is used to manage Caddy while it is running. + +[🔗](https://caddyserver.com/docs/json/admin/#disabled)[disabled](https://caddyserver.com/docs/json/admin/disabled/) +If true, the admin endpoint will be completely disabled. Note that this makes any runtime changes to the config impossible, since the interface to do so is through the admin endpoint. + +[🔗](https://caddyserver.com/docs/json/admin/#listen)[listen](https://caddyserver.com/docs/json/admin/listen/) +The address to which the admin endpoint's listener should bind itself. Can be any single network address that can be parsed by Caddy. Default: localhost:2019 + +[🔗](https://caddyserver.com/docs/json/admin/#enforce_origin)[enforce_origin](https://caddyserver.com/docs/json/admin/enforce_origin/) +If true, CORS headers will be emitted, and requests to the API will be rejected if their `Host` and `Origin` headers do not match the expected value(s). Use `origins` to customize which origins/hosts are allowed. If `origins` is not set, the listen address is the only value allowed by default. Enforced only on local (plaintext) endpoint. + +[🔗](https://caddyserver.com/docs/json/admin/#origins)[origins](https://caddyserver.com/docs/json/admin/origins/) +The list of allowed origins/hosts for API requests. Only needed if accessing the admin endpoint from a host different from the socket's network interface or if `enforce_origin` is true. If not set, the listener address will be the default value. If set but empty, no origins will be allowed. Enforced only on local (plaintext) endpoint. + +[🔗](https://caddyserver.com/docs/json/admin/#config)[config](https://caddyserver.com/docs/json/admin/config/) +Options pertaining to configuration management. + +ConfigSettings configures the management of configuration. + +[🔗](https://caddyserver.com/docs/json/admin/#config/persist)[config/persist](https://caddyserver.com/docs/json/admin/config/persist/) +Whether to keep a copy of the active config on disk. Default is true. Note that "pulled" dynamic configs (using the neighboring "load" module) are not persisted; only configs that are pushed to Caddy get persisted. + +[🔗](https://caddyserver.com/docs/json/admin/#config/load)[config/load](https://caddyserver.com/docs/json/admin/config/load/) +Loads a configuration to use. This is helpful if your configs are managed elsewhere, and you want Caddy to pull its config dynamically when it starts. The pulled config completely replaces the current one, just like any other config load. It is an error if a pulled config is configured to pull another config. + +EXPERIMENTAL: Subject to change. + +Fulfilled by modules in namespace: **caddy.config_loaders** + +* [http](https://caddyserver.com/docs/json/admin/config/load/http/) +* [storage](https://caddyserver.com/docs/json/admin/config/load/storage/)Non-standard + +[🔗](https://caddyserver.com/docs/json/admin/#identity)[identity](https://caddyserver.com/docs/json/admin/identity/) +Options that establish this server's identity. Identity refers to credentials which can be used to uniquely identify and authenticate this server instance. This is required if remote administration is enabled (but does not require remote administration to be enabled). Default: no identity management. + +IdentityConfig configures management of this server's identity. An identity consists of credentials that uniquely verify this instance; for example, TLS certificates (public + private key pairs). + +[🔗](https://caddyserver.com/docs/json/admin/#identity/identifiers)[identity/identifiers](https://caddyserver.com/docs/json/admin/identity/identifiers/) +List of names or IP addresses which refer to this server. Certificates will be obtained for these identifiers so secure TLS connections can be made using them. + +[🔗](https://caddyserver.com/docs/json/admin/#identity/issuers)[identity/issuers](https://caddyserver.com/docs/json/admin/identity/issuers/) +Issuers that can provide this admin endpoint its identity certificate(s). Default: ACME issuers configured for ZeroSSL and Let's Encrypt. Be sure to change this if you require credentials for private identifiers. + +[🔗](https://caddyserver.com/docs/json/admin/#remote)[remote](https://caddyserver.com/docs/json/admin/remote/) +Options pertaining to remote administration. By default, remote administration is disabled. If enabled, identity management must also be configured, as that is how the endpoint is secured. See the neighboring "identity" object. + +EXPERIMENTAL: This feature is subject to change. + +RemoteAdmin enables and configures remote administration. If enabled, a secure listener enforcing mutual TLS authentication will be started on a different port from the standard plaintext admin server. + +This endpoint is secured using identity management, which must be configured separately (because identity management does not depend on remote administration). See the admin/identity config struct. + +EXPERIMENTAL: Subject to change. + +[🔗](https://caddyserver.com/docs/json/admin/#remote/listen)[remote/listen](https://caddyserver.com/docs/json/admin/remote/listen/) +The address on which to start the secure listener. Default: :2021 + +[🔗](https://caddyserver.com/docs/json/admin/#remote/access_control)[remote/access_control](https://caddyserver.com/docs/json/admin/remote/access_control/) +List of access controls for this secure admin endpoint. This configures TLS mutual authentication (i.e. authorized client certificates), but also application-layer permissions like which paths and methods each identity is authorized for. + +AdminAccess specifies what permissions an identity or group of identities are granted. + +[🔗](https://caddyserver.com/docs/json/admin/#remote/access_control/public_keys)[remote/access_control/public_keys](https://caddyserver.com/docs/json/admin/remote/access_control/public_keys/) +Base64-encoded DER certificates containing public keys to accept. (The contents of PEM certificate blocks are base64-encoded DER.) Any of these public keys can appear in any part of a verified chain. + +[🔗](https://caddyserver.com/docs/json/admin/#remote/access_control/permissions)[remote/access_control/permissions](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/) +Limits what the associated identities are allowed to do. If unspecified, all permissions are granted. + +AdminPermissions specifies what kinds of requests are allowed to be made to the admin endpoint. + +[🔗](https://caddyserver.com/docs/json/admin/#remote/access_control/permissions/paths)[remote/access_control/permissions/paths](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/paths/) +The API paths allowed. Paths are simple prefix matches. Any subpath of the specified paths will be allowed. + +[🔗](https://caddyserver.com/docs/json/admin/#remote/access_control/permissions/methods)[remote/access_control/permissions/methods](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/methods/) +The HTTP methods allowed for the given paths. diff --git a/docs/caddy/docs/docs/json/admin/config.md b/docs/caddy/json/admin/config.md similarity index 56% rename from docs/caddy/docs/docs/json/admin/config.md rename to docs/caddy/json/admin/config.md index 1b2e556..779efcd 100644 --- a/docs/caddy/docs/docs/json/admin/config.md +++ b/docs/caddy/json/admin/config.md @@ -4,18 +4,20 @@ URL Source: https://caddyserver.com/docs/json/admin/config/ Markdown Content: admin/config - JSON Config Structure - Caddy Documentation -=============== -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) Documentation -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) +Search K +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +29,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +42,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,29 +61,54 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [config](https://caddyserver.com/docs/json/admin/config/) + +`{▾ "persist": false, "load": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/config/#docs "Direct link") +----------------------------------------------------------------------------------- -Description ------------ +Options pertaining to configuration management. + +ConfigSettings configures the management of configuration. Field List ---------- +[🔗](https://caddyserver.com/docs/json/admin/config/#persist)[persist](https://caddyserver.com/docs/json/admin/config/persist/) +Whether to keep a copy of the active config on disk. Default is true. Note that "pulled" dynamic configs (using the neighboring "load" module) are not persisted; only configs that are pushed to Caddy get persisted. + +[🔗](https://caddyserver.com/docs/json/admin/config/#load)[load](https://caddyserver.com/docs/json/admin/config/load/) +Loads a configuration to use. This is helpful if your configs are managed elsewhere, and you want Caddy to pull its config dynamically when it starts. The pulled config completely replaces the current one, just like any other config load. It is an error if a pulled config is configured to pull another config. + +EXPERIMENTAL: Subject to change. + +Fulfilled by modules in namespace: **caddy.config_loaders** + +* [http](https://caddyserver.com/docs/json/admin/config/load/http/) +* [storage](https://caddyserver.com/docs/json/admin/config/load/storage/)Non-standard + Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/config/load.md b/docs/caddy/json/admin/config/load.md new file mode 100644 index 0000000..312ac38 --- /dev/null +++ b/docs/caddy/json/admin/config/load.md @@ -0,0 +1,106 @@ +Title: config/load - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/config/load/ + +Markdown Content: +config/load - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [config](https://caddyserver.com/docs/json/admin/config/) › [load](https://caddyserver.com/docs/json/admin/config/load/) + +`{•••}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/config/load/#docs "Direct link") +---------------------------------------------------------------------------------------- + +Loads a configuration to use. This is helpful if your configs are managed elsewhere, and you want Caddy to pull its config dynamically when it starts. The pulled config completely replaces the current one, just like any other config load. It is an error if a pulled config is configured to pull another config. + +EXPERIMENTAL: Subject to change. + +Fulfilled by modules in namespace: **caddy.config_loaders** + +* [http](https://caddyserver.com/docs/json/admin/config/load/http/) +* [storage](https://caddyserver.com/docs/json/admin/config/load/storage/)Non-standard + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/config/load/http.md b/docs/caddy/json/admin/config/load/http.md new file mode 100644 index 0000000..aa704e1 --- /dev/null +++ b/docs/caddy/json/admin/config/load/http.md @@ -0,0 +1,58 @@ +Title: load/http - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/config/load/http/ + +Markdown Content: +``` +{▾ "module": "http", + "method": "", "url": "", "header": { + "": [""] + }, "timeout": 0, "adapter": "", "tls": {▾ "use_server_identity": false, "client_certificate_file": "", "client_certificate_key_file": "", "root_ca_pem_files": [""] }} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#docs "Direct link") +--------------------------------------------------------------------------------------------- + +HTTPLoader can load Caddy configs over HTTP(S). + +If the response is not a JSON config, a config adapter must be specified either in the loader config (`adapter`), or in the Content-Type HTTP header returned in the HTTP response from the server. The Content-Type header is read just like the admin API's `/load` endpoint. If you don't have control over the HTTP server (but can still trust its response), you can override the Content-Type header by setting the `adapter` property in this config. + +[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#module)[module](https://caddyserver.com/docs/json/admin/config/load/http/module/) +This property is **required** because it specifies the module name. + +[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#method)[method](https://caddyserver.com/docs/json/admin/config/load/http/method/) +The method for the request. Default: GET + +[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#url)[url](https://caddyserver.com/docs/json/admin/config/load/http/url/) +The URL of the request. + +HTTP headers to add to the request. + +[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#timeout)[timeout](https://caddyserver.com/docs/json/admin/config/load/http/timeout/) +Maximum time allowed for a complete connection and request. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#adapter)[adapter](https://caddyserver.com/docs/json/admin/config/load/http/adapter/) +The name of the config adapter to use, if any. Only needed if the HTTP response is not a JSON config and if the server's Content-Type header is missing or incorrect. + +[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#tls)[tls](https://caddyserver.com/docs/json/admin/config/load/http/tls/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#tls/use_server_identity)[tls/use_server_identity](https://caddyserver.com/docs/json/admin/config/load/http/tls/use_server_identity/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#tls/client_certificate_file)[tls/client_certificate_file](https://caddyserver.com/docs/json/admin/config/load/http/tls/client_certificate_file/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#tls/client_certificate_key_file)[tls/client_certificate_key_file](https://caddyserver.com/docs/json/admin/config/load/http/tls/client_certificate_key_file/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/admin/config/load/http/#tls/root_ca_pem_files)[tls/root_ca_pem_files](https://caddyserver.com/docs/json/admin/config/load/http/tls/root_ca_pem_files/) +There are no docs for this property. diff --git a/docs/caddy/json/admin/config/load/storage.md b/docs/caddy/json/admin/config/load/storage.md new file mode 100644 index 0000000..dab889a --- /dev/null +++ b/docs/caddy/json/admin/config/load/storage.md @@ -0,0 +1,136 @@ +Title: load/storage - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/config/load/storage/ + +Markdown Content: +load/storage - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [config](https://caddyserver.com/docs/json/admin/config/) › [load](https://caddyserver.com/docs/json/admin/config/load/) › [storage](https://caddyserver.com/docs/json/admin/config/load/storage/) + +``` +{▾ "module": "storage", + "storage": {•••}, "key": "", "adapter": ""} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-storage-loader](https://github.com/mohammed90/caddy-storage-loader)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-storage-loader` + +Description[🔗](https://caddyserver.com/docs/json/admin/config/load/storage/#docs "Direct link") +------------------------------------------------------------------------------------------------ + +StorageLoader is a dynamic configuration loader that reads the configuration from a Caddy storage. If the storage is not configured, the default storage is used, which may be the file-system if none is configured If the `key` is not configured, the default key is `config/caddy.json`. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/json/admin/config/load/storage/#module)[module](https://caddyserver.com/docs/json/admin/config/load/storage/module/) +This property is **required** because it specifies the module name. + +[🔗](https://caddyserver.com/docs/json/admin/config/load/storage/#storage)[storage](https://caddyserver.com/docs/json/admin/config/load/storage/storage/) +StorageRaw is a storage module that defines how/where Caddy stores assets (such as TLS certificates). The default storage module is `caddy.storage.file_system` (the local file system), and the default path [depends on the OS and environment](https://caddyserver.com/docs/conventions#data-directory). + +Fulfilled by modules in namespace: **caddy.storage** + +* [file_system](https://caddyserver.com/docs/json/admin/config/load/storage/storage/file_system/) +* [cloudflare_kv](https://caddyserver.com/docs/json/admin/config/load/storage/storage/cloudflare_kv/)Non-standard +* [consul](https://caddyserver.com/docs/json/admin/config/load/storage/storage/consul/)Non-standard +* [consul](https://caddyserver.com/docs/json/admin/config/load/storage/storage/consul/)Non-standard +* [consul](https://caddyserver.com/docs/json/admin/config/load/storage/storage/consul/)Non-standard +* [dynamodb](https://caddyserver.com/docs/json/admin/config/load/storage/storage/dynamodb/)Non-standard +* [dynamodb](https://caddyserver.com/docs/json/admin/config/load/storage/storage/dynamodb/)Non-standard +* [encrypted](https://caddyserver.com/docs/json/admin/config/load/storage/storage/encrypted/)Non-standard +* [env_redis](https://caddyserver.com/docs/json/admin/config/load/storage/storage/env_redis/)Non-standard +* [gcs](https://caddyserver.com/docs/json/admin/config/load/storage/storage/gcs/)Non-standard +* [mysql](https://caddyserver.com/docs/json/admin/config/load/storage/storage/mysql/)Non-standard +* [nats](https://caddyserver.com/docs/json/admin/config/load/storage/storage/nats/)Non-standard +* [postgres](https://caddyserver.com/docs/json/admin/config/load/storage/storage/postgres/)Non-standard +* [redis](https://caddyserver.com/docs/json/admin/config/load/storage/storage/redis/)Non-standard +* [redis](https://caddyserver.com/docs/json/admin/config/load/storage/storage/redis/)Non-standard +* [redis](https://caddyserver.com/docs/json/admin/config/load/storage/storage/redis/)Non-standard +* [s3](https://caddyserver.com/docs/json/admin/config/load/storage/storage/s3/)Non-standard +* [s3](https://caddyserver.com/docs/json/admin/config/load/storage/storage/s3/)Non-standard +* [vault](https://caddyserver.com/docs/json/admin/config/load/storage/storage/vault/)Non-standard + +[🔗](https://caddyserver.com/docs/json/admin/config/load/storage/#key)[key](https://caddyserver.com/docs/json/admin/config/load/storage/key/) +The storage key at which the configuration is to be found + +[🔗](https://caddyserver.com/docs/json/admin/config/load/storage/#adapter)[adapter](https://caddyserver.com/docs/json/admin/config/load/storage/adapter/) +The adapter to use to convert the storage's contents to Caddy JSON. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/config/persist.md b/docs/caddy/json/admin/config/persist.md new file mode 100644 index 0000000..2515d16 --- /dev/null +++ b/docs/caddy/json/admin/config/persist.md @@ -0,0 +1,99 @@ +Title: config/persist - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/config/persist/ + +Markdown Content: +config/persist - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [config](https://caddyserver.com/docs/json/admin/config/) › [persist](https://caddyserver.com/docs/json/admin/config/persist/) + +`false` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/config/persist/#docs "Direct link") +------------------------------------------------------------------------------------------- + +Whether to keep a copy of the active config on disk. Default is true. Note that "pulled" dynamic configs (using the neighboring "load" module) are not persisted; only configs that are pushed to Caddy get persisted. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/disabled.md b/docs/caddy/json/admin/disabled.md new file mode 100644 index 0000000..4c76fea --- /dev/null +++ b/docs/caddy/json/admin/disabled.md @@ -0,0 +1,101 @@ +Title: admin/disabled - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/disabled/ + +Markdown Content: +admin/disabled - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [disabled](https://caddyserver.com/docs/json/admin/disabled/) + +`false` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/disabled/#docs "Direct link") +------------------------------------------------------------------------------------- + +If true, the admin endpoint will be completely disabled. Note that this makes any runtime changes to the config impossible, since the interface to do so is through the admin endpoint. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fjson%2Fadmin%2Fdisabled%2F&r=&sid=GVMGKAKP&qs=%7B%7D&cid=78586487) diff --git a/docs/caddy/json/admin/enforce_origin.md b/docs/caddy/json/admin/enforce_origin.md new file mode 100644 index 0000000..fb8240c --- /dev/null +++ b/docs/caddy/json/admin/enforce_origin.md @@ -0,0 +1,99 @@ +Title: admin/enforce_origin - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/enforce_origin/ + +Markdown Content: +admin/enforce_origin - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [enforce_origin](https://caddyserver.com/docs/json/admin/enforce_origin/) + +`false` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/enforce_origin/#docs "Direct link") +------------------------------------------------------------------------------------------- + +If true, CORS headers will be emitted, and requests to the API will be rejected if their `Host` and `Origin` headers do not match the expected value(s). Use `origins` to customize which origins/hosts are allowed. If `origins` is not set, the listen address is the only value allowed by default. Enforced only on local (plaintext) endpoint. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/identity.md b/docs/caddy/json/admin/identity.md new file mode 100644 index 0000000..755c69c --- /dev/null +++ b/docs/caddy/json/admin/identity.md @@ -0,0 +1,114 @@ +Title: admin/identity - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/identity/ + +Markdown Content: +admin/identity - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [identity](https://caddyserver.com/docs/json/admin/identity/) + +`{▾ "identifiers": [""], "issuers": [{•••}]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/identity/#docs "Direct link") +------------------------------------------------------------------------------------- + +Options that establish this server's identity. Identity refers to credentials which can be used to uniquely identify and authenticate this server instance. This is required if remote administration is enabled (but does not require remote administration to be enabled). Default: no identity management. + +IdentityConfig configures management of this server's identity. An identity consists of credentials that uniquely verify this instance; for example, TLS certificates (public + private key pairs). + +Field List +---------- + +[🔗](https://caddyserver.com/docs/json/admin/identity/#identifiers)[identifiers](https://caddyserver.com/docs/json/admin/identity/identifiers/) +List of names or IP addresses which refer to this server. Certificates will be obtained for these identifiers so secure TLS connections can be made using them. + +[🔗](https://caddyserver.com/docs/json/admin/identity/#issuers)[issuers](https://caddyserver.com/docs/json/admin/identity/issuers/) +Issuers that can provide this admin endpoint its identity certificate(s). Default: ACME issuers configured for ZeroSSL and Let's Encrypt. Be sure to change this if you require credentials for private identifiers. + +Fulfilled by modules in namespace: **tls.issuance** + +* [acme](https://caddyserver.com/docs/json/admin/identity/issuers/acme/) +* [internal](https://caddyserver.com/docs/json/admin/identity/issuers/internal/) +* [zerossl](https://caddyserver.com/docs/json/admin/identity/issuers/zerossl/) +* [certsrv](https://caddyserver.com/docs/json/admin/identity/issuers/certsrv/)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/identity/identifiers.md b/docs/caddy/json/admin/identity/identifiers.md new file mode 100644 index 0000000..68767ea --- /dev/null +++ b/docs/caddy/json/admin/identity/identifiers.md @@ -0,0 +1,99 @@ +Title: identity/identifiers - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/identity/identifiers/ + +Markdown Content: +identity/identifiers - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [identity](https://caddyserver.com/docs/json/admin/identity/) › [identifiers](https://caddyserver.com/docs/json/admin/identity/identifiers/) + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/identity/identifiers/#docs "Direct link") +------------------------------------------------------------------------------------------------- + +List of names or IP addresses which refer to this server. Certificates will be obtained for these identifiers so secure TLS connections can be made using them. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/identity/issuers.md b/docs/caddy/json/admin/identity/issuers.md new file mode 100644 index 0000000..2f6850c --- /dev/null +++ b/docs/caddy/json/admin/identity/issuers.md @@ -0,0 +1,108 @@ +Title: identity/issuers - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/identity/issuers/ + +Markdown Content: +identity/issuers - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [identity](https://caddyserver.com/docs/json/admin/identity/) › [issuers](https://caddyserver.com/docs/json/admin/identity/issuers/) + +`[{•••}]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/identity/issuers/#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Issuers that can provide this admin endpoint its identity certificate(s). Default: ACME issuers configured for ZeroSSL and Let's Encrypt. Be sure to change this if you require credentials for private identifiers. + +Fulfilled by modules in namespace: **tls.issuance** + +* [acme](https://caddyserver.com/docs/json/admin/identity/issuers/acme/) +* [internal](https://caddyserver.com/docs/json/admin/identity/issuers/internal/) +* [zerossl](https://caddyserver.com/docs/json/admin/identity/issuers/zerossl/) +* [certsrv](https://caddyserver.com/docs/json/admin/identity/issuers/certsrv/)Non-standard + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fjson%2Fadmin%2Fidentity%2Fissuers%2F&r=&sid=GVMGKAKP&qs=%7B%7D&cid=55251450) diff --git a/docs/caddy/json/admin/listen.md b/docs/caddy/json/admin/listen.md new file mode 100644 index 0000000..f19568a --- /dev/null +++ b/docs/caddy/json/admin/listen.md @@ -0,0 +1,99 @@ +Title: admin/listen - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/listen/ + +Markdown Content: +admin/listen - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [listen](https://caddyserver.com/docs/json/admin/listen/) + +`""` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/listen/#docs "Direct link") +----------------------------------------------------------------------------------- + +The address to which the admin endpoint's listener should bind itself. Can be any single network address that can be parsed by Caddy. Default: localhost:2019 + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/origins.md b/docs/caddy/json/admin/origins.md new file mode 100644 index 0000000..e776c98 --- /dev/null +++ b/docs/caddy/json/admin/origins.md @@ -0,0 +1,99 @@ +Title: admin/origins - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/origins/ + +Markdown Content: +admin/origins - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [origins](https://caddyserver.com/docs/json/admin/origins/) + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/origins/#docs "Direct link") +------------------------------------------------------------------------------------ + +The list of allowed origins/hosts for API requests. Only needed if accessing the admin endpoint from a host different from the socket's network interface or if `enforce_origin` is true. If not set, the listener address will be the default value. If set but empty, no origins will be allowed. Enforced only on local (plaintext) endpoint. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/remote.md b/docs/caddy/json/admin/remote.md new file mode 100644 index 0000000..49c82e2 --- /dev/null +++ b/docs/caddy/json/admin/remote.md @@ -0,0 +1,47 @@ +Title: admin/remote - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/remote/ + +Markdown Content: +`{▾ "listen": "", "access_control": [{▾ "public_keys": [""], "permissions": [{▾ "paths": [""], "methods": [""] }] }]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/remote/#docs "Direct link") +----------------------------------------------------------------------------------- + +Options pertaining to remote administration. By default, remote administration is disabled. If enabled, identity management must also be configured, as that is how the endpoint is secured. See the neighboring "identity" object. + +EXPERIMENTAL: This feature is subject to change. + +RemoteAdmin enables and configures remote administration. If enabled, a secure listener enforcing mutual TLS authentication will be started on a different port from the standard plaintext admin server. + +This endpoint is secured using identity management, which must be configured separately (because identity management does not depend on remote administration). See the admin/identity config struct. + +EXPERIMENTAL: Subject to change. + +[🔗](https://caddyserver.com/docs/json/admin/remote/#listen)[listen](https://caddyserver.com/docs/json/admin/remote/listen/) +The address on which to start the secure listener. Default: :2021 + +[🔗](https://caddyserver.com/docs/json/admin/remote/#access_control)[access_control](https://caddyserver.com/docs/json/admin/remote/access_control/) +List of access controls for this secure admin endpoint. This configures TLS mutual authentication (i.e. authorized client certificates), but also application-layer permissions like which paths and methods each identity is authorized for. + +AdminAccess specifies what permissions an identity or group of identities are granted. + +[🔗](https://caddyserver.com/docs/json/admin/remote/#access_control/public_keys)[access_control/public_keys](https://caddyserver.com/docs/json/admin/remote/access_control/public_keys/) +Base64-encoded DER certificates containing public keys to accept. (The contents of PEM certificate blocks are base64-encoded DER.) Any of these public keys can appear in any part of a verified chain. + +[🔗](https://caddyserver.com/docs/json/admin/remote/#access_control/permissions)[access_control/permissions](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/) +Limits what the associated identities are allowed to do. If unspecified, all permissions are granted. + +AdminPermissions specifies what kinds of requests are allowed to be made to the admin endpoint. + +[🔗](https://caddyserver.com/docs/json/admin/remote/#access_control/permissions/paths)[access_control/permissions/paths](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/paths/) +The API paths allowed. Paths are simple prefix matches. Any subpath of the specified paths will be allowed. + +[🔗](https://caddyserver.com/docs/json/admin/remote/#access_control/permissions/methods)[access_control/permissions/methods](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/methods/) +The HTTP methods allowed for the given paths. diff --git a/docs/caddy/json/admin/remote/access_control.md b/docs/caddy/json/admin/remote/access_control.md new file mode 100644 index 0000000..1b283d4 --- /dev/null +++ b/docs/caddy/json/admin/remote/access_control.md @@ -0,0 +1,31 @@ +Title: remote/access_control - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/remote/access_control/ + +Markdown Content: +`[{▾ "public_keys": [""], "permissions": [{▾ "paths": [""], "methods": [""] }]}]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +List of access controls for this secure admin endpoint. This configures TLS mutual authentication (i.e. authorized client certificates), but also application-layer permissions like which paths and methods each identity is authorized for. + +[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/#public_keys)[public_keys](https://caddyserver.com/docs/json/admin/remote/access_control/public_keys/) +Base64-encoded DER certificates containing public keys to accept. (The contents of PEM certificate blocks are base64-encoded DER.) Any of these public keys can appear in any part of a verified chain. + +[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/#permissions)[permissions](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/) +Limits what the associated identities are allowed to do. If unspecified, all permissions are granted. + +AdminPermissions specifies what kinds of requests are allowed to be made to the admin endpoint. + +[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/#permissions/paths)[permissions/paths](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/paths/) +The API paths allowed. Paths are simple prefix matches. Any subpath of the specified paths will be allowed. + +[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/#permissions/methods)[permissions/methods](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/methods/) +The HTTP methods allowed for the given paths. diff --git a/docs/caddy/docs/docs/json/apps/http/servers/routes/match.md b/docs/caddy/json/admin/remote/access_control/permissions.md similarity index 56% rename from docs/caddy/docs/docs/json/apps/http/servers/routes/match.md rename to docs/caddy/json/admin/remote/access_control/permissions.md index 395534f..af09e5b 100644 --- a/docs/caddy/docs/docs/json/apps/http/servers/routes/match.md +++ b/docs/caddy/json/admin/remote/access_control/permissions.md @@ -1,21 +1,23 @@ -Title: apps/http/.../routes/match - JSON Config Structure +Title: access_control/permissions - JSON Config Structure -URL Source: https://caddyserver.com/docs/json/apps/http/servers/routes/match/ +URL Source: https://caddyserver.com/docs/json/admin/remote/access_control/permissions/ Markdown Content: -apps/http/.../routes/match - JSON Config Structure - Caddy Documentation -=============== +access_control/permissions - JSON Config Structure - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) Documentation -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) +Search K +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +29,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +42,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,29 +61,45 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [remote](https://caddyserver.com/docs/json/admin/remote/) › [access_control](https://caddyserver.com/docs/json/admin/remote/access_control/) › [permissions](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/) + +`[{▾ "paths": [""], "methods": [""]}]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** -Description ------------ +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +Limits what the associated identities are allowed to do. If unspecified, all permissions are granted. Field List ---------- +[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/#paths)[paths](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/paths/) +The API paths allowed. Paths are simple prefix matches. Any subpath of the specified paths will be allowed. + +[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/#methods)[methods](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/methods/) +The HTTP methods allowed for the given paths. + Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/remote/access_control/permissions/methods.md b/docs/caddy/json/admin/remote/access_control/permissions/methods.md new file mode 100644 index 0000000..620ac14 --- /dev/null +++ b/docs/caddy/json/admin/remote/access_control/permissions/methods.md @@ -0,0 +1,99 @@ +Title: admin/remote/.../permissions/methods - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/remote/access_control/permissions/methods/ + +Markdown Content: +admin/remote/.../permissions/methods - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [remote](https://caddyserver.com/docs/json/admin/remote/) › [access_control](https://caddyserver.com/docs/json/admin/remote/access_control/) › [permissions](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/) › [methods](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/methods/) + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/methods/#docs "Direct link") +---------------------------------------------------------------------------------------------------------------------- + +The HTTP methods allowed for the given paths. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/admin/remote/access_control/permissions/paths.md b/docs/caddy/json/admin/remote/access_control/permissions/paths.md new file mode 100644 index 0000000..9efe4f4 --- /dev/null +++ b/docs/caddy/json/admin/remote/access_control/permissions/paths.md @@ -0,0 +1,101 @@ +Title: admin/remote/.../permissions/paths - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/remote/access_control/permissions/paths/ + +Markdown Content: +admin/remote/.../permissions/paths - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [remote](https://caddyserver.com/docs/json/admin/remote/) › [access_control](https://caddyserver.com/docs/json/admin/remote/access_control/) › [permissions](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/) › [paths](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/paths/) + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/permissions/paths/#docs "Direct link") +-------------------------------------------------------------------------------------------------------------------- + +The API paths allowed. Paths are simple prefix matches. Any subpath of the specified paths will be allowed. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fjson%2Fadmin%2Fremote%2Faccess_control%2Fpermissions%2Fpaths%2F&r=&sid=GVMGKAKP&qs=%7B%7D&cid=16126348) diff --git a/docs/caddy/docs/docs/json/apps/http/servers/listener_wrappers.md b/docs/caddy/json/admin/remote/access_control/public_keys.md similarity index 59% rename from docs/caddy/docs/docs/json/apps/http/servers/listener_wrappers.md rename to docs/caddy/json/admin/remote/access_control/public_keys.md index be6e121..5d0583b 100644 --- a/docs/caddy/docs/docs/json/apps/http/servers/listener_wrappers.md +++ b/docs/caddy/json/admin/remote/access_control/public_keys.md @@ -1,21 +1,23 @@ -Title: servers/listener_wrappers - JSON Config Structure +Title: access_control/public_keys - JSON Config Structure -URL Source: https://caddyserver.com/docs/json/apps/http/servers/listener_wrappers/ +URL Source: https://caddyserver.com/docs/json/admin/remote/access_control/public_keys/ Markdown Content: -servers/listener\_wrappers - JSON Config Structure - Caddy Documentation -=============== +access_control/public_keys - JSON Config Structure - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) Documentation -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) +Search K +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +29,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +42,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,18 +61,25 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [remote](https://caddyserver.com/docs/json/admin/remote/) › [access_control](https://caddyserver.com/docs/json/admin/remote/access_control/) › [public_keys](https://caddyserver.com/docs/json/admin/remote/access_control/public_keys/) + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. -Description ------------ +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/remote/access_control/public_keys/#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +Base64-encoded DER certificates containing public keys to accept. (The contents of PEM certificate blocks are base64-encoded DER.) Any of these public keys can appear in any part of a verified chain. Field List ---------- @@ -77,9 +88,14 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fjson%2Fadmin%2Fremote%2Faccess_control%2Fpublic_keys%2F&r=&sid=GVMGKAKP&qs=%7B%7D&cid=10271737) diff --git a/docs/caddy/json/admin/remote/listen.md b/docs/caddy/json/admin/remote/listen.md new file mode 100644 index 0000000..d4a518c --- /dev/null +++ b/docs/caddy/json/admin/remote/listen.md @@ -0,0 +1,99 @@ +Title: remote/listen - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/admin/remote/listen/ + +Markdown Content: +remote/listen - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [admin](https://caddyserver.com/docs/json/admin/) › [remote](https://caddyserver.com/docs/json/admin/remote/) › [listen](https://caddyserver.com/docs/json/admin/remote/listen/) + +`""` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/admin/remote/listen/#docs "Direct link") +------------------------------------------------------------------------------------------ + +The address on which to start the secure listener. Default: :2021 + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/apps.md b/docs/caddy/json/apps.md new file mode 100644 index 0000000..4dec526 --- /dev/null +++ b/docs/caddy/json/apps.md @@ -0,0 +1,43 @@ +Title: apps - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/ + +Markdown Content: +`{•••}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/apps/#docs "Direct link") +--------------------------------------------------------------------------- + +AppsRaw are the apps that Caddy will load and run. The app module name is the key, and the app's config is the associated value. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: + +* [events](https://caddyserver.com/docs/json/apps/events/) +* [http](https://caddyserver.com/docs/json/apps/http/) +* [pki](https://caddyserver.com/docs/json/apps/pki/) +* [tls](https://caddyserver.com/docs/json/apps/tls/) +* [crowdsec](https://caddyserver.com/docs/json/apps/crowdsec/)Non-standard +* [dns01proxy](https://caddyserver.com/docs/json/apps/dns01proxy/)Non-standard +* [dynamic_dns](https://caddyserver.com/docs/json/apps/dynamic_dns/)Non-standard +* [exec](https://caddyserver.com/docs/json/apps/exec/)Non-standard +* [frankenphp](https://caddyserver.com/docs/json/apps/frankenphp/)Non-standard +* [geoip2](https://caddyserver.com/docs/json/apps/geoip2/)Non-standard +* [layer4](https://caddyserver.com/docs/json/apps/layer4/)Non-standard +* [pocketbase](https://caddyserver.com/docs/json/apps/pocketbase/)Non-standard +* [profefe](https://caddyserver.com/docs/json/apps/profefe/)Non-standard +* [profiling](https://caddyserver.com/docs/json/apps/profiling/)Non-standard +* [pyroscope](https://caddyserver.com/docs/json/apps/pyroscope/)Non-standard +* [reconnect](https://caddyserver.com/docs/json/apps/reconnect/)Non-standard +* [scion](https://caddyserver.com/docs/json/apps/scion/)Non-standard +* [security](https://caddyserver.com/docs/json/apps/security/)Non-standard +* [ssh](https://caddyserver.com/docs/json/apps/ssh/)Non-standard +* [ssh](https://caddyserver.com/docs/json/apps/ssh/)Non-standard +* [supervisor](https://caddyserver.com/docs/json/apps/supervisor/)Non-standard diff --git a/docs/caddy/json/apps/crowdsec.md b/docs/caddy/json/apps/crowdsec.md new file mode 100644 index 0000000..8e58927 --- /dev/null +++ b/docs/caddy/json/apps/crowdsec.md @@ -0,0 +1,32 @@ +Title: apps/crowdsec - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/crowdsec/ + +Markdown Content: +`{▾ "api_key": "", "api_url": "", "ticker_interval": "", "enable_streaming": false, "enable_hard_fails": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/hslatman/caddy-crowdsec-bouncer](https://github.com/hslatman/caddy-crowdsec-bouncer)** + +**Custom builds:**`xcaddy build --with github.com/hslatman/caddy-crowdsec-bouncer/crowdsec` + +Description[🔗](https://caddyserver.com/docs/json/apps/crowdsec/#docs "Direct link") +------------------------------------------------------------------------------------ + +CrowdSec is a Caddy App that functions as a CrowdSec bouncer. It acts as a CrowdSec API client as well as a local cache for CrowdSec decisions, which can be used by the HTTP handler and Layer4 matcher to decide if a request or connection is allowed or not. + +[🔗](https://caddyserver.com/docs/json/apps/crowdsec/#api_key)[api_key](https://caddyserver.com/docs/json/apps/crowdsec/api_key/) +APIKey for the CrowdSec Local API + +[🔗](https://caddyserver.com/docs/json/apps/crowdsec/#api_url)[api_url](https://caddyserver.com/docs/json/apps/crowdsec/api_url/) +APIUrl for the CrowdSec Local API. Defaults to [http://127.0.0.1:8080/](http://127.0.0.1:8080/) + +[🔗](https://caddyserver.com/docs/json/apps/crowdsec/#ticker_interval)[ticker_interval](https://caddyserver.com/docs/json/apps/crowdsec/ticker_interval/) +TickerInterval is the interval the StreamBouncer uses for querying the CrowdSec Local API. Defaults to "10s". + +[🔗](https://caddyserver.com/docs/json/apps/crowdsec/#enable_streaming)[enable_streaming](https://caddyserver.com/docs/json/apps/crowdsec/enable_streaming/) +EnableStreaming indicates whether the StreamBouncer should be used. If it's false, the LiveBouncer is used. The StreamBouncer keeps CrowdSec decisions in memory, resulting in quicker lookups. The LiveBouncer will perform an API call to your CrowdSec instance. Defaults to true. + +[🔗](https://caddyserver.com/docs/json/apps/crowdsec/#enable_hard_fails)[enable_hard_fails](https://caddyserver.com/docs/json/apps/crowdsec/enable_hard_fails/) +EnableHardFails indicates whether calls to the CrowdSec API should result in hard failures, resulting in Caddy quitting vs. Caddy continuing operation (with a chance of not performing) validations. Defaults to false. diff --git a/docs/caddy/json/apps/dns01proxy.md b/docs/caddy/json/apps/dns01proxy.md new file mode 100644 index 0000000..916c5df --- /dev/null +++ b/docs/caddy/json/apps/dns01proxy.md @@ -0,0 +1,133 @@ +Title: apps/dns01proxy - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/dns01proxy/ + +Markdown Content: +`{▾ "dns": {▾ "provider": {•••}, "ttl": 0, "resolvers": [""] }, "accounts": [{▾ "user_id": "", "allow_domains": [""], "deny_domains": [""], "password": "" }], "hostnames": [""], "listen": [""], "trusted_proxies": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/liujed/caddy-dns01proxy](https://github.com/liujed/caddy-dns01proxy)** + +**Custom builds:**`xcaddy build --with github.com/liujed/caddy-dns01proxy` + +Description[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#docs "Direct link") +-------------------------------------------------------------------------------------- + +A proxy server for ACME DNS-01 challenges. Designed to work with acme.sh's `acmeproxy`, lego's `httpreq`, and Caddy's `acmeproxy` DNS providers. + +This is a Caddy application module. + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#dns)[dns](https://caddyserver.com/docs/json/apps/dns01proxy/dns/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#dns/provider)[dns/provider](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/) +The DNS provider for publishing DNS-01 responses. + +Fulfilled by modules in namespace: **dns.providers** + +* [acmedns](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/acmedns/)Non-standard +* [acmeproxy](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/acmeproxy/)Non-standard +* [alidns](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/alidns/)Non-standard +* [azure](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/azure/)Non-standard +* [bunny](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/bunny/)Non-standard +* [civo](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/civo/)Non-standard +* [cloudflare](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/cloudflare/)Non-standard +* [cloudns](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/cloudns/)Non-standard +* [cloudns](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/cloudns/)Non-standard +* [ddnss](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/ddnss/)Non-standard +* [desec](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/desec/)Non-standard +* [digitalocean](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/digitalocean/)Non-standard +* [dinahosting](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/dinahosting/)Non-standard +* [directadmin](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/directadmin/)Non-standard +* [dnsexit](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/dnsexit/)Non-standard +* [dnsimple](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/dnsimple/)Non-standard +* [dnsmadeeasy](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/dnsmadeeasy/)Non-standard +* [dnspod](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/dnspod/)Non-standard +* [domainnameshop](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/domainnameshop/)Non-standard +* [dreamhost](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/dreamhost/)Non-standard +* [duckdns](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/duckdns/)Non-standard +* [dynu](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/dynu/)Non-standard +* [easydns](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/easydns/)Non-standard +* [edgeone](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/edgeone/)Non-standard +* [gandi](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/gandi/)Non-standard +* [glesys](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/glesys/)Non-standard +* [godaddy](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/godaddy/)Non-standard +* [godaddy](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/godaddy/)Non-standard +* [google_domains](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/google_domains/)Non-standard +* [googleclouddns](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/googleclouddns/)Non-standard +* [he](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/he/)Non-standard +* [hetzner](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/hetzner/)Non-standard +* [hexonet](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/hexonet/)Non-standard +* [hosttech](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/hosttech/)Non-standard +* [huaweicloud](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/huaweicloud/)Non-standard +* [immosquare](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/immosquare/)Non-standard +* [infomaniak](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/infomaniak/)Non-standard +* [inwx](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/inwx/)Non-standard +* [ionos](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/ionos/)Non-standard +* [katapult](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/katapult/)Non-standard +* [leaseweb](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/leaseweb/)Non-standard +* [lego_deprecated](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/lego_deprecated/)Non-standard +* [linode](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/linode/)Non-standard +* [linode](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/linode/)Non-standard +* [loopia](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/loopia/)Non-standard +* [mailinabox](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/mailinabox/)Non-standard +* [metaname](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/metaname/)Non-standard +* [namecheap](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/namecheap/)Non-standard +* [namedotcom](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/namedotcom/)Non-standard +* [namesilo](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/namesilo/)Non-standard +* [nanelo](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/nanelo/)Non-standard +* [neoserv](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/neoserv/)Non-standard +* [netcup](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/netcup/)Non-standard +* [netlify](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/netlify/)Non-standard +* [njalla](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/njalla/)Non-standard +* [openstack-designate](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/openstack-designate/)Non-standard +* [ovh](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/ovh/)Non-standard +* [porkbun](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/porkbun/)Non-standard +* [powerdns](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/powerdns/)Non-standard +* [rfc2136](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/rfc2136/)Non-standard +* [route53](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/route53/)Non-standard +* [route53](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/route53/)Non-standard +* [scaleway](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/scaleway/)Non-standard +* [selectel](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/selectel/)Non-standard +* [spaceship](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/spaceship/)Non-standard +* [tencentcloud](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/tencentcloud/)Non-standard +* [transip](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/transip/)Non-standard +* [vercel](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/vercel/)Non-standard +* [vultr](https://caddyserver.com/docs/json/apps/dns01proxy/dns/provider/vultr/)Non-standard + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#dns/ttl)[dns/ttl](https://caddyserver.com/docs/json/apps/dns01proxy/dns/ttl/) +The TTL to use in DNS TXT records when answering challenges. Optional. Not usually needed. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#dns/resolvers)[dns/resolvers](https://caddyserver.com/docs/json/apps/dns01proxy/dns/resolvers/) +Custom DNS resolvers to prefer over system or built-in defaults. Set this to a public resolver if you are using split-horizon DNS. + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#accounts)[accounts](https://caddyserver.com/docs/json/apps/dns01proxy/accounts/) +Configures HTTP basic authentication and the domains for which each user can get TLS certificates. + +(During provisioning, this is used to fill in [Authentication] and [ClientRegistry].) + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#accounts/user_id)[accounts/user_id](https://caddyserver.com/docs/json/apps/dns01proxy/accounts/user_id/) +Identifies the client to which this policy applies. + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#accounts/allow_domains)[accounts/allow_domains](https://caddyserver.com/docs/json/apps/dns01proxy/accounts/allow_domains/) +Determines the domains for which the user can get TLS certificates. This largely follows Smallstep's domain name rules: [https://smallstep.com/docs/step-ca/policies/#domain-names](https://smallstep.com/docs/step-ca/policies/#domain-names) + +Due to a limitation in ACME and DNS-01, allowing a domain alsow allows wildcard certificates for that domain. + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#accounts/deny_domains)[accounts/deny_domains](https://caddyserver.com/docs/json/apps/dns01proxy/accounts/deny_domains/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#accounts/password)[accounts/password](https://caddyserver.com/docs/json/apps/dns01proxy/accounts/password/) +The user's password, hashed using `caddy hash-password`. Optional. If omitted, then clients must be authenticated by an `http.handlers.authentication` instance earlier in the handler chain. + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#hostnames)[hostnames](https://caddyserver.com/docs/json/apps/dns01proxy/hostnames/) +The server's hostnames. Used for obtaining TLS certificates. + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#listen)[listen](https://caddyserver.com/docs/json/apps/dns01proxy/listen/) +The sockets on which to listen. For example, "127.0.0.1:9095" or ":443". + +[🔗](https://caddyserver.com/docs/json/apps/dns01proxy/#trusted_proxies)[trusted_proxies](https://caddyserver.com/docs/json/apps/dns01proxy/trusted_proxies/) +Configures the set of trusted proxies, for accurate logging of client IP addresses. diff --git a/docs/caddy/json/apps/dynamic_dns.md b/docs/caddy/json/apps/dynamic_dns.md new file mode 100644 index 0000000..4c56286 --- /dev/null +++ b/docs/caddy/json/apps/dynamic_dns.md @@ -0,0 +1,134 @@ +Title: apps/dynamic_dns - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/dynamic_dns/ + +Markdown Content: +``` +{▾ "ip_sources": [{•••}], "dns_provider": {•••}, "domains": { + "": [""] + }, "dynamic_domains": false, "versions": {▾ "ipv4": false, "ipv6": false }, "check_interval": 0, "ttl": 0} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-dynamicdns](https://github.com/mholt/caddy-dynamicdns)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-dynamicdns` + +Description[🔗](https://caddyserver.com/docs/json/apps/dynamic_dns/#docs "Direct link") +--------------------------------------------------------------------------------------- + +App is a Caddy app that keeps your DNS records updated with the public IP address of your instance. It updates A and AAAA records. + +[🔗](https://caddyserver.com/docs/json/apps/dynamic_dns/#ip_sources)[ip_sources](https://caddyserver.com/docs/json/apps/dynamic_dns/ip_sources/) +The sources from which to get the server's public IP address. Multiple sources can be specified for redundancy. Default: simple_http + +Fulfilled by modules in namespace: **dynamic_dns.ip_sources** + +* [command](https://caddyserver.com/docs/json/apps/dynamic_dns/ip_sources/command/)Non-standard +* [simple_http](https://caddyserver.com/docs/json/apps/dynamic_dns/ip_sources/simple_http/)Non-standard +* [upnp](https://caddyserver.com/docs/json/apps/dynamic_dns/ip_sources/upnp/)Non-standard + +[🔗](https://caddyserver.com/docs/json/apps/dynamic_dns/#dns_provider)[dns_provider](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/) +The configuration for the DNS provider with which the DNS records will be updated. + +Fulfilled by modules in namespace: **dns.providers** + +* [acmedns](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/acmedns/)Non-standard +* [acmeproxy](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/acmeproxy/)Non-standard +* [alidns](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/alidns/)Non-standard +* [azure](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/azure/)Non-standard +* [bunny](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/bunny/)Non-standard +* [civo](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/civo/)Non-standard +* [cloudflare](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/cloudflare/)Non-standard +* [cloudns](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/cloudns/)Non-standard +* [cloudns](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/cloudns/)Non-standard +* [ddnss](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/ddnss/)Non-standard +* [desec](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/desec/)Non-standard +* [digitalocean](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/digitalocean/)Non-standard +* [dinahosting](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/dinahosting/)Non-standard +* [directadmin](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/directadmin/)Non-standard +* [dnsexit](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/dnsexit/)Non-standard +* [dnsimple](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/dnsimple/)Non-standard +* [dnsmadeeasy](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/dnsmadeeasy/)Non-standard +* [dnspod](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/dnspod/)Non-standard +* [domainnameshop](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/domainnameshop/)Non-standard +* [dreamhost](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/dreamhost/)Non-standard +* [duckdns](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/duckdns/)Non-standard +* [dynu](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/dynu/)Non-standard +* [easydns](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/easydns/)Non-standard +* [edgeone](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/edgeone/)Non-standard +* [gandi](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/gandi/)Non-standard +* [glesys](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/glesys/)Non-standard +* [godaddy](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/godaddy/)Non-standard +* [godaddy](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/godaddy/)Non-standard +* [google_domains](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/google_domains/)Non-standard +* [googleclouddns](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/googleclouddns/)Non-standard +* [he](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/he/)Non-standard +* [hetzner](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/hetzner/)Non-standard +* [hexonet](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/hexonet/)Non-standard +* [hosttech](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/hosttech/)Non-standard +* [huaweicloud](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/huaweicloud/)Non-standard +* [immosquare](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/immosquare/)Non-standard +* [infomaniak](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/infomaniak/)Non-standard +* [inwx](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/inwx/)Non-standard +* [ionos](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/ionos/)Non-standard +* [katapult](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/katapult/)Non-standard +* [leaseweb](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/leaseweb/)Non-standard +* [lego_deprecated](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/lego_deprecated/)Non-standard +* [linode](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/linode/)Non-standard +* [linode](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/linode/)Non-standard +* [loopia](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/loopia/)Non-standard +* [mailinabox](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/mailinabox/)Non-standard +* [metaname](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/metaname/)Non-standard +* [namecheap](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/namecheap/)Non-standard +* [namedotcom](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/namedotcom/)Non-standard +* [namesilo](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/namesilo/)Non-standard +* [nanelo](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/nanelo/)Non-standard +* [neoserv](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/neoserv/)Non-standard +* [netcup](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/netcup/)Non-standard +* [netlify](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/netlify/)Non-standard +* [njalla](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/njalla/)Non-standard +* [openstack-designate](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/openstack-designate/)Non-standard +* [ovh](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/ovh/)Non-standard +* [porkbun](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/porkbun/)Non-standard +* [powerdns](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/powerdns/)Non-standard +* [rfc2136](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/rfc2136/)Non-standard +* [route53](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/route53/)Non-standard +* [route53](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/route53/)Non-standard +* [scaleway](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/scaleway/)Non-standard +* [selectel](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/selectel/)Non-standard +* [spaceship](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/spaceship/)Non-standard +* [tencentcloud](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/tencentcloud/)Non-standard +* [transip](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/transip/)Non-standard +* [vercel](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/vercel/)Non-standard +* [vultr](https://caddyserver.com/docs/json/apps/dynamic_dns/dns_provider/vultr/)Non-standard + +[🔗](https://caddyserver.com/docs/json/apps/dynamic_dns/#domains)[domains](https://caddyserver.com/docs/json/apps/dynamic_dns/domains/) +The record names, keyed by DNS zone, for which to update the A/AAAA records. Record names are relative to the zone. The zone is usually your registered domain name. To refer to the zone itself, use the record name of "@". + +For example, assuming your zone is example.com, and you want to update A/AAAA records for "example.com" and "[www.example.com"](http://www.example.com"/) so that they resolve to this Caddy instance, configure like so: `"example.com": ["@", "www"]` + +[🔗](https://caddyserver.com/docs/json/apps/dynamic_dns/#dynamic_domains)[dynamic_domains](https://caddyserver.com/docs/json/apps/dynamic_dns/dynamic_domains/) +If enabled, the "http" app's config will be scanned to assemble the list of domains for which to enable dynamic DNS updates. + +[🔗](https://caddyserver.com/docs/json/apps/dynamic_dns/#versions)[versions](https://caddyserver.com/docs/json/apps/dynamic_dns/versions/) +The IP versions to enable. By default, both "ipv4" and "ipv6" will be enabled. To disable IPv6, specify {"ipv6": false}. + +IPVersions is the IP versions to enable for dynamic DNS. Versions are enabled if true or nil, set to false to disable. + +[🔗](https://caddyserver.com/docs/json/apps/dynamic_dns/#versions/ipv4)[versions/ipv4](https://caddyserver.com/docs/json/apps/dynamic_dns/versions/ipv4/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/dynamic_dns/#versions/ipv6)[versions/ipv6](https://caddyserver.com/docs/json/apps/dynamic_dns/versions/ipv6/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/dynamic_dns/#check_interval)[check_interval](https://caddyserver.com/docs/json/apps/dynamic_dns/check_interval/) +How frequently to check the public IP address. Default: 30m + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/dynamic_dns/#ttl)[ttl](https://caddyserver.com/docs/json/apps/dynamic_dns/ttl/) +The TTL to set on DNS records. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/json/apps/events.md b/docs/caddy/json/apps/events.md new file mode 100644 index 0000000..73d5ba4 --- /dev/null +++ b/docs/caddy/json/apps/events.md @@ -0,0 +1,63 @@ +Title: apps/events - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/events/ + +Markdown Content: +`{▾ "subscriptions": [{▾ "events": [""], "modules": [""], "handlers": [{•••}] }]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/apps/events/#docs "Direct link") +---------------------------------------------------------------------------------- + +App implements a global eventing system within Caddy. Modules can emit and subscribe to events, providing hooks into deep parts of the code base that aren't otherwise accessible. Events provide information about what and when things are happening, and this facility allows handlers to take action when events occur, add information to the event's metadata, and even control program flow in some cases. + +Events are propagated in a DOM-like fashion. An event emitted from module `a.b.c` (the "origin") will first invoke handlers listening to `a.b.c`, then `a.b`, then `a`, then those listening regardless of origin. If a handler returns the special error Aborted, then propagation immediately stops and the event is marked as aborted. Emitters may optionally choose to adjust program flow based on an abort. + +Modules can subscribe to events by origin and/or name. A handler is invoked only if it is subscribed to the event by name and origin. Subscriptions should be registered during the provisioning phase, before apps are started. + +Event handlers are fired synchronously as part of the regular flow of the program. This allows event handlers to control the flow of the program if the origin permits it and also allows handlers to convey new information back into the origin module before it continues. In essence, event handlers are similar to HTTP middleware handlers. + +Event bindings/subscribers are unordered; i.e. event handlers are invoked in an arbitrary order. Event handlers should not rely on the logic of other handlers to succeed. + +The entirety of this app module is EXPERIMENTAL and subject to change. Pay attention to release notes. + +[🔗](https://caddyserver.com/docs/json/apps/events/#subscriptions)[subscriptions](https://caddyserver.com/docs/json/apps/events/subscriptions/) +Subscriptions bind handlers to one or more events either globally or scoped to specific modules or module namespaces. + +Subscription represents binding of one or more handlers to one or more events. + +[🔗](https://caddyserver.com/docs/json/apps/events/#subscriptions/events)[subscriptions/events](https://caddyserver.com/docs/json/apps/events/subscriptions/events/) +The name(s) of the event(s) to bind to. Default: all events. + +[🔗](https://caddyserver.com/docs/json/apps/events/#subscriptions/modules)[subscriptions/modules](https://caddyserver.com/docs/json/apps/events/subscriptions/modules/) +The ID or namespace of the module(s) from which events originate to listen to for events. Default: all modules. + +Events propagate up, so events emitted by module "a.b.c" will also trigger the event for "a.b" and "a". Thus, to receive all events from "a.b.c" and "a.b.d", for example, one can subscribe to either "a.b" or all of "a" entirely. + +ModuleID is a string that uniquely identifies a Caddy module. A module ID is lightly structured. It consists of dot-separated labels which form a simple hierarchy from left to right. The last label is the module name, and the labels before that constitute the namespace (or scope). + +Thus, a module ID has the form: . + +An ID with no dot has the empty namespace, which is appropriate for app modules (these are "top-level" modules that Caddy core loads and runs). + +Module IDs should be lowercase and use underscores (_) instead of spaces. + +Examples of valid IDs: + +* http +* http.handlers.file_server +* caddy.logging.encoders.json + +[🔗](https://caddyserver.com/docs/json/apps/events/#subscriptions/handlers)[subscriptions/handlers](https://caddyserver.com/docs/json/apps/events/subscriptions/handlers/) +The event handler modules. These implement the actual behavior to invoke when an event occurs. At least one handler is required. + +Fulfilled by modules in namespace: **events.handlers** + +* [exec](https://caddyserver.com/docs/json/apps/events/subscriptions/handlers/exec/)Non-standard +* [nats](https://caddyserver.com/docs/json/apps/events/subscriptions/handlers/nats/)Non-standard +* [store_cert](https://caddyserver.com/docs/json/apps/events/subscriptions/handlers/store_cert/)Non-standard diff --git a/docs/caddy/json/apps/exec.md b/docs/caddy/json/apps/exec.md new file mode 100644 index 0000000..b5020ef --- /dev/null +++ b/docs/caddy/json/apps/exec.md @@ -0,0 +1,44 @@ +Title: apps/exec - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/exec/ + +Markdown Content: +`{▾ "commands": [{▾ "command": "", "args": [""], "directory": "", "foreground": false, "timeout": "", "at": [""], "log": {•••}, "err_log": {•••} }]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/abiosoft/caddy-exec](https://github.com/abiosoft/caddy-exec)** + +**Custom builds:**`xcaddy build --with github.com/abiosoft/caddy-exec` + +Description[🔗](https://caddyserver.com/docs/json/apps/exec/#docs "Direct link") +-------------------------------------------------------------------------------- + +App is top level module that runs shell commands. + +[🔗](https://caddyserver.com/docs/json/apps/exec/#commands)[commands](https://caddyserver.com/docs/json/apps/exec/commands/) +Cmd is the module configuration + +[🔗](https://caddyserver.com/docs/json/apps/exec/#commands/command)[commands/command](https://caddyserver.com/docs/json/apps/exec/commands/command/) +The command to run. + +[🔗](https://caddyserver.com/docs/json/apps/exec/#commands/args)[commands/args](https://caddyserver.com/docs/json/apps/exec/commands/args/) +The command args. + +[🔗](https://caddyserver.com/docs/json/apps/exec/#commands/directory)[commands/directory](https://caddyserver.com/docs/json/apps/exec/commands/directory/) +The directory to run the command from. Defaults to current directory. + +[🔗](https://caddyserver.com/docs/json/apps/exec/#commands/foreground)[commands/foreground](https://caddyserver.com/docs/json/apps/exec/commands/foreground/) +If the command should run in the foreground. By default, commands run in the background and doesn't affect Caddy. Setting this makes the command run in the foreground. Note that failure of a startup command running in the foreground may prevent Caddy from starting. + +[🔗](https://caddyserver.com/docs/json/apps/exec/#commands/timeout)[commands/timeout](https://caddyserver.com/docs/json/apps/exec/commands/timeout/) +Timeout for the command. The command will be killed after timeout has elapsed if it is still running. Defaults to 10s. + +[🔗](https://caddyserver.com/docs/json/apps/exec/#commands/at)[commands/at](https://caddyserver.com/docs/json/apps/exec/commands/at/) +When the command should run. This can contain either of "startup" or "shutdown". + +[🔗](https://caddyserver.com/docs/json/apps/exec/#commands/log)[commands/log](https://caddyserver.com/docs/json/apps/exec/commands/log/) +Standard output log. + +[🔗](https://caddyserver.com/docs/json/apps/exec/#commands/err_log)[commands/err_log](https://caddyserver.com/docs/json/apps/exec/commands/err_log/) +Standard error log. diff --git a/docs/caddy/json/apps/frankenphp.md b/docs/caddy/json/apps/frankenphp.md new file mode 100644 index 0000000..d0d9162 --- /dev/null +++ b/docs/caddy/json/apps/frankenphp.md @@ -0,0 +1,34 @@ +Title: apps/frankenphp - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/frankenphp/ + +Markdown Content: +``` +{▾ "num_threads": 0, "workers": [{▾ "file_name": "", "num": 0, "env": { + "": "" + } }]} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/dunglas/frankenphp](https://github.com/dunglas/frankenphp)** + +**Custom builds:**`xcaddy build --with github.com/dunglas/frankenphp/caddy` + +Description[🔗](https://caddyserver.com/docs/json/apps/frankenphp/#docs "Direct link") +-------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/json/apps/frankenphp/#num_threads)[num_threads](https://caddyserver.com/docs/json/apps/frankenphp/num_threads/) +NumThreads sets the number of PHP threads to start. Default: 2x the number of available CPUs. + +[🔗](https://caddyserver.com/docs/json/apps/frankenphp/#workers)[workers](https://caddyserver.com/docs/json/apps/frankenphp/workers/) +Workers configures the worker scripts to start. + +[🔗](https://caddyserver.com/docs/json/apps/frankenphp/#workers/file_name)[workers/file_name](https://caddyserver.com/docs/json/apps/frankenphp/workers/file_name/) +FileName sets the path to the worker script. + +[🔗](https://caddyserver.com/docs/json/apps/frankenphp/#workers/num)[workers/num](https://caddyserver.com/docs/json/apps/frankenphp/workers/num/) +Num sets the number of workers to start. + +[🔗](https://caddyserver.com/docs/json/apps/frankenphp/#workers/env)[workers/env](https://caddyserver.com/docs/json/apps/frankenphp/workers/env/) +Env sets an extra environment variable to the given value. Can be specified more than once for multiple environment variables. diff --git a/docs/caddy/json/apps/geoip2.md b/docs/caddy/json/apps/geoip2.md new file mode 100644 index 0000000..d209af0 --- /dev/null +++ b/docs/caddy/json/apps/geoip2.md @@ -0,0 +1,38 @@ +Title: apps/geoip2 - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/geoip2/ + +Markdown Content: +`{▾ "accountId": 0, "databaseDirectory": "", "licenseKey": "", "lockFile": "", "editionID": "", "updateUrl": "", "updateFrequency": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/zhangjiayin/caddy-geoip2](https://github.com/zhangjiayin/caddy-geoip2)** + +**Custom builds:**`xcaddy build --with github.com/zhangjiayin/caddy-geoip2` + +Description[🔗](https://caddyserver.com/docs/json/apps/geoip2/#docs "Direct link") +---------------------------------------------------------------------------------- + +geoip2 is global caddy app with http.handlers.geoip2 it update geoip2 data automatically by the params + +[🔗](https://caddyserver.com/docs/json/apps/geoip2/#accountId)[accountId](https://caddyserver.com/docs/json/apps/geoip2/accountId/) +Your MaxMind account ID. This was formerly known as UserId. + +[🔗](https://caddyserver.com/docs/json/apps/geoip2/#databaseDirectory)[databaseDirectory](https://caddyserver.com/docs/json/apps/geoip2/databaseDirectory/) +The directory to store the database files. Defaults to DATADIR + +[🔗](https://caddyserver.com/docs/json/apps/geoip2/#licenseKey)[licenseKey](https://caddyserver.com/docs/json/apps/geoip2/licenseKey/) +Your case-sensitive MaxMind license key. + +[🔗](https://caddyserver.com/docs/json/apps/geoip2/#lockFile)[lockFile](https://caddyserver.com/docs/json/apps/geoip2/lockFile/) +The lock file to use. This ensures only one geoipupdate process can run at a time. Note: Once created, this lockfile is not removed from the filesystem. + +[🔗](https://caddyserver.com/docs/json/apps/geoip2/#editionID)[editionID](https://caddyserver.com/docs/json/apps/geoip2/editionID/) +Enter the edition IDs of the databases you would like to update. Should be GeoLite2-City + +[🔗](https://caddyserver.com/docs/json/apps/geoip2/#updateUrl)[updateUrl](https://caddyserver.com/docs/json/apps/geoip2/updateUrl/) +update url to use. Defaults to [https://updates.maxmind.com](https://updates.maxmind.com/) + +[🔗](https://caddyserver.com/docs/json/apps/geoip2/#updateFrequency)[updateFrequency](https://caddyserver.com/docs/json/apps/geoip2/updateFrequency/) +The Frequency in seconds to run update. Default to 0, only update On Start diff --git a/docs/caddy/docs/docs/json/apps/http.md b/docs/caddy/json/apps/http.md similarity index 73% rename from docs/caddy/docs/docs/json/apps/http.md rename to docs/caddy/json/apps/http.md index 5bf5d98..946f344 100644 --- a/docs/caddy/docs/docs/json/apps/http.md +++ b/docs/caddy/json/apps/http.md @@ -1,21 +1,21 @@ -Title: apps/http - JSON Config Structure +Title: JSON Config Structure - Caddy Documentation URL Source: https://caddyserver.com/docs/json/apps/http/ Markdown Content: -apps/http - JSON Config Structure - Caddy Documentation -=============== +JSON Config Structure - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== -Documentation +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +Documentation -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +27,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +40,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,15 +59,16 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` Description ----------- @@ -77,9 +80,12 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive.md b/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive.md new file mode 100644 index 0000000..ff48519 --- /dev/null +++ b/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive.md @@ -0,0 +1,40 @@ +Title: apps/http/.../health_checks/passive - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/ + +Markdown Content: +`{▾ "fail_duration": 0, "max_fails": 0, "unhealthy_request_count": 0, "unhealthy_status": [0], "unhealthy_latency": 0}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/#docs "Direct link") +------------------------------------------------------------------------------------------------------------------------------------------ + +Passive health checks monitor proxied requests for errors or timeouts. To minimally enable passive health checks, specify at least an empty config object with fail_duration > 0. Passive health check state is shared (stored globally), so a failure from one handler will be counted by all handlers; but the tolerances or standards for what defines healthy/unhealthy backends is configured per-proxy-handler. + +Passive health checks technically do operate on dynamic upstreams, but are only effective for very busy proxies where the list of upstreams is mostly stable. This is because the shared/global state of upstreams is cleaned up when the upstreams are no longer used. Since dynamic upstreams are allocated dynamically at each request (specifically, each iteration of the proxy loop per request), they are also cleaned up after every request. Thus, if there is a moment when no requests are actively referring to a particular upstream host, the passive health check state will be reset because it will be garbage-collected. It is usually better for the dynamic upstream module to only return healthy, available backends instead. + +PassiveHealthChecks holds configuration related to passive health checks (that is, health checks which occur during the normal flow of request proxying). + +[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/#fail_duration)[fail_duration](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/fail_duration/) +How long to remember a failed request to a backend. A duration > 0 enables passive health checking. Default is 0. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/#max_fails)[max_fails](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/max_fails/) +The number of failed requests within the FailDuration window to consider a backend as "down". Must be >= 1; default is 1. Requires that FailDuration be > 0. + +[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/#unhealthy_request_count)[unhealthy_request_count](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/unhealthy_request_count/) +Limits the number of simultaneous requests to a backend by marking the backend as "down" if it has this many concurrent requests or more. + +[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/#unhealthy_status)[unhealthy_status](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/unhealthy_status/) +Count the request as failed if the response comes back with one of these status codes. + +[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/#unhealthy_latency)[unhealthy_latency](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/unhealthy_latency/) +Count the request as failed if the response takes at least this long to receive. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/docs/docs/json/apps/http/servers/automatic_https.md b/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/max_fails.md similarity index 56% rename from docs/caddy/docs/docs/json/apps/http/servers/automatic_https.md rename to docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/max_fails.md index 76a0b13..b4efb85 100644 --- a/docs/caddy/docs/docs/json/apps/http/servers/automatic_https.md +++ b/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/max_fails.md @@ -1,21 +1,23 @@ -Title: servers/automatic_https - JSON Config Structure +Title: apps/http/.../passive/max_fails - JSON Config Structure -URL Source: https://caddyserver.com/docs/json/apps/http/servers/automatic_https/ +URL Source: https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/max_fails/ Markdown Content: -servers/automatic\_https - JSON Config Structure - Caddy Documentation -=============== +apps/http/.../passive/max_fails - JSON Config Structure - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) Documentation -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) +Search K +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +29,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +42,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,18 +61,25 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [apps](https://caddyserver.com/docs/json/apps/) › [http](https://caddyserver.com/docs/json/apps/http/) › [servers](https://caddyserver.com/docs/json/apps/http/servers/) › [routes](https://caddyserver.com/docs/json/apps/http/servers/routes/) › [handle](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/) › [reverse_proxy](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/) › [health_checks](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/) › [passive](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/) › [max_fails](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/max_fails/) + +`0` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. -Description ------------ +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/max_fails/#docs "Direct link") +---------------------------------------------------------------------------------------------------------------------------------------------------- + +The number of failed requests within the FailDuration window to consider a backend as "down". Must be >= 1; default is 1. Requires that FailDuration be > 0. Field List ---------- @@ -77,9 +88,12 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/unhealthy_request_count.md b/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/unhealthy_request_count.md new file mode 100644 index 0000000..5b7c132 --- /dev/null +++ b/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/unhealthy_request_count.md @@ -0,0 +1,22 @@ +Title: apps/http/.../passive/unhealthy_request_count - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/unhealthy_request_count/ + +Markdown Content: +[JSON Config Structure](https://caddyserver.com/docs/json/) › [apps](https://caddyserver.com/docs/json/apps/) › [http](https://caddyserver.com/docs/json/apps/http/) › [servers](https://caddyserver.com/docs/json/apps/http/servers/) › [routes](https://caddyserver.com/docs/json/apps/http/servers/routes/) › [handle](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/) › [reverse_proxy](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/) › [health_checks](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/) › [passive](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/) › [unhealthy_request_count](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/unhealthy_request_count/) + +`0` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/health_checks/passive/unhealthy_request_count/#docs "Direct link") +------------------------------------------------------------------------------------------------------------------------------------------------------------------ + +Limits the number of simultaneous requests to a backend by marking the backend as "down" if it has this many concurrent requests or more. + +Field List +---------- diff --git a/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/upstreams.md b/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/upstreams.md new file mode 100644 index 0000000..7b48f3f --- /dev/null +++ b/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/upstreams.md @@ -0,0 +1,109 @@ +Title: apps/http/.../reverse_proxy/upstreams - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/ + +Markdown Content: +apps/http/.../reverse_proxy/upstreams - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [apps](https://caddyserver.com/docs/json/apps/) › [http](https://caddyserver.com/docs/json/apps/http/) › [servers](https://caddyserver.com/docs/json/apps/http/servers/) › [routes](https://caddyserver.com/docs/json/apps/http/servers/routes/) › [handle](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/) › [reverse_proxy](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/) › [upstreams](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/) + +`[{▾ "dial": "", "max_requests": 0}]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/#docs "Direct link") +------------------------------------------------------------------------------------------------------------------------------ + +Upstreams is the static list of backends to proxy to. + +UpstreamPool is a collection of upstreams. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/#dial)[dial](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/dial/) +The [network address](https://caddyserver.com/docs/conventions#network-addresses) to dial to connect to the upstream. Must represent precisely one socket (i.e. no port ranges). A valid network address either has a host and port or is a unix socket address. + +Placeholders may be used to make the upstream dynamic, but be aware of the health check implications of this: a single upstream that represents numerous (perhaps arbitrary) backends can be considered down if one or enough of the arbitrary backends is down. Also be aware of open proxy vulnerabilities. + +[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/#max_requests)[max_requests](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/max_requests/) +The maximum number of simultaneous requests to allow to this upstream. If set, overrides the global passive health check UnhealthyRequestCount value. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/apps/http/servers.md b/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/max_requests.md similarity index 57% rename from docs/caddy/docs/docs/json/apps/http/servers.md rename to docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/max_requests.md index 02e9723..82f4643 100644 --- a/docs/caddy/docs/docs/json/apps/http/servers.md +++ b/docs/caddy/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/max_requests.md @@ -1,21 +1,23 @@ -Title: http/servers - JSON Config Structure +Title: apps/http/.../upstreams/max_requests - JSON Config Structure -URL Source: https://caddyserver.com/docs/json/apps/http/servers/ +URL Source: https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/max_requests/ Markdown Content: -http/servers - JSON Config Structure - Caddy Documentation -=============== +apps/http/.../upstreams/max_requests - JSON Config Structure - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) Documentation -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) +Search K +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +29,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +42,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,18 +61,25 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [apps](https://caddyserver.com/docs/json/apps/) › [http](https://caddyserver.com/docs/json/apps/http/) › [servers](https://caddyserver.com/docs/json/apps/http/servers/) › [routes](https://caddyserver.com/docs/json/apps/http/servers/routes/) › [handle](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/) › [reverse_proxy](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/) › [upstreams](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/) › [max_requests](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/max_requests/) + +`0` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. -Description ------------ +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/apps/http/servers/routes/handle/reverse_proxy/upstreams/max_requests/#docs "Direct link") +------------------------------------------------------------------------------------------------------------------------------------------- + +The maximum number of simultaneous requests to allow to this upstream. If set, overrides the global passive health check UnhealthyRequestCount value. Field List ---------- @@ -77,9 +88,12 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/apps/layer4.md b/docs/caddy/json/apps/layer4.md new file mode 100644 index 0000000..6a75cf1 --- /dev/null +++ b/docs/caddy/json/apps/layer4.md @@ -0,0 +1,139 @@ +Title: apps/layer4 - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/layer4/ + +Markdown Content: +apps/layer4 - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [apps](https://caddyserver.com/docs/json/apps/) › [layer4](https://caddyserver.com/docs/json/apps/layer4/) + +``` +{▾ "servers": { + "": {▾ "listen": [""], "routes": [{▾ "match": [{•••}], "handle": [{•••}] }] } + }} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/layer4` + +Description[🔗](https://caddyserver.com/docs/json/apps/layer4/#docs "Direct link") +---------------------------------------------------------------------------------- + +App is a Caddy app that operates closest to layer 4 of the OSI model. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/json/apps/layer4/#servers)[servers](https://caddyserver.com/docs/json/apps/layer4/servers/) +Server represents a Caddy layer4 server. + +[🔗](https://caddyserver.com/docs/json/apps/layer4/#servers/listen)[servers/listen](https://caddyserver.com/docs/json/apps/layer4/servers/listen/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/layer4/#servers/routes)[servers/routes](https://caddyserver.com/docs/json/apps/layer4/servers/routes/) +Route represents a collection of handlers that are gated by matching and other kinds of logic. + +[🔗](https://caddyserver.com/docs/json/apps/layer4/#servers/routes/match)[servers/routes/match](https://caddyserver.com/docs/json/apps/layer4/servers/routes/match/) +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **layer4.matchers** + +* [crowdsec](https://caddyserver.com/docs/json/apps/layer4/servers/routes/match/crowdsec/)Non-standard +* [http](https://caddyserver.com/docs/json/apps/layer4/servers/routes/match/http/)Non-standard +* [ip](https://caddyserver.com/docs/json/apps/layer4/servers/routes/match/ip/)Non-standard +* [proxy_protocol](https://caddyserver.com/docs/json/apps/layer4/servers/routes/match/proxy_protocol/)Non-standard +* [ssh](https://caddyserver.com/docs/json/apps/layer4/servers/routes/match/ssh/)Non-standard +* [tls](https://caddyserver.com/docs/json/apps/layer4/servers/routes/match/tls/)Non-standard +* [xmpp](https://caddyserver.com/docs/json/apps/layer4/servers/routes/match/xmpp/)Non-standard + +[🔗](https://caddyserver.com/docs/json/apps/layer4/#servers/routes/handle)[servers/routes/handle](https://caddyserver.com/docs/json/apps/layer4/servers/routes/handle/) +There are no docs for this property. + +Fulfilled by modules in namespace: **layer4.handlers** + +* [echo](https://caddyserver.com/docs/json/apps/layer4/servers/routes/handle/echo/)Non-standard +* [proxy](https://caddyserver.com/docs/json/apps/layer4/servers/routes/handle/proxy/)Non-standard +* [proxy_protocol](https://caddyserver.com/docs/json/apps/layer4/servers/routes/handle/proxy_protocol/)Non-standard +* [tee](https://caddyserver.com/docs/json/apps/layer4/servers/routes/handle/tee/)Non-standard +* [throttle](https://caddyserver.com/docs/json/apps/layer4/servers/routes/handle/throttle/)Non-standard +* [tls](https://caddyserver.com/docs/json/apps/layer4/servers/routes/handle/tls/)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fjson%2Fapps%2Flayer4%2F&r=&sid=GVMGKAKP&qs=%7B%7D&cid=85690731) diff --git a/docs/caddy/json/apps/pki.md b/docs/caddy/json/apps/pki.md new file mode 100644 index 0000000..adb14a7 --- /dev/null +++ b/docs/caddy/json/apps/pki.md @@ -0,0 +1,76 @@ +Title: apps/pki - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/pki/ + +Markdown Content: +``` +{▾ "certificate_authorities": { + "": {▾ "name": "", "root_common_name": "", "intermediate_common_name": "", "intermediate_lifetime": 0, "install_trust": false, "root": {▾ "certificate": "", "private_key": "", "format": "" }, "intermediate": {▾ "certificate": "", "private_key": "", "format": "" }, "storage": {•••} } + }} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/apps/pki/#docs "Direct link") +------------------------------------------------------------------------------- + +PKI provides Public Key Infrastructure facilities for Caddy. + +This app can define certificate authorities (CAs) which are capable of signing certificates. Other modules can be configured to use the CAs defined by this app for issuing certificates or getting key information needed for establishing trust. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities)[certificate_authorities](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/) +The certificate authorities to manage. Each CA is keyed by an ID that is used to uniquely identify it from other CAs. At runtime, the GetCA() method should be used instead to ensure the default CA is provisioned if it hadn't already been. The default CA ID is "local". + +CA describes a certificate authority, which consists of root/signing certificates and various settings pertaining to the issuance of certificates and trusting them. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/name)[certificate_authorities/name](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/name/) +The user-facing name of the certificate authority. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/root_common_name)[certificate_authorities/root_common_name](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/root_common_name/) +The name to put in the CommonName field of the root certificate. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/intermediate_common_name)[certificate_authorities/intermediate_common_name](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/intermediate_common_name/) +The name to put in the CommonName field of the intermediate certificates. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/intermediate_lifetime)[certificate_authorities/intermediate_lifetime](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/intermediate_lifetime/) +The lifetime for the intermediate certificates + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/install_trust)[certificate_authorities/install_trust](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/install_trust/) +Whether Caddy will attempt to install the CA's root into the system trust store, as well as into Java and Mozilla Firefox trust stores. Default: true. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/root)[certificate_authorities/root](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/root/) +The root certificate to use; if null, one will be generated. + +KeyPair represents a public-private key pair, where the public key is also called a certificate. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/root/certificate)[certificate_authorities/root/certificate](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/root/certificate/) +The certificate. By default, this should be the path to a PEM file unless format is something else. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/root/private_key)[certificate_authorities/root/private_key](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/root/private_key/) +The private key. By default, this should be the path to a PEM file unless format is something else. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/root/format)[certificate_authorities/root/format](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/root/format/) +The format in which the certificate and private key are provided. Default: pem_file + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/intermediate)[certificate_authorities/intermediate](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/intermediate/) +The intermediate (signing) certificate; if null, one will be generated. + +KeyPair represents a public-private key pair, where the public key is also called a certificate. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/intermediate/certificate)[certificate_authorities/intermediate/certificate](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/intermediate/certificate/) +The certificate. By default, this should be the path to a PEM file unless format is something else. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/intermediate/private_key)[certificate_authorities/intermediate/private_key](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/intermediate/private_key/) +The private key. By default, this should be the path to a PEM file unless format is something else. + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/intermediate/format)[certificate_authorities/intermediate/format](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/intermediate/format/) +The format in which the certificate and private key are provided. Default: pem_file + +[🔗](https://caddyserver.com/docs/json/apps/pki/#certificate_authorities/storage)[certificate_authorities/storage](https://caddyserver.com/docs/json/apps/pki/certificate_authorities/storage/) +Optionally configure a separate storage module associated with this issuer, instead of using Caddy's global/default-configured storage. This can be useful if you want to keep your signing keys in a separate location from your leaf certificates. diff --git a/docs/caddy/json/apps/pocketbase.md b/docs/caddy/json/apps/pocketbase.md new file mode 100644 index 0000000..d111bb8 --- /dev/null +++ b/docs/caddy/json/apps/pocketbase.md @@ -0,0 +1,59 @@ +Title: apps/pocketbase - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/pocketbase/ + +Markdown Content: +`{▾ "listen": "", "data_dir": "", "origins": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-pocketbase](https://github.com/mohammed90/caddy-pocketbase)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-pocketbase` + +Description[🔗](https://caddyserver.com/docs/json/apps/pocketbase/#docs "Direct link") +-------------------------------------------------------------------------------------- + +App is a Caddy module that provides an embedded PocketBase server. + +The module provides admin API endpoints under `/pocketbase/`: + +* `POST /pocketbase/superuser` - Create a new superuser +* `PUT /pocketbase/superuser` - Upsert a superuser +* `PATCH /pocketbase/superuser` - Update superuser password +* `DELETE /pocketbase/superuser` - Delete a superuser +* `POST /pocketbase/superuser/{email}/otp` - Generate OTP for superuser + +All the above endpoints require a JSON payload, except for the OTP endpoint. The JSON payload for the superuser endpoints is as follows: + +``` +{ + "email_address": "...", + "password": "..." +} +``` + +The `DELETE` endpoint does not expect the `password` field. + +Although PocketBase prints a URL in the logs to create the first superuser, the host part of the URL is not correct. You can either replace the host part with the host defined in your Caddy configuration, or use the admin API endpoint to create the first superuser. + +The app can be configured in the Caddyfile through the `pocketbase` block in the global options section. Syntax: + +``` +pocketbase { + data_dir + listen + origins +} +``` + +If the block is omitted, the default values are used. + +[🔗](https://caddyserver.com/docs/json/apps/pocketbase/#listen)[listen](https://caddyserver.com/docs/json/apps/pocketbase/listen/) +The listen address of the PocketBase server. If empty, a free port on 127.0.0.1 will be used. + +[🔗](https://caddyserver.com/docs/json/apps/pocketbase/#data_dir)[data_dir](https://caddyserver.com/docs/json/apps/pocketbase/data_dir/) +The data directory of PocketBase. If empty, a directory named `pb_data` in the Caddy data directory will be used. Refer to [Caddy data directory](https://caddyserver.com/docs/conventions#data-directory) for more information. + +[🔗](https://caddyserver.com/docs/json/apps/pocketbase/#origins)[origins](https://caddyserver.com/docs/json/apps/pocketbase/origins/) +The allowed origins for the PocketBase server with respect to CORS. If empty, all origins are allowed. diff --git a/docs/caddy/json/apps/profefe.md b/docs/caddy/json/apps/profefe.md new file mode 100644 index 0000000..13c4210 --- /dev/null +++ b/docs/caddy/json/apps/profefe.md @@ -0,0 +1,45 @@ +Title: apps/profefe - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/profefe/ + +Markdown Content: +`{▾ "address": "", "service": "", "timeout": 0, "parameters": {▾ "cpu_profile_rate": 0, "block_profile_rate": 0, "mutex_profile_fraction": 0, "profile_types": [""] }}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy_profiling](https://github.com/mohammed90/caddy_profiling)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy_profiling/profefe` + +Description[🔗](https://caddyserver.com/docs/json/apps/profefe/#docs "Direct link") +----------------------------------------------------------------------------------- + +The `profefe` app collects profiling data during the life-time of the process and uploads them to the profefe server. + +[🔗](https://caddyserver.com/docs/json/apps/profefe/#address)[address](https://caddyserver.com/docs/json/apps/profefe/address/) +The URL of the Profefe service. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/json/apps/profefe/#service)[service](https://caddyserver.com/docs/json/apps/profefe/service/) +The service name reported to Profefe. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/json/apps/profefe/#timeout)[timeout](https://caddyserver.com/docs/json/apps/profefe/timeout/) +The timeout for the upload call. Setting the value to `0` disables the timeout and the call waits indefinitely until the upload is finished. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/profefe/#parameters)[parameters](https://caddyserver.com/docs/json/apps/profefe/parameters/) +The profiling parameters to be reported to Profefe. The paramters cpu_profile_rate, block_profile_rate, and mutex_profile_fraction are inherited from the `profiling` app if `profefe` is configured as a child module. The `profile_types` field is inherited if not configured explicitly. If `profefe` is configured as an app, all the parameters are instated as-is. + +Common profiling paramters + +[🔗](https://caddyserver.com/docs/json/apps/profefe/#parameters/cpu_profile_rate)[parameters/cpu_profile_rate](https://caddyserver.com/docs/json/apps/profefe/parameters/cpu_profile_rate/) +The hertz rate for CPU profiling, as accepted by the [`SetCPUProfileRate`](https://pkg.go.dev/runtime#SetCPUProfileRate) function. + +[🔗](https://caddyserver.com/docs/json/apps/profefe/#parameters/block_profile_rate)[parameters/block_profile_rate](https://caddyserver.com/docs/json/apps/profefe/parameters/block_profile_rate/) +The hertz rate for CPU profiling, as accepted by the [`SetBlockProfileRate`](https://pkg.go.dev/runtime#SetBlockProfileRate) function. + +[🔗](https://caddyserver.com/docs/json/apps/profefe/#parameters/mutex_profile_fraction)[parameters/mutex_profile_fraction](https://caddyserver.com/docs/json/apps/profefe/parameters/mutex_profile_fraction/) +The the fraction of mutex contention events, as accepted by the [`SetMutexProfileFraction`](https://pkg.go.dev/runtime#SetMutexProfileFraction) function. + +[🔗](https://caddyserver.com/docs/json/apps/profefe/#parameters/profile_types)[parameters/profile_types](https://caddyserver.com/docs/json/apps/profefe/parameters/profile_types/) +The enabled runtime profile types. The accepted values are: cpu, goroutine, heap, allocs, threadcreate, block, mutex. diff --git a/docs/caddy/json/apps/profiling.md b/docs/caddy/json/apps/profiling.md new file mode 100644 index 0000000..0d9ecf4 --- /dev/null +++ b/docs/caddy/json/apps/profiling.md @@ -0,0 +1,37 @@ +Title: apps/profiling - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/profiling/ + +Markdown Content: +`{▾ "cpu_profile_rate": 0, "block_profile_rate": 0, "mutex_profile_fraction": 0, "profile_types": [""], "profilers": [{•••}]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy_profiling](https://github.com/mohammed90/caddy_profiling)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy_profiling/profiling` + +Description[🔗](https://caddyserver.com/docs/json/apps/profiling/#docs "Direct link") +------------------------------------------------------------------------------------- + +The `profiling` app hosts the collection of push-based profiling agents with common profiling parameters acorss the Caddy instance. + +[🔗](https://caddyserver.com/docs/json/apps/profiling/#cpu_profile_rate)[cpu_profile_rate](https://caddyserver.com/docs/json/apps/profiling/cpu_profile_rate/) +The hertz rate for CPU profiling, as accepted by the [`SetCPUProfileRate`](https://pkg.go.dev/runtime#SetCPUProfileRate) function. + +[🔗](https://caddyserver.com/docs/json/apps/profiling/#block_profile_rate)[block_profile_rate](https://caddyserver.com/docs/json/apps/profiling/block_profile_rate/) +The hertz rate for CPU profiling, as accepted by the [`SetBlockProfileRate`](https://pkg.go.dev/runtime#SetBlockProfileRate) function. + +[🔗](https://caddyserver.com/docs/json/apps/profiling/#mutex_profile_fraction)[mutex_profile_fraction](https://caddyserver.com/docs/json/apps/profiling/mutex_profile_fraction/) +The the fraction of mutex contention events, as accepted by the [`SetMutexProfileFraction`](https://pkg.go.dev/runtime#SetMutexProfileFraction) function. + +[🔗](https://caddyserver.com/docs/json/apps/profiling/#profile_types)[profile_types](https://caddyserver.com/docs/json/apps/profiling/profile_types/) +The enabled runtime profile types. The accepted values are: cpu, goroutine, heap, allocs, threadcreate, block, mutex. + +[🔗](https://caddyserver.com/docs/json/apps/profiling/#profilers)[profilers](https://caddyserver.com/docs/json/apps/profiling/profilers/) +There are no docs for this property. + +Fulfilled by modules in namespace: **profiling.profiler** + +* [profefe](https://caddyserver.com/docs/json/apps/profiling/profilers/profefe/)Non-standard +* [pyroscope](https://caddyserver.com/docs/json/apps/profiling/profilers/pyroscope/)Non-standard diff --git a/docs/caddy/json/apps/pyroscope.md b/docs/caddy/json/apps/pyroscope.md new file mode 100644 index 0000000..5b9147c --- /dev/null +++ b/docs/caddy/json/apps/pyroscope.md @@ -0,0 +1,60 @@ +Title: apps/pyroscope - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/pyroscope/ + +Markdown Content: +`{▾ "application_name": "", "server_address": "", "auth_token": "", "basic_auth_user": "", "basic_auth_password": "", "tenant_id": "", "disable_gc_runs": false, "upload_rate": 0, "parameters": {▾ "cpu_profile_rate": 0, "block_profile_rate": 0, "mutex_profile_fraction": 0, "profile_types": [""] }}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy_profiling](https://github.com/mohammed90/caddy_profiling)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy_profiling/pyroscope` + +Description[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#docs "Direct link") +------------------------------------------------------------------------------------- + +The `pyroscope` app collects profiling data during the life-time of the process and uploads them to the Pyroscope server. + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#application_name)[application_name](https://caddyserver.com/docs/json/apps/pyroscope/application_name/) +The application name reported to Pyroscope. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#server_address)[server_address](https://caddyserver.com/docs/json/apps/pyroscope/server_address/) +The URL of the Pyroscope service. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#auth_token)[auth_token](https://caddyserver.com/docs/json/apps/pyroscope/auth_token/) +The token for Pyroscope Cloud. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#basic_auth_user)[basic_auth_user](https://caddyserver.com/docs/json/apps/pyroscope/basic_auth_user/) +The Basic Auth username of the Phlare server + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#basic_auth_password)[basic_auth_password](https://caddyserver.com/docs/json/apps/pyroscope/basic_auth_password/) +The Basic Auth of the Phlare server + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#tenant_id)[tenant_id](https://caddyserver.com/docs/json/apps/pyroscope/tenant_id/) +The tenant ID to support the case of multi-tenant Phlare server + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#disable_gc_runs)[disable_gc_runs](https://caddyserver.com/docs/json/apps/pyroscope/disable_gc_runs/) +Disable automatic runtime.GC runs between getting the heap profiles + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#upload_rate)[upload_rate](https://caddyserver.com/docs/json/apps/pyroscope/upload_rate/) +The frequency of upload to the Phlare server + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#parameters)[parameters](https://caddyserver.com/docs/json/apps/pyroscope/parameters/) +The profiling parameters to be reported to Pyroscope. The paramters cpu_profile_rate, block_profile_rate, and mutex_profile_fraction are inherited from the `profiling` app if `pyroscope` is configured as a child module. The `profile_types` field is inherited if not configured explicitly. If `pyroscope` is configured as an app, all the parameters are instated as-is. Note: Pyroscope agent does not support `threadcreate` profile type, hence ignored. + +Common profiling paramters + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#parameters/cpu_profile_rate)[parameters/cpu_profile_rate](https://caddyserver.com/docs/json/apps/pyroscope/parameters/cpu_profile_rate/) +The hertz rate for CPU profiling, as accepted by the [`SetCPUProfileRate`](https://pkg.go.dev/runtime#SetCPUProfileRate) function. + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#parameters/block_profile_rate)[parameters/block_profile_rate](https://caddyserver.com/docs/json/apps/pyroscope/parameters/block_profile_rate/) +The hertz rate for CPU profiling, as accepted by the [`SetBlockProfileRate`](https://pkg.go.dev/runtime#SetBlockProfileRate) function. + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#parameters/mutex_profile_fraction)[parameters/mutex_profile_fraction](https://caddyserver.com/docs/json/apps/pyroscope/parameters/mutex_profile_fraction/) +The the fraction of mutex contention events, as accepted by the [`SetMutexProfileFraction`](https://pkg.go.dev/runtime#SetMutexProfileFraction) function. + +[🔗](https://caddyserver.com/docs/json/apps/pyroscope/#parameters/profile_types)[parameters/profile_types](https://caddyserver.com/docs/json/apps/pyroscope/parameters/profile_types/) +The enabled runtime profile types. The accepted values are: cpu, goroutine, heap, allocs, threadcreate, block, mutex. diff --git a/docs/caddy/json/apps/reconnect.md b/docs/caddy/json/apps/reconnect.md new file mode 100644 index 0000000..ef71d7e --- /dev/null +++ b/docs/caddy/json/apps/reconnect.md @@ -0,0 +1,33 @@ +Title: apps/reconnect - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/reconnect/ + +Markdown Content: +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/anapaya/caddy-reconnect](https://github.com/anapaya/caddy-reconnect)** + +**Custom builds:**`xcaddy build --with github.com/anapaya/caddy-reconnect` + +Description[🔗](https://caddyserver.com/docs/json/apps/reconnect/#docs "Direct link") +------------------------------------------------------------------------------------- + +reconnect is a module that provides an additional "reconnect" network type that can be used to reconnect to a [network address](https://caddyserver.com/docs/conventions#network-addresses) if the initial connection fails. Caddy will bind to the address as soon as it is available. Until that point, the listener will block in the Accept() loop. This is useful if you want to configure Caddy to bind on an address that is potentially not available at startup time. + +You can configure the following networks: + +* reconnect+tcp +* reconnect+tcp4 +* reconnect+tcp6 +* reconnect+udp +* reconnect+udp4 +* reconnect+udp6 + +These are equivalent to the standard networks, except that they will block until the address is available. + +For example, to start Caddy as an http server on 192.168.1.2:443, even if that address is not available at startup time, you can add the following listener to the [apps.http.servers.{srv}.listen](https://caddyserver.com/docs/json/apps/http/servers/listen/) list: + +`"listen": ["reconnect+tcp/192.168.1.2:443"]` +Note: This module has only been tested with Linux. Other operating systems might not work as intended. diff --git a/docs/caddy/json/apps/scion.md b/docs/caddy/json/apps/scion.md new file mode 100644 index 0000000..8038837 --- /dev/null +++ b/docs/caddy/json/apps/scion.md @@ -0,0 +1,99 @@ +Title: apps/scion - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/scion/ + +Markdown Content: +apps/scion - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [apps](https://caddyserver.com/docs/json/apps/) › [scion](https://caddyserver.com/docs/json/apps/scion/) + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/scionproto-contrib/caddy-scion](https://github.com/scionproto-contrib/caddy-scion)** + +**Custom builds:**`xcaddy build --with github.com/scionproto-contrib/caddy-scion` + +Description[🔗](https://caddyserver.com/docs/json/apps/scion/#docs "Direct link") +--------------------------------------------------------------------------------- + +SCION implements a caddy module. Currently, it is used to initialize the logger for the global network. In the future, additional configuration can be parsed with this component. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/apps/security.md b/docs/caddy/json/apps/security.md new file mode 100644 index 0000000..18c5180 --- /dev/null +++ b/docs/caddy/json/apps/security.md @@ -0,0 +1,518 @@ +Title: apps/security - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/security/ + +Markdown Content: +App implements security manager. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config)[config](https://caddyserver.com/docs/json/apps/security/config/) +Config is a configuration of Server. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/credentials)[config/credentials](https://caddyserver.com/docs/json/apps/security/config/credentials/) +Config represents a collection of various credentials. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/credentials/generic)[config/credentials/generic](https://caddyserver.com/docs/json/apps/security/config/credentials/generic/) +Generic represents username and password credentials, with optional domain name field. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/credentials/generic/name)[config/credentials/generic/name](https://caddyserver.com/docs/json/apps/security/config/credentials/generic/name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/credentials/generic/username)[config/credentials/generic/username](https://caddyserver.com/docs/json/apps/security/config/credentials/generic/username/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/credentials/generic/password)[config/credentials/generic/password](https://caddyserver.com/docs/json/apps/security/config/credentials/generic/password/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/credentials/generic/domain)[config/credentials/generic/domain](https://caddyserver.com/docs/json/apps/security/config/credentials/generic/domain/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals)[config/authentication_portals](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/) +PortalConfig represents Portal configuration. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/name)[config/authentication_portals/name](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui)[config/authentication_portals/ui](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/) +UI holds the configuration for the user interface. + +Parameters represent a common set of configuration settings for HTML UI. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/theme)[config/authentication_portals/ui/theme](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/theme/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/templates)[config/authentication_portals/ui/templates](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/templates/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/allow_role_selection)[config/authentication_portals/ui/allow_role_selection](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/allow_role_selection/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/title)[config/authentication_portals/ui/title](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/title/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/logo_url)[config/authentication_portals/ui/logo_url](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/logo_url/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/logo_description)[config/authentication_portals/ui/logo_description](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/logo_description/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/private_links)[config/authentication_portals/ui/private_links](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/private_links/) +Link represents a single HTML link. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/private_links/link)[config/authentication_portals/ui/private_links/link](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/private_links/link/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/private_links/title)[config/authentication_portals/ui/private_links/title](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/private_links/title/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/private_links/style)[config/authentication_portals/ui/private_links/style](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/private_links/style/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/private_links/open_new_window)[config/authentication_portals/ui/private_links/open_new_window](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/private_links/open_new_window/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/private_links/target)[config/authentication_portals/ui/private_links/target](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/private_links/target/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/private_links/target_enabled)[config/authentication_portals/ui/private_links/target_enabled](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/private_links/target_enabled/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/private_links/icon_name)[config/authentication_portals/ui/private_links/icon_name](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/private_links/icon_name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/private_links/icon_enabled)[config/authentication_portals/ui/private_links/icon_enabled](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/private_links/icon_enabled/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/auto_redirect_url)[config/authentication_portals/ui/auto_redirect_url](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/auto_redirect_url/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/realms)[config/authentication_portals/ui/realms](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/realms/) +UserRealm represents a single authentication realm/domain. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/realms/name)[config/authentication_portals/ui/realms/name](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/realms/name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/realms/label)[config/authentication_portals/ui/realms/label](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/realms/label/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/password_recovery_enabled)[config/authentication_portals/ui/password_recovery_enabled](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/password_recovery_enabled/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/custom_css_path)[config/authentication_portals/ui/custom_css_path](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/custom_css_path/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/ui/custom_js_path)[config/authentication_portals/ui/custom_js_path](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/ui/custom_js_path/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config)[config/authentication_portals/user_registration_config](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/) +UserRegistrationConfig holds the configuration for the user registration. + +Config represents a common set of configuration settings for user registration + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config/disabled)[config/authentication_portals/user_registration_config/disabled](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/disabled/) +The switch determining whether the registration is enabled/disabled. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config/title)[config/authentication_portals/user_registration_config/title](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/title/) +The title of the registration page + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config/code)[config/authentication_portals/user_registration_config/code](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/code/) +The mandatory registration code. It is possible adding multiple codes, comma separated. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config/dropbox)[config/authentication_portals/user_registration_config/dropbox](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/dropbox/) +The file path to registration database. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config/require_accept_terms)[config/authentication_portals/user_registration_config/require_accept_terms](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/require_accept_terms/) +The switch determining whether a user must accept terms and conditions + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config/require_domain_mx)[config/authentication_portals/user_registration_config/require_domain_mx](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/require_domain_mx/) +The switch determining whether the domain associated with an email has a valid MX DNS record. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config/terms_conditions_link)[config/authentication_portals/user_registration_config/terms_conditions_link](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/terms_conditions_link/) +The link to terms and conditions document. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config/privacy_policy_link)[config/authentication_portals/user_registration_config/privacy_policy_link](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/privacy_policy_link/) +The link to privacy policy document. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config/email_provider)[config/authentication_portals/user_registration_config/email_provider](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/email_provider/) +The email provider used for the notifications. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_registration_config/admin_emails)[config/authentication_portals/user_registration_config/admin_emails](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_registration_config/admin_emails/) +The email address(es) of portal administrators. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_transformer_configs)[config/authentication_portals/user_transformer_configs](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_transformer_configs/) +UserTransformerConfig holds the configuration for the user transformer. + +Config represents a common set of configuration settings applicable to the cookies issued by authn.Authenticator. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_transformer_configs/matchers)[config/authentication_portals/user_transformer_configs/matchers](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_transformer_configs/matchers/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/user_transformer_configs/actions)[config/authentication_portals/user_transformer_configs/actions](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/user_transformer_configs/actions/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config)[config/authentication_portals/cookie_config](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/) +CookieConfig holds the configuration for the cookies issues by Authenticator. + +Config represents a common set of configuration settings applicable to the cookies issued by authn.Authenticator. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/domains)[config/authentication_portals/cookie_config/domains](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/domains/) +DomainConfig represents a common set of configuration settings applicable to the cookies issued by authn.Authenticator. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/domains/seq)[config/authentication_portals/cookie_config/domains/seq](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/domains/seq/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/domains/domain)[config/authentication_portals/cookie_config/domains/domain](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/domains/domain/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/domains/path)[config/authentication_portals/cookie_config/domains/path](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/domains/path/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/domains/lifetime)[config/authentication_portals/cookie_config/domains/lifetime](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/domains/lifetime/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/domains/insecure)[config/authentication_portals/cookie_config/domains/insecure](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/domains/insecure/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/domains/same_site)[config/authentication_portals/cookie_config/domains/same_site](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/domains/same_site/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/path)[config/authentication_portals/cookie_config/path](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/path/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/lifetime)[config/authentication_portals/cookie_config/lifetime](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/lifetime/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/insecure)[config/authentication_portals/cookie_config/insecure](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/insecure/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/cookie_config/same_site)[config/authentication_portals/cookie_config/same_site](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/cookie_config/same_site/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/identity_stores)[config/authentication_portals/identity_stores](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/identity_stores/) +The names of identity stores. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/identity_providers)[config/authentication_portals/identity_providers](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/identity_providers/) +The names of identity providers. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/access_list_configs)[config/authentication_portals/access_list_configs](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/access_list_configs/) +AccessListConfigs hold the configurations for the ACL of the token validator. + +RuleConfiguration consists of a list of conditions and and actions + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/access_list_configs/conditions)[config/authentication_portals/access_list_configs/conditions](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/access_list_configs/conditions/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/access_list_configs/action)[config/authentication_portals/access_list_configs/action](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/access_list_configs/action/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/token_validator_options)[config/authentication_portals/token_validator_options](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/token_validator_options/) +TokenValidatorOptions holds the configuration for the token validator. + +TokenValidatorOptions provides options for TokenValidator. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/token_validator_options/validate_source_address)[config/authentication_portals/token_validator_options/validate_source_address](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/token_validator_options/validate_source_address/) +There are no docs for this property. + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/token_validator_options/validate_method_path)[config/authentication_portals/token_validator_options/validate_method_path](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/token_validator_options/validate_method_path/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/token_validator_options/validate_access_list_path_claim)[config/authentication_portals/token_validator_options/validate_access_list_path_claim](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/token_validator_options/validate_access_list_path_claim/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs)[config/authentication_portals/crypto_key_configs](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/) +CryptoKeyConfigs hold the configurations for the keys used to issue and validate user tokens. + +CryptoKeyConfig is common token-related configuration settings. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/seq)[config/authentication_portals/crypto_key_configs/seq](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/seq/) +Seq is the order in which a key would be processed. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/id)[config/authentication_portals/crypto_key_configs/id](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/id/) +ID is the key ID, aka kid. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/usage)[config/authentication_portals/crypto_key_configs/usage](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/usage/) +Usage is the intended key usage. The values are: sign, verify, both, or auto. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/token_name)[config/authentication_portals/crypto_key_configs/token_name](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/token_name/) +TokenName is the token name associated with the key. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/source)[config/authentication_portals/crypto_key_configs/source](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/source/) +Source is either config or env. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/algorithm)[config/authentication_portals/crypto_key_configs/algorithm](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/algorithm/) +Algorithm is either hmac, rsa, or ecdsa. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/env_var_name)[config/authentication_portals/crypto_key_configs/env_var_name](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/env_var_name/) +EnvVarName is the name of environment variables holding either the value of a key or the path a directory or file containing a key. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/env_var_type)[config/authentication_portals/crypto_key_configs/env_var_type](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/env_var_type/) +EnvVarType indicates how to interpret the value found in the EnvVarName. If it is blank, then the assumption is the environment variable value contains either public or private key. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/env_var_value)[config/authentication_portals/crypto_key_configs/env_var_value](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/env_var_value/) +EnvVarValue is the value associated with the environment variable set by EnvVarName. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/file_path)[config/authentication_portals/crypto_key_configs/file_path](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/file_path/) +FilePath is the path of a file containing either private or public key. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/dir_path)[config/authentication_portals/crypto_key_configs/dir_path](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/dir_path/) +DirPath is the path to a directory containing crypto keys. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/token_lifetime)[config/authentication_portals/crypto_key_configs/token_lifetime](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/token_lifetime/) +TokenLifetime is the expected token grant lifetime in seconds. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/token_secret)[config/authentication_portals/crypto_key_configs/token_secret](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/token_secret/) +Secret is the shared key used with HMAC algorithm. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/token_sign_method)[config/authentication_portals/crypto_key_configs/token_sign_method](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/token_sign_method/) +PreferredSignMethod is the preferred method to sign tokens, e.g. all HMAC keys could use HS256, HS384, and HS512 methods. By default, the preferred method is HS512. However, one may prefer using HS256. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_configs/token_eval_expr)[config/authentication_portals/crypto_key_configs/token_eval_expr](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_configs/token_eval_expr/) +EvalExpr is a list of expressions evaluated whether a specific key should be used for signing and verification. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/crypto_key_store_config)[config/authentication_portals/crypto_key_store_config](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/crypto_key_store_config/) +CryptoKeyStoreConfig hold the default configuration for the keys, e.g. token name and lifetime. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/token_grantor_options)[config/authentication_portals/token_grantor_options](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/token_grantor_options/) +TokenGrantorOptions holds the configuration for the tokens issues by Authenticator. + +TokenGrantorOptions provides options for TokenGrantor. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/token_grantor_options/enable_source_address)[config/authentication_portals/token_grantor_options/enable_source_address](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/token_grantor_options/enable_source_address/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/api)[config/authentication_portals/api](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/api/) +API holds the configuration for API endpoints. + +APIConfig holds the configuration for API endpoints. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authentication_portals/api/enabled)[config/authentication_portals/api/enabled](https://caddyserver.com/docs/json/apps/security/config/authentication_portals/api/enabled/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies)[config/authorization_policies](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/) +PolicyConfig is Gatekeeper configuration. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/name)[config/authorization_policies/name](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_url_path)[config/authorization_policies/auth_url_path](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_url_path/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/disable_auth_redirect)[config/authorization_policies/disable_auth_redirect](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/disable_auth_redirect/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/disable_auth_redirect_query)[config/authorization_policies/disable_auth_redirect_query](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/disable_auth_redirect_query/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_redirect_query_param)[config/authorization_policies/auth_redirect_query_param](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_redirect_query_param/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_redirect_status_code)[config/authorization_policies/auth_redirect_status_code](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_redirect_status_code/) +The status code for the HTTP redirect for non-authorized users. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/redirect_with_javascript)[config/authorization_policies/redirect_with_javascript](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/redirect_with_javascript/) +Enable the redirect with Javascript, as opposed to HTTP redirect. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/bypass_configs)[config/authorization_policies/bypass_configs](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/bypass_configs/) +The list of URI prefixes which bypass authorization. + +Config contains the entry for the authorization bypass. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/bypass_configs/match_type)[config/authorization_policies/bypass_configs/match_type](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/bypass_configs/match_type/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/bypass_configs/uri)[config/authorization_policies/bypass_configs/uri](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/bypass_configs/uri/) +There are no docs for this property. + +The list of mappings between header names and field names. + +Config contains the entry for the HTTP header injection. + +There are no docs for this property. + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/access_list_rules)[config/authorization_policies/access_list_rules](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/access_list_rules/) +RuleConfiguration consists of a list of conditions and and actions + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/access_list_rules/conditions)[config/authorization_policies/access_list_rules/conditions](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/access_list_rules/conditions/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/access_list_rules/action)[config/authorization_policies/access_list_rules/action](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/access_list_rules/action/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs)[config/authorization_policies/crypto_key_configs](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/) +CryptoKeyConfig is common token-related configuration settings. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/seq)[config/authorization_policies/crypto_key_configs/seq](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/seq/) +Seq is the order in which a key would be processed. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/id)[config/authorization_policies/crypto_key_configs/id](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/id/) +ID is the key ID, aka kid. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/usage)[config/authorization_policies/crypto_key_configs/usage](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/usage/) +Usage is the intended key usage. The values are: sign, verify, both, or auto. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/token_name)[config/authorization_policies/crypto_key_configs/token_name](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/token_name/) +TokenName is the token name associated with the key. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/source)[config/authorization_policies/crypto_key_configs/source](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/source/) +Source is either config or env. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/algorithm)[config/authorization_policies/crypto_key_configs/algorithm](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/algorithm/) +Algorithm is either hmac, rsa, or ecdsa. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/env_var_name)[config/authorization_policies/crypto_key_configs/env_var_name](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/env_var_name/) +EnvVarName is the name of environment variables holding either the value of a key or the path a directory or file containing a key. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/env_var_type)[config/authorization_policies/crypto_key_configs/env_var_type](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/env_var_type/) +EnvVarType indicates how to interpret the value found in the EnvVarName. If it is blank, then the assumption is the environment variable value contains either public or private key. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/env_var_value)[config/authorization_policies/crypto_key_configs/env_var_value](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/env_var_value/) +EnvVarValue is the value associated with the environment variable set by EnvVarName. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/file_path)[config/authorization_policies/crypto_key_configs/file_path](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/file_path/) +FilePath is the path of a file containing either private or public key. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/dir_path)[config/authorization_policies/crypto_key_configs/dir_path](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/dir_path/) +DirPath is the path to a directory containing crypto keys. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/token_lifetime)[config/authorization_policies/crypto_key_configs/token_lifetime](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/token_lifetime/) +TokenLifetime is the expected token grant lifetime in seconds. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/token_secret)[config/authorization_policies/crypto_key_configs/token_secret](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/token_secret/) +Secret is the shared key used with HMAC algorithm. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/token_sign_method)[config/authorization_policies/crypto_key_configs/token_sign_method](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/token_sign_method/) +PreferredSignMethod is the preferred method to sign tokens, e.g. all HMAC keys could use HS256, HS384, and HS512 methods. By default, the preferred method is HS512. However, one may prefer using HS256. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_configs/token_eval_expr)[config/authorization_policies/crypto_key_configs/token_eval_expr](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_configs/token_eval_expr/) +EvalExpr is a list of expressions evaluated whether a specific key should be used for signing and verification. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/crypto_key_store_config)[config/authorization_policies/crypto_key_store_config](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/crypto_key_store_config/) +CryptoKeyStoreConfig hold the default configuration for the keys, e.g. token name and lifetime. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_proxy_config)[config/authorization_policies/auth_proxy_config](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_proxy_config/) +Config is a config for an identity provider. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_proxy_config/portal_name)[config/authorization_policies/auth_proxy_config/portal_name](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_proxy_config/portal_name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_proxy_config/basic_auth)[config/authorization_policies/auth_proxy_config/basic_auth](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_proxy_config/basic_auth/) +BasicAuthConfig is a config for basic authentication. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_proxy_config/basic_auth/enabled)[config/authorization_policies/auth_proxy_config/basic_auth/enabled](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_proxy_config/basic_auth/enabled/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_proxy_config/basic_auth/realms)[config/authorization_policies/auth_proxy_config/basic_auth/realms](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_proxy_config/basic_auth/realms/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_proxy_config/api_key_auth)[config/authorization_policies/auth_proxy_config/api_key_auth](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_proxy_config/api_key_auth/) +APIKeyAuthConfig is a config for API key-based authentication. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_proxy_config/api_key_auth/enabled)[config/authorization_policies/auth_proxy_config/api_key_auth/enabled](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_proxy_config/api_key_auth/enabled/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/auth_proxy_config/api_key_auth/realms)[config/authorization_policies/auth_proxy_config/api_key_auth/realms](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/auth_proxy_config/api_key_auth/realms/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/allowed_token_sources)[config/authorization_policies/allowed_token_sources](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/allowed_token_sources/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/strip_token_enabled)[config/authorization_policies/strip_token_enabled](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/strip_token_enabled/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/forbidden_url)[config/authorization_policies/forbidden_url](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/forbidden_url/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/user_identity_field)[config/authorization_policies/user_identity_field](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/user_identity_field/) +There are no docs for this property. + +Validate HTTP Authorization header. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/validate_method_path)[config/authorization_policies/validate_method_path](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/validate_method_path/) +Validate HTTP method and path. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/validate_access_list_path_claim)[config/authorization_policies/validate_access_list_path_claim](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/validate_access_list_path_claim/) +Validate HTTP path derived from JWT token. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/validate_source_address)[config/authorization_policies/validate_source_address](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/validate_source_address/) +Validate source address matches between HTTP request and JWT token. + +Pass claims from JWT token via HTTP X- headers. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/authorization_policies/login_hint_validators)[config/authorization_policies/login_hint_validators](https://caddyserver.com/docs/json/apps/security/config/authorization_policies/login_hint_validators/) +Validate the login hint which can be passed to the auth provider + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging)[config/messaging](https://caddyserver.com/docs/json/apps/security/config/messaging/) +Config represents a collection of various messaging providers. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/email_providers)[config/messaging/email_providers](https://caddyserver.com/docs/json/apps/security/config/messaging/email_providers/) +EmailProvider represents email messaging provider. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/email_providers/name)[config/messaging/email_providers/name](https://caddyserver.com/docs/json/apps/security/config/messaging/email_providers/name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/email_providers/address)[config/messaging/email_providers/address](https://caddyserver.com/docs/json/apps/security/config/messaging/email_providers/address/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/email_providers/protocol)[config/messaging/email_providers/protocol](https://caddyserver.com/docs/json/apps/security/config/messaging/email_providers/protocol/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/email_providers/credentials)[config/messaging/email_providers/credentials](https://caddyserver.com/docs/json/apps/security/config/messaging/email_providers/credentials/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/email_providers/sender_email)[config/messaging/email_providers/sender_email](https://caddyserver.com/docs/json/apps/security/config/messaging/email_providers/sender_email/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/email_providers/sender_name)[config/messaging/email_providers/sender_name](https://caddyserver.com/docs/json/apps/security/config/messaging/email_providers/sender_name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/email_providers/templates)[config/messaging/email_providers/templates](https://caddyserver.com/docs/json/apps/security/config/messaging/email_providers/templates/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/email_providers/passwordless)[config/messaging/email_providers/passwordless](https://caddyserver.com/docs/json/apps/security/config/messaging/email_providers/passwordless/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/email_providers/blind_carbon_copy)[config/messaging/email_providers/blind_carbon_copy](https://caddyserver.com/docs/json/apps/security/config/messaging/email_providers/blind_carbon_copy/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/file_providers)[config/messaging/file_providers](https://caddyserver.com/docs/json/apps/security/config/messaging/file_providers/) +FileProvider represents file messaging provider which writes messages to a local file system, + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/file_providers/name)[config/messaging/file_providers/name](https://caddyserver.com/docs/json/apps/security/config/messaging/file_providers/name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/file_providers/root_dir)[config/messaging/file_providers/root_dir](https://caddyserver.com/docs/json/apps/security/config/messaging/file_providers/root_dir/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/messaging/file_providers/templates)[config/messaging/file_providers/templates](https://caddyserver.com/docs/json/apps/security/config/messaging/file_providers/templates/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/identity_stores)[config/identity_stores](https://caddyserver.com/docs/json/apps/security/config/identity_stores/) +IdentityStoreConfig represents an identity store configuration. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/identity_stores/name)[config/identity_stores/name](https://caddyserver.com/docs/json/apps/security/config/identity_stores/name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/identity_stores/kind)[config/identity_stores/kind](https://caddyserver.com/docs/json/apps/security/config/identity_stores/kind/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/identity_stores/params)[config/identity_stores/params](https://caddyserver.com/docs/json/apps/security/config/identity_stores/params/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/identity_providers)[config/identity_providers](https://caddyserver.com/docs/json/apps/security/config/identity_providers/) +IdentityProviderConfig represents an identity provider configuration. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/identity_providers/name)[config/identity_providers/name](https://caddyserver.com/docs/json/apps/security/config/identity_providers/name/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/identity_providers/kind)[config/identity_providers/kind](https://caddyserver.com/docs/json/apps/security/config/identity_providers/kind/) +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/json/apps/security/#config/identity_providers/params)[config/identity_providers/params](https://caddyserver.com/docs/json/apps/security/config/identity_providers/params/) +There are no docs for this property. diff --git a/docs/caddy/json/apps/ssh.md b/docs/caddy/json/apps/ssh.md new file mode 100644 index 0000000..a4ad818 --- /dev/null +++ b/docs/caddy/json/apps/ssh.md @@ -0,0 +1,114 @@ +Title: apps/ssh - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/ssh/ + +Markdown Content: +``` +{▾ "grace_period": 0, "servers": { + "": {▾ "address": "", "localforward": {•••}, "reverseforward": {•••}, "pty": {•••}, "idle_timeout": 0, "max_timeout": 0, "authorize": {•••}, "subsystems": {•••}, "configs": [{▾ "match": [{•••}], "config": {•••} }], "actors": [{▾ "match": [{•••}], "act": {•••}, "final": false }] } + }} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal` + +Description[🔗](https://caddyserver.com/docs/json/apps/ssh/#docs "Direct link") +------------------------------------------------------------------------------- + +SSH is the app providing ssh services + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#grace_period)[grace_period](https://caddyserver.com/docs/json/apps/ssh/grace_period/) +GracePeriod is the duration a server should wait for open connections to close during shutdown before closing them forcefully + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers)[servers](https://caddyserver.com/docs/json/apps/ssh/servers/) +The set of ssh servers keyed by custom names + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/address)[servers/address](https://caddyserver.com/docs/json/apps/ssh/servers/address/) +Socket addresses to which to bind listeners. Accepts [network addresses](https://caddyserver.com/docs/conventions#network-addresses) that may include port ranges. Listener addresses must be unique; they cannot be repeated across all defined servers. TCP is the only acceptable network (for now, perhaps). + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/localforward)[servers/localforward](https://caddyserver.com/docs/json/apps/ssh/servers/localforward/) +The configuration of local-forward permission module. The config structure is: "localforward": { "forward": "" ... config } defaults to: { "forward": "deny" } + +Fulfilled by modules in namespace: **ssh.ask.localforward** + +* [allow](https://caddyserver.com/docs/json/apps/ssh/servers/localforward/allow/)Non-standard +* [allow](https://caddyserver.com/docs/json/apps/ssh/servers/localforward/allow/)Non-standard +* [deny](https://caddyserver.com/docs/json/apps/ssh/servers/localforward/deny/)Non-standard +* [deny](https://caddyserver.com/docs/json/apps/ssh/servers/localforward/deny/)Non-standard + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/reverseforward)[servers/reverseforward](https://caddyserver.com/docs/json/apps/ssh/servers/reverseforward/) +The configuration of reverse-forward permission module. The config structure is: "reverseforward": { "forward": "" ... config } defaults to: { "reverseforward": "deny" } + +Fulfilled by modules in namespace: **ssh.ask.reverseforward** + +* [allow](https://caddyserver.com/docs/json/apps/ssh/servers/reverseforward/allow/)Non-standard +* [allow](https://caddyserver.com/docs/json/apps/ssh/servers/reverseforward/allow/)Non-standard +* [deny](https://caddyserver.com/docs/json/apps/ssh/servers/reverseforward/deny/)Non-standard +* [deny](https://caddyserver.com/docs/json/apps/ssh/servers/reverseforward/deny/)Non-standard + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/pty)[servers/pty](https://caddyserver.com/docs/json/apps/ssh/servers/pty/) +The configuration of PTY permission module. The config structure is: "pty": { "pty": "" ... config } defaults to: { "forward": "deny" } + +Fulfilled by modules in namespace: **ssh.ask.pty** + +* [allow](https://caddyserver.com/docs/json/apps/ssh/servers/pty/allow/)Non-standard +* [allow](https://caddyserver.com/docs/json/apps/ssh/servers/pty/allow/)Non-standard +* [deny](https://caddyserver.com/docs/json/apps/ssh/servers/pty/deny/)Non-standard +* [deny](https://caddyserver.com/docs/json/apps/ssh/servers/pty/deny/)Non-standard + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/idle_timeout)[servers/idle_timeout](https://caddyserver.com/docs/json/apps/ssh/servers/idle_timeout/) +connection timeout when no activity, none if empty + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/max_timeout)[servers/max_timeout](https://caddyserver.com/docs/json/apps/ssh/servers/max_timeout/) +absolute connection timeout, none if empty + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/authorize)[servers/authorize](https://caddyserver.com/docs/json/apps/ssh/servers/authorize/) +The configuration of the authorizer module. The config structure is: "authorize": { "authorizer": "" ... config } default to: { "authorizer": "public" }. + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/subsystems)[servers/subsystems](https://caddyserver.com/docs/json/apps/ssh/servers/subsystems/) +The list of defined subsystems in a json structure keyed by the arbitrary name of the subsystem. TODO: The current implementation is naive and can be expanded to follow the Authorzation and Actors model + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/configs)[servers/configs](https://caddyserver.com/docs/json/apps/ssh/servers/configs/) +List of configurators that could configure the server per matchers and config providers + +Configurator holds the set of matchers and configurators that will apply custom server configurations if matched + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/configs/match)[servers/configs/match](https://caddyserver.com/docs/json/apps/ssh/servers/configs/match/) +The set of matchers consulted to know whether the Actor should act on a session + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/configs/config)[servers/configs/config](https://caddyserver.com/docs/json/apps/ssh/servers/configs/config/) +The config provider that shall configure the server for the matched session. "config": { "loader": "" ... config loader config } + +Fulfilled by modules in namespace: **ssh.config.loaders** + +* [provided](https://caddyserver.com/docs/json/apps/ssh/servers/configs/config/provided/)Non-standard +* [provided](https://caddyserver.com/docs/json/apps/ssh/servers/configs/config/provided/)Non-standard + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/actors)[servers/actors](https://caddyserver.com/docs/json/apps/ssh/servers/actors/) +The actors that can act on a session per the matching criteria + +Actor is a collection of actor matchers and actors of an ssh session + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/actors/match)[servers/actors/match](https://caddyserver.com/docs/json/apps/ssh/servers/actors/match/) +The set of matchers consulted to know whether the Actor should act on a session + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/actors/act)[servers/actors/act](https://caddyserver.com/docs/json/apps/ssh/servers/actors/act/) +The actor that shall act on the matched session. "act": { "action": "" ... actor config } + +[🔗](https://caddyserver.com/docs/json/apps/ssh/#servers/actors/final)[servers/actors/final](https://caddyserver.com/docs/json/apps/ssh/servers/actors/final/) +Whether the session shoul be closed upon execution of the actor diff --git a/docs/caddy/json/apps/supervisor.md b/docs/caddy/json/apps/supervisor.md new file mode 100644 index 0000000..095400b --- /dev/null +++ b/docs/caddy/json/apps/supervisor.md @@ -0,0 +1,74 @@ +Title: apps/supervisor - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/supervisor/ + +Markdown Content: +``` +{▾ "supervise": [{▾ "command": [""], "replicas": 0, "dir": "", "env": { + "": "" + }, "redirect_stdout": {▾ "type": "", "file": "" }, "redirect_stderr": {▾ "type": "", "file": "" }, "restart_policy": "", "termination_grace_period": "" }]} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/baldinof/caddy-supervisor](https://github.com/baldinof/caddy-supervisor)** + +**Custom builds:**`xcaddy build --with github.com/baldinof/caddy-supervisor` + +Description[🔗](https://caddyserver.com/docs/json/apps/supervisor/#docs "Direct link") +-------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise)[supervise](https://caddyserver.com/docs/json/apps/supervisor/supervise/) +Definition is the configuration for process to supervise + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/command)[supervise/command](https://caddyserver.com/docs/json/apps/supervisor/supervise/command/) +Command to start and supervise. First item is the program to start, others are arguments. Supports template. + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/replicas)[supervise/replicas](https://caddyserver.com/docs/json/apps/supervisor/supervise/replicas/) +Replicas control how many instances of Command should run. + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/dir)[supervise/dir](https://caddyserver.com/docs/json/apps/supervisor/supervise/dir/) +Dir defines the working directory the command should be executed in. Supports template. Default: current working dir + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/env)[supervise/env](https://caddyserver.com/docs/json/apps/supervisor/supervise/env/) +Env declares environment variables that should be passed to command. Supports template. + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/redirect_stdout)[supervise/redirect_stdout](https://caddyserver.com/docs/json/apps/supervisor/supervise/redirect_stdout/) +RedirectStdout is the file where Command stdout is written. Use "stdout" to redirect to caddy stdout. + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/redirect_stdout/type)[supervise/redirect_stdout/type](https://caddyserver.com/docs/json/apps/supervisor/supervise/redirect_stdout/type/) +Type is how the output should be redirected Valid values: + +* **null**: discard outputs +* **stdout**: redirect output to caddy process stdout +* **stderr**: redirect output to caddy process stderr +* **file**: redirect output to a file, if selected File field is required + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/redirect_stdout/file)[supervise/redirect_stdout/file](https://caddyserver.com/docs/json/apps/supervisor/supervise/redirect_stdout/file/) +File is the file where outputs should be written. This is used only when Type is "file". + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/redirect_stderr)[supervise/redirect_stderr](https://caddyserver.com/docs/json/apps/supervisor/supervise/redirect_stderr/) +RedirectStderr is the file where Command stderr is written. Use "stderr" to redirect to caddy stderr. + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/redirect_stderr/type)[supervise/redirect_stderr/type](https://caddyserver.com/docs/json/apps/supervisor/supervise/redirect_stderr/type/) +Type is how the output should be redirected Valid values: + +* **null**: discard outputs +* **stdout**: redirect output to caddy process stdout +* **stderr**: redirect output to caddy process stderr +* **file**: redirect output to a file, if selected File field is required + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/redirect_stderr/file)[supervise/redirect_stderr/file](https://caddyserver.com/docs/json/apps/supervisor/supervise/redirect_stderr/file/) +File is the file where outputs should be written. This is used only when Type is "file". + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/restart_policy)[supervise/restart_policy](https://caddyserver.com/docs/json/apps/supervisor/supervise/restart_policy/) +RestartPolicy define under which conditions the command should be restarted after exit. Valid values: + +* **never**: do not restart the command +* **on_failure**: restart if exit code is not 0 +* **always**: always restart + +RestartPolicy determines when a supervised process should be restarted + +[🔗](https://caddyserver.com/docs/json/apps/supervisor/#supervise/termination_grace_period)[supervise/termination_grace_period](https://caddyserver.com/docs/json/apps/supervisor/supervise/termination_grace_period/) +TerminationGracePeriod defines the amount of time to wait for Command graceful termination before killing it. Ex: 10s diff --git a/docs/caddy/json/apps/tls.md b/docs/caddy/json/apps/tls.md new file mode 100644 index 0000000..1988bcd --- /dev/null +++ b/docs/caddy/json/apps/tls.md @@ -0,0 +1,165 @@ +Title: apps/tls - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/apps/tls/ + +Markdown Content: +``` +{▾ "certificates": {•••}, "automation": {▾ "policies": [{▾ "subjects": [""], "issuers": [{•••}], "get_certificate": [{•••}], "must_staple": false, "renewal_window_ratio": 0, "key_type": "", "storage": {•••}, "on_demand": false, "reuse_private_keys": false, "disable_ocsp_stapling": false, "ocsp_overrides": { + "": "" + } }], "on_demand": {▾ "ask": "", "permission": {•••} }, "ocsp_interval": 0, "renew_interval": 0, "storage_clean_interval": 0 }, "session_tickets": {▾ "key_source": {•••}, "rotation_interval": 0, "max_keys": 0, "disable_rotation": false, "disabled": false }, "cache": {▾ "capacity": 0 }, "disable_ocsp_stapling": false, "disable_storage_check": false, "disable_storage_clean": false} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/apps/tls/#docs "Direct link") +------------------------------------------------------------------------------- + +TLS provides TLS facilities including certificate loading and management, client auth, and more. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#certificates)[certificates](https://caddyserver.com/docs/json/apps/tls/certificates/) +Certificates to load into memory for quick recall during TLS handshakes. Each key is the name of a certificate loader module. + +The "automate" certificate loader module can be used to specify a list of subjects that need certificates to be managed automatically. The first matching automation policy will be applied to manage the certificate(s). + +All loaded certificates get pooled into the same cache and may be used to complete TLS handshakes for the relevant server names (SNI). Certificates loaded manually (anything other than "automate") are not automatically managed and will have to be refreshed manually before they expire. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation)[automation](https://caddyserver.com/docs/json/apps/tls/automation/) +Configures certificate automation. + +AutomationConfig governs the automated management of TLS certificates. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies)[automation/policies](https://caddyserver.com/docs/json/apps/tls/automation/policies/) +The list of automation policies. The first policy matching a certificate or subject name will be applied. + +AutomationPolicy designates the policy for automating the management (obtaining, renewal, and revocation) of managed TLS certificates. + +An AutomationPolicy value is not valid until it has been provisioned; use the `AddAutomationPolicy()` method on the TLS app to properly provision a new policy. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/subjects)[automation/policies/subjects](https://caddyserver.com/docs/json/apps/tls/automation/policies/subjects/) +Which subjects (hostnames or IP addresses) this policy applies to. + +This list is a filter, not a command. In other words, it is used only to filter whether this policy should apply to a subject that needs a certificate; it does NOT command the TLS app to manage a certificate for that subject. To have Caddy automate a certificate or specific subjects, use the "automate" certificate loader module of the TLS app. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/issuers)[automation/policies/issuers](https://caddyserver.com/docs/json/apps/tls/automation/policies/issuers/) +The modules that may issue certificates. Default: internal if all subjects do not qualify for public certificates; otherwise acme and zerossl. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/get_certificate)[automation/policies/get_certificate](https://caddyserver.com/docs/json/apps/tls/automation/policies/get_certificate/) +Modules that can get a custom certificate to use for any given TLS handshake at handshake-time. Custom certificates can be useful if another entity is managing certificates and Caddy need only get it and serve it. Specifying a Manager enables on-demand TLS, i.e. it has the side-effect of setting the on_demand parameter to `true`. + +TODO: This is an EXPERIMENTAL feature. Subject to change or removal. + +Fulfilled by modules in namespace: **tls.get_certificate** + +* [http](https://caddyserver.com/docs/json/apps/tls/automation/policies/get_certificate/http/) +* [tailscale](https://caddyserver.com/docs/json/apps/tls/automation/policies/get_certificate/tailscale/) +* [file](https://caddyserver.com/docs/json/apps/tls/automation/policies/get_certificate/file/)Non-standard +* [pfx](https://caddyserver.com/docs/json/apps/tls/automation/policies/get_certificate/pfx/)Non-standard + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/must_staple)[automation/policies/must_staple](https://caddyserver.com/docs/json/apps/tls/automation/policies/must_staple/) +If true, certificates will be requested with MustStaple. Not all CAs support this, and there are potentially serious consequences of enabling this feature without proper threat modeling. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/renewal_window_ratio)[automation/policies/renewal_window_ratio](https://caddyserver.com/docs/json/apps/tls/automation/policies/renewal_window_ratio/) +How long before a certificate's expiration to try renewing it, as a function of its total lifetime. As a general and conservative rule, it is a good idea to renew a certificate when it has about 1/3 of its total lifetime remaining. This utilizes the majority of the certificate's lifetime while still saving time to troubleshoot problems. However, for extremely short-lived certs, you may wish to increase the ratio to ~1/2. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/key_type)[automation/policies/key_type](https://caddyserver.com/docs/json/apps/tls/automation/policies/key_type/) +The type of key to generate for certificates. Supported values: `ed25519`, `p256`, `p384`, `rsa2048`, `rsa4096`. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/storage)[automation/policies/storage](https://caddyserver.com/docs/json/apps/tls/automation/policies/storage/) +Optionally configure a separate storage module associated with this manager, instead of using Caddy's global/default-configured storage. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/on_demand)[automation/policies/on_demand](https://caddyserver.com/docs/json/apps/tls/automation/policies/on_demand/) +If true, certificates will be managed "on demand"; that is, during TLS handshakes or when needed, as opposed to at startup or config load. This enables On-Demand TLS for this policy. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/reuse_private_keys)[automation/policies/reuse_private_keys](https://caddyserver.com/docs/json/apps/tls/automation/policies/reuse_private_keys/) +If true, private keys already existing in storage will be reused. Otherwise, a new key will be created for every new certificate to mitigate pinning and reduce the scope of key compromise. TEMPORARY: Key pinning is against industry best practices. This property will likely be removed in the future. Do not rely on it forever; watch the release notes. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/disable_ocsp_stapling)[automation/policies/disable_ocsp_stapling](https://caddyserver.com/docs/json/apps/tls/automation/policies/disable_ocsp_stapling/) +Disables OCSP stapling. Disabling OCSP stapling puts clients at greater risk, reduces their privacy, and usually lowers client performance. It is NOT recommended to disable this unless you are able to justify the costs. EXPERIMENTAL. Subject to change. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/policies/ocsp_overrides)[automation/policies/ocsp_overrides](https://caddyserver.com/docs/json/apps/tls/automation/policies/ocsp_overrides/) +Overrides the URLs of OCSP responders embedded in certificates. Each key is a OCSP server URL to override, and its value is the replacement. An empty value will disable querying of that server. EXPERIMENTAL. Subject to change. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/on_demand)[automation/on_demand](https://caddyserver.com/docs/json/apps/tls/automation/on_demand/) +On-Demand TLS defers certificate operations to the moment they are needed, e.g. during a TLS handshake. Useful when you don't know all the hostnames at config-time, or when you are not in control of the domain names you are managing certificates for. In 2015, Caddy became the first web server to implement this experimental technology. + +Note that this field does not enable on-demand TLS; it only configures it for when it is used. To enable it, create an automation policy with `on_demand`. + +OnDemandConfig configures on-demand TLS, for obtaining needed certificates at handshake-time. Because this feature can easily be abused, Caddy must ask permission to your application whether a particular domain is allowed to have a certificate issued for it. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/on_demand/ask)[automation/on_demand/ask](https://caddyserver.com/docs/json/apps/tls/automation/on_demand/ask/) +Deprecated. WILL BE REMOVED SOON. Use 'permission' instead with the `http` module. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/on_demand/permission)[automation/on_demand/permission](https://caddyserver.com/docs/json/apps/tls/automation/on_demand/permission/) +REQUIRED. A module that will determine whether a certificate is allowed to be loaded from storage or obtained from an issuer on demand. + +Fulfilled by modules in namespace: **tls.permission** + +* [http](https://caddyserver.com/docs/json/apps/tls/automation/on_demand/permission/http/) + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/ocsp_interval)[automation/ocsp_interval](https://caddyserver.com/docs/json/apps/tls/automation/ocsp_interval/) +Caddy staples OCSP (and caches the response) for all qualifying certificates by default. This setting changes how often it scans responses for freshness, and updates them if they are getting stale. Default: 1h + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/renew_interval)[automation/renew_interval](https://caddyserver.com/docs/json/apps/tls/automation/renew_interval/) +Every so often, Caddy will scan all loaded, managed certificates for expiration. This setting changes how frequently the scan for expiring certificates is performed. Default: 10m + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#automation/storage_clean_interval)[automation/storage_clean_interval](https://caddyserver.com/docs/json/apps/tls/automation/storage_clean_interval/) +How often to scan storage units for old or expired assets and remove them. These scans exert lots of reads (and list operations) on the storage module, so choose a longer interval for large deployments. Default: 24h + +Storage will always be cleaned when the process first starts. Then, a new cleaning will be started this duration after the previous cleaning started if the previous cleaning finished in less than half the time of this interval (otherwise next start will be skipped). + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#session_tickets)[session_tickets](https://caddyserver.com/docs/json/apps/tls/session_tickets/) +Configures session ticket ephemeral keys (STEKs). + +SessionTicketService configures and manages TLS session tickets. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#session_tickets/key_source)[session_tickets/key_source](https://caddyserver.com/docs/json/apps/tls/session_tickets/key_source/) +KeySource is the method by which Caddy produces or obtains TLS session ticket keys (STEKs). By default, Caddy generates them internally using a secure pseudorandom source. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#session_tickets/rotation_interval)[session_tickets/rotation_interval](https://caddyserver.com/docs/json/apps/tls/session_tickets/rotation_interval/) +How often Caddy rotates STEKs. Default: 12h. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#session_tickets/max_keys)[session_tickets/max_keys](https://caddyserver.com/docs/json/apps/tls/session_tickets/max_keys/) +The maximum number of keys to keep in rotation. Default: 4. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#session_tickets/disable_rotation)[session_tickets/disable_rotation](https://caddyserver.com/docs/json/apps/tls/session_tickets/disable_rotation/) +Disables STEK rotation. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#session_tickets/disabled)[session_tickets/disabled](https://caddyserver.com/docs/json/apps/tls/session_tickets/disabled/) +Disables TLS session resumption by tickets. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#cache)[cache](https://caddyserver.com/docs/json/apps/tls/cache/) +Configures the in-memory certificate cache. + +CertCacheOptions configures the certificate cache. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#cache/capacity)[cache/capacity](https://caddyserver.com/docs/json/apps/tls/cache/capacity/) +Maximum number of certificates to allow in the cache. If reached, certificates will be randomly evicted to make room for new ones. Default: 10,000 + +[🔗](https://caddyserver.com/docs/json/apps/tls/#disable_ocsp_stapling)[disable_ocsp_stapling](https://caddyserver.com/docs/json/apps/tls/disable_ocsp_stapling/) +Disables OCSP stapling for manually-managed certificates only. To configure OCSP stapling for automated certificates, use an automation policy instead. + +Disabling OCSP stapling puts clients at greater risk, reduces their privacy, and usually lowers client performance. It is NOT recommended to disable this unless you are able to justify the costs. EXPERIMENTAL. Subject to change. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#disable_storage_check)[disable_storage_check](https://caddyserver.com/docs/json/apps/tls/disable_storage_check/) +Disables checks in certmagic that the configured storage is ready and able to handle writing new content to it. These checks are intended to prevent information loss (newly issued certificates), but can be expensive on the storage. + +Disabling these checks should only be done when the storage can be trusted to have enough capacity and no other problems. EXPERIMENTAL. Subject to change. + +[🔗](https://caddyserver.com/docs/json/apps/tls/#disable_storage_clean)[disable_storage_clean](https://caddyserver.com/docs/json/apps/tls/disable_storage_clean/) +Disables the automatic cleanup of the storage backend. This is useful when TLS is not being used to store certificates and the user wants run their server in a read-only mode. + +Storage cleaning creates two files: instance.uuid and last_clean.json. The instance.uuid file is used to identify the instance of Caddy in a cluster. The last_clean.json file is used to store the last time the storage was cleaned. EXPERIMENTAL. Subject to change. diff --git a/docs/caddy/json/logging.md b/docs/caddy/json/logging.md new file mode 100644 index 0000000..d268d3c --- /dev/null +++ b/docs/caddy/json/logging.md @@ -0,0 +1,73 @@ +Title: logging - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/logging/ + +Markdown Content: +``` +{▾ "sink": {▾ "writer": {•••} }, "logs": { + "": {▾ "writer": {•••}, "encoder": {•••}, "level": "", "sampling": {▾ "interval": 0, "first": 0, "thereafter": 0 }, "include": [""], "exclude": [""] } + }} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/logging/#docs "Direct link") +------------------------------------------------------------------------------ + +Logging facilitates logging within Caddy. The default log is called "default" and you can customize it. You can also define additional logs. + +By default, all logs at INFO level and higher are written to standard error ("stderr" writer) in a human-readable format ("console" encoder if stdout is an interactive terminal, "json" encoder otherwise). + +All defined logs accept all log entries by default, but you can filter by level and module/logger names. A logger's name is the same as the module's name, but a module may append to logger names for more specificity. For example, you can filter logs emitted only by HTTP handlers using the name "http.handlers", because all HTTP handler module names have that prefix. + +Caddy logs (except the sink) are zero-allocation, so they are very high-performing in terms of memory and CPU time. Enabling sampling can further increase throughput on extremely high-load servers. + +[🔗](https://caddyserver.com/docs/json/logging/#sink)[sink](https://caddyserver.com/docs/json/logging/sink/) +Sink is the destination for all unstructured logs emitted from Go's standard library logger. These logs are common in dependencies that are not designed specifically for use in Caddy. Because it is global and unstructured, the sink lacks most advanced features and customizations. + +StandardLibLog configures the default Go standard library global logger in the log package. This is necessary because module dependencies which are not built specifically for Caddy will use the standard logger. This is also known as the "sink" logger. + +[🔗](https://caddyserver.com/docs/json/logging/#sink/writer)[sink/writer](https://caddyserver.com/docs/json/logging/sink/writer/) +The module that writes out log entries for the sink. + +[🔗](https://caddyserver.com/docs/json/logging/#logs)[logs](https://caddyserver.com/docs/json/logging/logs/) +Logs are your logs, keyed by an arbitrary name of your choosing. The default log can be customized by defining a log called "default". You can further define other logs and filter what kinds of entries they accept. + +CustomLog represents a custom logger configuration. + +By default, a log will emit all log entries. Some entries will be skipped if sampling is enabled. Further, the Include and Exclude parameters define which loggers (by name) are allowed or rejected from emitting in this log. If both Include and Exclude are populated, their values must be mutually exclusive, and longer namespaces have priority. If neither are populated, all logs are emitted. + +[🔗](https://caddyserver.com/docs/json/logging/#logs/writer)[logs/writer](https://caddyserver.com/docs/json/logging/logs/writer/) +The writer defines where log entries are emitted. + +[🔗](https://caddyserver.com/docs/json/logging/#logs/encoder)[logs/encoder](https://caddyserver.com/docs/json/logging/logs/encoder/) +The encoder is how the log entries are formatted or encoded. + +[🔗](https://caddyserver.com/docs/json/logging/#logs/level)[logs/level](https://caddyserver.com/docs/json/logging/logs/level/) +Level is the minimum level to emit, and is inclusive. Possible levels: DEBUG, INFO, WARN, ERROR, PANIC, and FATAL + +[🔗](https://caddyserver.com/docs/json/logging/#logs/sampling)[logs/sampling](https://caddyserver.com/docs/json/logging/logs/sampling/) +Sampling configures log entry sampling. If enabled, only some log entries will be emitted. This is useful for improving performance on extremely high-pressure servers. + +LogSampling configures log entry sampling. + +[🔗](https://caddyserver.com/docs/json/logging/#logs/sampling/interval)[logs/sampling/interval](https://caddyserver.com/docs/json/logging/logs/sampling/interval/) +The window over which to conduct sampling. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/json/logging/#logs/sampling/first)[logs/sampling/first](https://caddyserver.com/docs/json/logging/logs/sampling/first/) +Log this many entries within a given level and message for each interval. + +[🔗](https://caddyserver.com/docs/json/logging/#logs/sampling/thereafter)[logs/sampling/thereafter](https://caddyserver.com/docs/json/logging/logs/sampling/thereafter/) +If more entries with the same level and message are seen during the same interval, keep one in this many entries until the end of the interval. + +[🔗](https://caddyserver.com/docs/json/logging/#logs/include)[logs/include](https://caddyserver.com/docs/json/logging/logs/include/) +Include defines the names of loggers to emit in this log. For example, to include only logs emitted by the admin API, you would include "admin.api". + +[🔗](https://caddyserver.com/docs/json/logging/#logs/exclude)[logs/exclude](https://caddyserver.com/docs/json/logging/logs/exclude/) +Exclude defines the names of loggers that should be skipped by this log. For example, to exclude only HTTP access logs, you would exclude "http.log.access". diff --git a/docs/caddy/json/logging/logs.md b/docs/caddy/json/logging/logs.md new file mode 100644 index 0000000..7dde37e --- /dev/null +++ b/docs/caddy/json/logging/logs.md @@ -0,0 +1,52 @@ +Title: logging/logs - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/logging/logs/ + +Markdown Content: +``` +{ + "": {▾ "writer": {•••}, "encoder": {•••}, "level": "", "sampling": {▾ "interval": 0, "first": 0, "thereafter": 0 }, "include": [""], "exclude": [""] } +} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/logging/logs/#docs "Direct link") +----------------------------------------------------------------------------------- + +Logs are your logs, keyed by an arbitrary name of your choosing. The default log can be customized by defining a log called "default". You can further define other logs and filter what kinds of entries they accept. + +[🔗](https://caddyserver.com/docs/json/logging/logs/#writer)[writer](https://caddyserver.com/docs/json/logging/logs/writer/) +The writer defines where log entries are emitted. + +[🔗](https://caddyserver.com/docs/json/logging/logs/#encoder)[encoder](https://caddyserver.com/docs/json/logging/logs/encoder/) +The encoder is how the log entries are formatted or encoded. + +[🔗](https://caddyserver.com/docs/json/logging/logs/#level)[level](https://caddyserver.com/docs/json/logging/logs/level/) +Level is the minimum level to emit, and is inclusive. Possible levels: DEBUG, INFO, WARN, ERROR, PANIC, and FATAL + +[🔗](https://caddyserver.com/docs/json/logging/logs/#sampling)[sampling](https://caddyserver.com/docs/json/logging/logs/sampling/) +Sampling configures log entry sampling. If enabled, only some log entries will be emitted. This is useful for improving performance on extremely high-pressure servers. + +LogSampling configures log entry sampling. + +[🔗](https://caddyserver.com/docs/json/logging/logs/#sampling/interval)[sampling/interval](https://caddyserver.com/docs/json/logging/logs/sampling/interval/) +The window over which to conduct sampling. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/json/logging/logs/#sampling/first)[sampling/first](https://caddyserver.com/docs/json/logging/logs/sampling/first/) +Log this many entries within a given level and message for each interval. + +[🔗](https://caddyserver.com/docs/json/logging/logs/#sampling/thereafter)[sampling/thereafter](https://caddyserver.com/docs/json/logging/logs/sampling/thereafter/) +If more entries with the same level and message are seen during the same interval, keep one in this many entries until the end of the interval. + +[🔗](https://caddyserver.com/docs/json/logging/logs/#include)[include](https://caddyserver.com/docs/json/logging/logs/include/) +Include defines the names of loggers to emit in this log. For example, to include only logs emitted by the admin API, you would include "admin.api". + +[🔗](https://caddyserver.com/docs/json/logging/logs/#exclude)[exclude](https://caddyserver.com/docs/json/logging/logs/exclude/) +Exclude defines the names of loggers that should be skipped by this log. For example, to exclude only HTTP access logs, you would exclude "http.log.access". diff --git a/docs/caddy/json/logging/sink.md b/docs/caddy/json/logging/sink.md new file mode 100644 index 0000000..549b0f9 --- /dev/null +++ b/docs/caddy/json/logging/sink.md @@ -0,0 +1,115 @@ +Title: logging/sink - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/logging/sink/ + +Markdown Content: +logging/sink - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [logging](https://caddyserver.com/docs/json/logging/) › [sink](https://caddyserver.com/docs/json/logging/sink/) + +`{▾ "writer": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/logging/sink/#docs "Direct link") +----------------------------------------------------------------------------------- + +Sink is the destination for all unstructured logs emitted from Go's standard library logger. These logs are common in dependencies that are not designed specifically for use in Caddy. Because it is global and unstructured, the sink lacks most advanced features and customizations. + +StandardLibLog configures the default Go standard library global logger in the log package. This is necessary because module dependencies which are not built specifically for Caddy will use the standard logger. This is also known as the "sink" logger. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/json/logging/sink/#writer)[writer](https://caddyserver.com/docs/json/logging/sink/writer/) +The module that writes out log entries for the sink. + +Fulfilled by modules in namespace: **caddy.logging.writers** + +* [discard](https://caddyserver.com/docs/json/logging/sink/writer/discard/) +* [file](https://caddyserver.com/docs/json/logging/sink/writer/file/) +* [net](https://caddyserver.com/docs/json/logging/sink/writer/net/) +* [stderr](https://caddyserver.com/docs/json/logging/sink/writer/stderr/) +* [stdout](https://caddyserver.com/docs/json/logging/sink/writer/stdout/) +* [graphite](https://caddyserver.com/docs/json/logging/sink/writer/graphite/)Non-standard +* [influx_log](https://caddyserver.com/docs/json/logging/sink/writer/influx_log/)Non-standard +* [influxlog](https://caddyserver.com/docs/json/logging/sink/writer/influxlog/)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/json/logging/sink/writer.md b/docs/caddy/json/logging/sink/writer.md new file mode 100644 index 0000000..2a6ec42 --- /dev/null +++ b/docs/caddy/json/logging/sink/writer.md @@ -0,0 +1,110 @@ +Title: sink/writer - JSON Config Structure + +URL Source: https://caddyserver.com/docs/json/logging/sink/writer/ + +Markdown Content: +sink/writer - JSON Config Structure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [logging](https://caddyserver.com/docs/json/logging/) › [sink](https://caddyserver.com/docs/json/logging/sink/) › [writer](https://caddyserver.com/docs/json/logging/sink/writer/) + +`{•••}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/logging/sink/writer/#docs "Direct link") +------------------------------------------------------------------------------------------ + +The module that writes out log entries for the sink. + +Fulfilled by modules in namespace: **caddy.logging.writers** + +* [discard](https://caddyserver.com/docs/json/logging/sink/writer/discard/) +* [file](https://caddyserver.com/docs/json/logging/sink/writer/file/) +* [net](https://caddyserver.com/docs/json/logging/sink/writer/net/) +* [stderr](https://caddyserver.com/docs/json/logging/sink/writer/stderr/) +* [stdout](https://caddyserver.com/docs/json/logging/sink/writer/stdout/) +* [graphite](https://caddyserver.com/docs/json/logging/sink/writer/graphite/)Non-standard +* [influx_log](https://caddyserver.com/docs/json/logging/sink/writer/influx_log/)Non-standard +* [influxlog](https://caddyserver.com/docs/json/logging/sink/writer/influxlog/)Non-standard + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/json/storage.md b/docs/caddy/json/storage.md similarity index 51% rename from docs/caddy/docs/docs/json/storage.md rename to docs/caddy/json/storage.md index e9fa62d..10a247e 100644 --- a/docs/caddy/docs/docs/json/storage.md +++ b/docs/caddy/json/storage.md @@ -4,18 +4,20 @@ URL Source: https://caddyserver.com/docs/json/storage/ Markdown Content: storage - JSON Config Structure - Caddy Documentation -=============== -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) Documentation -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) +Search K +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +29,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +42,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,18 +61,47 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +[JSON Config Structure](https://caddyserver.com/docs/json/) › [storage](https://caddyserver.com/docs/json/storage/) + +`{•••}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** -Description ------------ +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/json/storage/#docs "Direct link") +------------------------------------------------------------------------------ + +StorageRaw is a storage module that defines how/where Caddy stores assets (such as TLS certificates). The default storage module is `caddy.storage.file_system` (the local file system), and the default path [depends on the OS and environment](https://caddyserver.com/docs/conventions#data-directory). + +Fulfilled by modules in namespace: **caddy.storage** + +* [file_system](https://caddyserver.com/docs/json/storage/file_system/) +* [cloudflare_kv](https://caddyserver.com/docs/json/storage/cloudflare_kv/)Non-standard +* [consul](https://caddyserver.com/docs/json/storage/consul/)Non-standard +* [consul](https://caddyserver.com/docs/json/storage/consul/)Non-standard +* [consul](https://caddyserver.com/docs/json/storage/consul/)Non-standard +* [dynamodb](https://caddyserver.com/docs/json/storage/dynamodb/)Non-standard +* [dynamodb](https://caddyserver.com/docs/json/storage/dynamodb/)Non-standard +* [encrypted](https://caddyserver.com/docs/json/storage/encrypted/)Non-standard +* [env_redis](https://caddyserver.com/docs/json/storage/env_redis/)Non-standard +* [gcs](https://caddyserver.com/docs/json/storage/gcs/)Non-standard +* [mysql](https://caddyserver.com/docs/json/storage/mysql/)Non-standard +* [nats](https://caddyserver.com/docs/json/storage/nats/)Non-standard +* [postgres](https://caddyserver.com/docs/json/storage/postgres/)Non-standard +* [redis](https://caddyserver.com/docs/json/storage/redis/)Non-standard +* [redis](https://caddyserver.com/docs/json/storage/redis/)Non-standard +* [redis](https://caddyserver.com/docs/json/storage/redis/)Non-standard +* [s3](https://caddyserver.com/docs/json/storage/s3/)Non-standard +* [s3](https://caddyserver.com/docs/json/storage/s3/)Non-standard +* [vault](https://caddyserver.com/docs/json/storage/vault/)Non-standard Field List ---------- @@ -77,9 +110,12 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/logging.md b/docs/caddy/logging.md similarity index 86% rename from docs/caddy/docs/docs/logging.md rename to docs/caddy/logging.md index 5116c11..3eeb467 100644 --- a/docs/caddy/docs/docs/logging.md +++ b/docs/caddy/logging.md @@ -5,29 +5,29 @@ URL Source: https://caddyserver.com/docs/logging Markdown Content: Caddy has powerful and flexible logging facilities, but they may be different than what you're used to, especially if you're coming from more archaic shared hosting or other legacy web servers. -Overview[🔗](https://caddyserver.com/docs/logging#overview "Direct link") -------------------------------------------------------------------------- +Overview +-------- There are two main aspects of logging: emission and consumption. **Emission** means to produce messages. It consists of three steps: -1. Gathering relevant information (context) -2. Building a useful representation (encoding) -3. Sending that representation to an output (writing) +1. Gathering relevant information (context) +2. Building a useful representation (encoding) +3. Sending that representation to an output (writing) This functionality is baked into the core of Caddy, enabling any part of the Caddy code base or that of modules (plugins) to emit logs. **Consumption** is the intake & processing of messages. In order to be useful, emitted logs must be consumed. Logs that are merely written but never read provide no value. Consuming logs can be as simple as an administrator reading console output, or as advanced as attaching a log aggregation tool or cloud service to filter, count, and index log messages. -### Caddy's role[🔗](https://caddyserver.com/docs/logging#caddys-role "Direct link") +### Caddy's role _Caddy is a log emitter_. It does not consume logs, except for the minimum processing required to encode and write logs. This is important because it keeps Caddy's core simpler, leading to fewer bugs and edge cases, while reducing maintenance burden. Ultimately, log processing is out of the scope of Caddy core. However, there's always the possibility for a Caddy app module that consumes logs. (It just doesn't exist yet, to our knowledge.) -Structured logs[🔗](https://caddyserver.com/docs/logging#structured-logs "Direct link") ---------------------------------------------------------------------------------------- +Structured logs +--------------- As with most modern applications, Caddy's logs are _structured_. This means that the information in a message is not simply an opaque string or byte slice. Instead, data remains strongly typed and is keyed by individual _field names_ until it is time to encode the message and write it out. @@ -86,7 +86,7 @@ You can see how the structured log is much more useful and contains much more in Because the logs are structured and strongly-typed, they can be encoded into any format. So if you don't want to work with JSON, logs can be encoded into any other representation. Caddy supports others through [log encoder modules](https://caddyserver.com/docs/json/logging/logs/encoder/), and even more can be added. -**Most importantly** in the distinction between structured logs and legacy formats, with a performance penalty a structured log [can be transformed into the legacy Common Log Format ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddyserver/transform-encoder) , but not the other way around. It is non-trivial (or at least inefficient) to go from CLF to structured formats, and impossible considering the lack of information. +**Most importantly** in the distinction between structured logs and legacy formats, with a performance penalty a structured log [can be transformed into the legacy Common Log Format ![Image 1](https://caddyserver.com/old/resources/images/external-link.svg)](https://github.com/caddyserver/transform-encoder), but not the other way around. It is non-trivial (or at least inefficient) to go from CLF to structured formats, and impossible considering the lack of information. In essence, efficient, structured logging generally promotes these philosophies: @@ -94,8 +94,8 @@ In essence, efficient, structured logging generally promotes these philosophies: * Filtering is better than discarding * Defer encoding for greater flexibility and interoperability -Emission[🔗](https://caddyserver.com/docs/logging#emission "Direct link") -------------------------------------------------------------------------- +Emission +-------- In code, a log emission resembles the following: @@ -115,8 +115,8 @@ The `logger` variable is a `zap.Logger` that may have any amount of context asso From there, the message is sent through a highly efficient processing pipeline where it is encoded and written. -Logging pipeline[🔗](https://caddyserver.com/docs/logging#logging-pipeline "Direct link") ------------------------------------------------------------------------------------------ +Logging pipeline +---------------- As you saw above, messages are emitted by **loggers**. The messages are then sent to **logs** for processing. @@ -137,8 +137,8 @@ When a log message is emitted from Caddy: By default, all messages go to all configured logs. This adheres to the values of structured logging described above. You can limit which messages go to which logs by setting their include/exclude lists, but this is mostly for filtering messages from different modules; it is not intended to be used like a log aggregation service. To keep Caddy's logging pipeline streamlined and efficient, advanced processing of log messages is deferred to consumption. -Consumption[🔗](https://caddyserver.com/docs/logging#consumption "Direct link") -------------------------------------------------------------------------------- +Consumption +----------- After messages are sent to an output, a consumer will read them in, parse them, and handle them accordingly. diff --git a/docs/caddy/docs/docs/metrics.md b/docs/caddy/metrics.md similarity index 97% rename from docs/caddy/docs/docs/metrics.md rename to docs/caddy/metrics.md index 9472860..b60bae4 100644 --- a/docs/caddy/docs/docs/metrics.md +++ b/docs/caddy/metrics.md @@ -14,18 +14,26 @@ If using a Caddyfile, enable metrics [in global options](https://caddyserver.com ``` { - servers { - metrics - } + metrics } ``` If using JSON, add `"metrics": {}` to your [`apps > http > servers` configuration](https://caddyserver.com/docs/json/apps/http/servers/). +To add per-host metrics you can insert the `per_host` option. Host specific metrics will now have a Host tag. + +``` +{ + metrics { + per_host + } +} +``` + Prometheus[🔗](https://caddyserver.com/docs/metrics#prometheus "Direct link") ----------------------------------------------------------------------------- -[Prometheus](https://prometheus.io/) is a monitoring platform that collects metrics from monitored targets by scraping metrics HTTP endpoints on these targets. As well as helping you to display metrics with a dashboarding tool like [Grafana](https://grafana.com/docs/grafana/latest/getting-started/what-is-grafana/), Prometheus is also used for [alerting](https://prometheus.io/docs/alerting/latest/overview/). +[Prometheus](https://prometheus.io/) is a monitoring platform that collects metrics from monitored targets by scraping metrics HTTP endpoints on these targets. As well as helping you to display metrics with a dashboarding tool like [Grafana](https://grafana.com/docs/grafana/latest/introduction/), Prometheus is also used for [alerting](https://prometheus.io/docs/alerting/latest/overview/). Like Caddy, Prometheus is written in Go and distributed as a single binary. To install it, see the [Prometheus Installation docs](https://prometheus.io/docs/prometheus/latest/installation/), or on MacOS just run `brew install prometheus`. diff --git a/docs/caddy/modules.md b/docs/caddy/modules.md new file mode 100644 index 0000000..f2b5c5d --- /dev/null +++ b/docs/caddy/modules.md @@ -0,0 +1,542 @@ +Title: Modules - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ + +Markdown Content: +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | +| Standard | [admin.api.load](https://caddyserver.com/docs/modules/admin.api.load) | is a module that provides the /load endpoint for the Caddy admin API. | +| Standard | [admin.api.metrics](https://caddyserver.com/docs/modules/admin.api.metrics) | is a module that serves a metrics endpoint so that any gathered metrics can be exposed for scraping. | +| Standard | [admin.api.pki](https://caddyserver.com/docs/modules/admin.api.pki) | is a module that serves PKI endpoints to retrieve information about the CAs being managed by Caddy. | +| Non-standard | [admin.api.pocketbase](https://caddyserver.com/docs/modules/admin.api.pocketbase) | is a module that serves PKI endpoints to retrieve information about the CAs being managed by Caddy. | +| Non-standard | [admin.api.purge](https://caddyserver.com/docs/modules/admin.api.purge) | is a module that provides the /purge endpoint as the admin api. | +| Standard | [admin.api.reverse_proxy](https://caddyserver.com/docs/modules/admin.api.reverse_proxy) | is a module that provides the /reverse_proxy/upstreams endpoint for the Caddy admin API. | +| Non-standard | [admin.api.trojan](https://caddyserver.com/docs/modules/admin.api.trojan) | is ... | +| Standard | [caddy.config_loaders.http](https://caddyserver.com/docs/modules/caddy.config_loaders.http) | can load Caddy configs over HTTP(S). | +| Non-standard | [caddy.config_loaders.storage](https://caddyserver.com/docs/modules/caddy.config_loaders.storage) | is a dynamic configuration loader that reads the configuration from a Caddy storage. | +| Standard | [caddy.filesystems](https://caddyserver.com/docs/modules/caddy.filesystems) | loads caddy.fs modules into the global filesystem map | +| Non-standard | [caddy.fs.git](https://caddyserver.com/docs/modules/caddy.fs.git) | The `git` filesystem module uses a git repository as the virtual filesystem. | +| Non-standard | [caddy.fs.s3](https://caddyserver.com/docs/modules/caddy.fs.s3) | is a Caddy virtual filesystem module for AWS S3 (and compatible) object store. | +| Standard | [caddy.listeners.http_redirect](https://caddyserver.com/docs/modules/caddy.listeners.http_redirect) | provides HTTP->HTTPS redirects for connections that come on the TLS port as an HTTP request, by detecting using the first few bytes that it's not a TLS handshake, but instead an HTTP request.... | +| Non-standard | [caddy.listeners.ngrok](https://caddyserver.com/docs/modules/caddy.listeners.ngrok) | is a `listener_wrapper` whose address is an ngrok-ingress address | +| Non-standard | [caddy.listeners.ngrok.tunnels.http](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http) | ngrok HTTP tunnel | +| Non-standard | [caddy.listeners.ngrok.tunnels.labeled](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.labeled) | ngrok Labeled Tunnel | +| Non-standard | [caddy.listeners.ngrok.tunnels.tcp](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tcp) | ngrok TCP tunnel | +| Non-standard | [caddy.listeners.ngrok.tunnels.tls](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tls) | ngrok TLS tunnel Note: only available for ngrok Enterprise user | +| Standard | [caddy.listeners.proxy_protocol](https://caddyserver.com/docs/modules/caddy.listeners.proxy_protocol#github.com/caddyserver/caddy) (github.com/caddyserver/caddy) | provides PROXY protocol support to Caddy by implementing the caddy.ListenerWrapper interface. | +| Non-standard | [caddy.listeners.proxy_protocol](https://caddyserver.com/docs/modules/caddy.listeners.proxy_protocol#github.com/mastercactapus/caddy2-proxyprotocol) (github.com/mastercactapus/caddy2-proxyprotocol) | | +| Non-standard | [caddy.listeners.throttle](https://caddyserver.com/docs/modules/caddy.listeners.throttle) | The `throttle` listener limits the bandwidth of the connection to the given values and can inject chaos engineering features like latency and jitter. | +| Standard | [caddy.listeners.tls](https://caddyserver.com/docs/modules/caddy.listeners.tls) | is a no-op listener wrapper that marks where the TLS listener should be in a chain of listener wrappers. | +| Non-standard | [caddy.listeners.trojan](https://caddyserver.com/docs/modules/caddy.listeners.trojan) | implements an TLS wrapper that it accept connections from clients and check the connection with pre-defined password and aead cipher defined by go-shadowsocks2, and return a normal page if failed.... | +| Standard | [caddy.logging.cores.mock](https://caddyserver.com/docs/modules/caddy.logging.cores.mock) | is a no-op module, purely for testing | +| Standard | [caddy.logging.encoders.append](https://caddyserver.com/docs/modules/caddy.logging.encoders.append) | can be used to add fields to all log entries that pass through it. | +| Standard | [caddy.logging.encoders.console](https://caddyserver.com/docs/modules/caddy.logging.encoders.console) | encodes log entries that are mostly human-readable. | +| Non-standard | [caddy.logging.encoders.elastic](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic) | | +| Standard | [caddy.logging.encoders.filter](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter) | can filter (manipulate) fields on log entries before they are actually encoded by an underlying encoder. | +| Non-standard | [caddy.logging.encoders.filter.basic_auth_user](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.basic_auth_user) | is a Caddy log field filter that replaces the a base64 encoded authorization header with just the user name. | +| Standard | [caddy.logging.encoders.filter.cookie](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.cookie) | is a Caddy log field filter that filters cookies. | +| Standard | [caddy.logging.encoders.filter.delete](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.delete) | is a Caddy log field filter that deletes the field. | +| Standard | [caddy.logging.encoders.filter.hash](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.hash) | is a Caddy log field filter that replaces the field with the initial 4 bytes of the SHA-256 hash of the content. | +| Standard | [caddy.logging.encoders.filter.ip_mask](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.ip_mask) | is a Caddy log field filter that masks IP addresses in a string, or in an array of strings. | +| Standard | [caddy.logging.encoders.filter.query](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.query) | is a Caddy log field filter that filters query parameters from a URL. | +| Standard | [caddy.logging.encoders.filter.regexp](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.regexp) | is a Caddy log field filter that replaces the field matching the provided regexp with the indicated string. | +| Standard | [caddy.logging.encoders.filter.rename](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.rename) | is a Caddy log field filter that renames the field's key with the indicated name. | +| Standard | [caddy.logging.encoders.filter.replace](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.replace) | is a Caddy log field filter that replaces the field with the indicated string. | +| Non-standard | [caddy.logging.encoders.filter.tls_cipher](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_cipher) | is Caddy log field filter that replaces the numeric TLS cipher_suite value with the string representation. | +| Non-standard | [caddy.logging.encoders.filter.tls_version](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_version) | is a Caddy log field filter that replaces the numeric TLS version with the string version and optionally adds a prefix. | +| Non-standard | [caddy.logging.encoders.formatted](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#github.com/caddyserver/format-encoder) (github.com/caddyserver/format-encoder) | allows the user to provide custom template for log prints. | +| Non-standard | [caddy.logging.encoders.formatted](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#github.com/caddyserver/transform-encoder) (github.com/caddyserver/transform-encoder) | | +| Standard | [caddy.logging.encoders.json](https://caddyserver.com/docs/modules/caddy.logging.encoders.json) | encodes entries as JSON. | +| Standard | [caddy.logging.encoders.logfmt](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt) | encodes log entries as logfmt: https://www.brandur.org/logfmt Note that logfmt does not encode nested structures properly, so it is not a good fit for most logs. | +| Standard | [caddy.logging.encoders.single_field](https://caddyserver.com/docs/modules/caddy.logging.encoders.single_field) | writes a log entry that consists entirely of a single string field in the log entry. | +| Non-standard | [caddy.logging.encoders.transform](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform) | allows the user to provide custom template for log prints. | +| Standard | [caddy.logging.writers.discard](https://caddyserver.com/docs/modules/caddy.logging.writers.discard) | discards all writes. | +| Standard | [caddy.logging.writers.file](https://caddyserver.com/docs/modules/caddy.logging.writers.file) | can write logs to files. | +| Non-standard | [caddy.logging.writers.graphite](https://caddyserver.com/docs/modules/caddy.logging.writers.graphite) | is a Caddy logger used to send server activity to a Graphite database. | +| Non-standard | [caddy.logging.writers.influx_log](https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log) | | +| Non-standard | [caddy.logging.writers.influxlog](https://caddyserver.com/docs/modules/caddy.logging.writers.influxlog) | is a influxdb client to write time series data | +| Standard | [caddy.logging.writers.net](https://caddyserver.com/docs/modules/caddy.logging.writers.net) | implements a log writer that outputs to a network socket. | +| Standard | [caddy.logging.writers.stderr](https://caddyserver.com/docs/modules/caddy.logging.writers.stderr) | writes logs to standard error. | +| Standard | [caddy.logging.writers.stdout](https://caddyserver.com/docs/modules/caddy.logging.writers.stdout) | writes logs to standard out. | +| Standard | [caddy.network_proxy.none](https://caddyserver.com/docs/modules/caddy.network_proxy.none) | The "none" proxy source module disables the use of network proxy. | +| Standard | [caddy.network_proxy.url](https://caddyserver.com/docs/modules/caddy.network_proxy.url) | The "url" proxy source uses the defined URL as the proxy | +| Non-standard | [caddy.storage.cloudflare_kv](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv) | implements a Caddy storage backend for Cloudflare KV | +| Non-standard | [caddy.storage.consul](https://caddyserver.com/docs/modules/caddy.storage.consul#github.com/pteich/caddy-tlsconsul) (github.com/pteich/caddy-tlsconsul) | allows to store certificates and other TLS resources in a shared cluster environment using Consul's key/value-store. | +| Non-standard | [caddy.storage.consul](https://caddyserver.com/docs/modules/caddy.storage.consul#github.com/pteich/caddy-tlsconsul) (github.com/pteich/caddy-tlsconsul) | holds all parameters for the Consul connection | +| Non-standard | [caddy.storage.consul](https://caddyserver.com/docs/modules/caddy.storage.consul#github.com/sillygod/cdp-cache) (github.com/sillygod/cdp-cache) | implements the certmagic storage's interface This holds the consul client and kv store | +| Non-standard | [caddy.storage.dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#github.com/silinternational/certmagic-storage-dynamodb) (github.com/silinternational/certmagic-storage-dynamodb) | implements certmagic.Storage to facilitate storage of certificates in DynamoDB for a clustered environment. | +| Non-standard | [caddy.storage.dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#github.com/silinternational/certmagic-storage-dynamodb) (github.com/silinternational/certmagic-storage-dynamodb) | implements certmagic.Storage to facilitate storage of certificates in DynamoDB for a clustered environment. | +| Non-standard | [caddy.storage.encrypted](https://caddyserver.com/docs/modules/caddy.storage.encrypted) | is the impelementation of certmagic.Storage interface for Caddy with encryption/decryption layer using [SOPS](https://github.com/getsops/sops). | +| Non-standard | [caddy.storage.encrypted.key.age](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.age) | is a key type to be used with encryption provider. | +| Non-standard | [caddy.storage.encrypted.key.gcp_kms](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.gcp_kms) | uses GCPKMS (Google Cloud Platform KMS) for the encryption/decryption. | +| Non-standard | [caddy.storage.encrypted.provider.local](https://caddyserver.com/docs/modules/caddy.storage.encrypted.provider.local) | encryption provider avails in-process encryption/decryption capabilities | +| Non-standard | [caddy.storage.env_redis](https://caddyserver.com/docs/modules/caddy.storage.env_redis) | | +| Standard | [caddy.storage.file_system](https://caddyserver.com/docs/modules/caddy.storage.file_system) | is a certmagic.Storage wrapper for certmagic.FileStorage. | +| Non-standard | [caddy.storage.gcs](https://caddyserver.com/docs/modules/caddy.storage.gcs) | implements a caddy storage backend for Google Cloud Storage. | +| Non-standard | [caddy.storage.mysql](https://caddyserver.com/docs/modules/caddy.storage.mysql) | | +| Non-standard | [caddy.storage.nats](https://caddyserver.com/docs/modules/caddy.storage.nats) | | +| Non-standard | [caddy.storage.postgres](https://caddyserver.com/docs/modules/caddy.storage.postgres) | | +| Non-standard | [caddy.storage.redis](https://caddyserver.com/docs/modules/caddy.storage.redis#github.com/gamalan/caddy-tlsredis) (github.com/gamalan/caddy-tlsredis) | contain Redis client, and plugin option | +| Non-standard | [caddy.storage.redis](https://caddyserver.com/docs/modules/caddy.storage.redis#github.com/pberkel/caddy-storage-redis) (github.com/pberkel/caddy-storage-redis) | implements a Caddy storage backend for Redis It supports Single (Standalone), Cluster, or Sentinal (Failover) Redis server configurations. | +| Non-standard | [caddy.storage.redis](https://caddyserver.com/docs/modules/caddy.storage.redis#github.com/techio-dev/caddy-redis) (github.com/techio-dev/caddy-redis) | | +| Non-standard | [caddy.storage.s3](https://caddyserver.com/docs/modules/caddy.storage.s3#github.com/ss098/certmagic-s3) (github.com/ss098/certmagic-s3) | | +| Non-standard | [caddy.storage.s3](https://caddyserver.com/docs/modules/caddy.storage.s3#github.com/techknowlogick/certmagic-s3) (github.com/techknowlogick/certmagic-s3) | | +| Non-standard | [caddy.storage.vault](https://caddyserver.com/docs/modules/caddy.storage.vault) | A highly available storage module that integrates with HashiCorp Vault. | +| Non-standard | [crowdsec](https://caddyserver.com/docs/modules/crowdsec) | is a Caddy App that functions as a CrowdSec bouncer. | +| Non-standard | [distributed.consul](https://caddyserver.com/docs/modules/distributed.consul) | handles the client to interact with the consul agent | +| Non-standard | [dns.providers.acmedns](https://caddyserver.com/docs/modules/dns.providers.acmedns) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.acmeproxy](https://caddyserver.com/docs/modules/dns.providers.acmeproxy) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.alidns](https://caddyserver.com/docs/modules/dns.providers.alidns) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.azure](https://caddyserver.com/docs/modules/dns.providers.azure) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.bunny](https://caddyserver.com/docs/modules/dns.providers.bunny) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.civo](https://caddyserver.com/docs/modules/dns.providers.civo) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.cloudflare](https://caddyserver.com/docs/modules/dns.providers.cloudflare) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns#github.com/anxuanzi/caddy-dns-ClouDNS) (github.com/anxuanzi/caddy-dns-ClouDNS) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns#github.com/caddy-dns/cloudns) (github.com/caddy-dns/cloudns) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.ddnss](https://caddyserver.com/docs/modules/dns.providers.ddnss) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.desec](https://caddyserver.com/docs/modules/dns.providers.desec) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.digitalocean](https://caddyserver.com/docs/modules/dns.providers.digitalocean) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.dinahosting](https://caddyserver.com/docs/modules/dns.providers.dinahosting) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.directadmin](https://caddyserver.com/docs/modules/dns.providers.directadmin) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.dnsexit](https://caddyserver.com/docs/modules/dns.providers.dnsexit) | lets Caddy read and manipulate DNS records hosted by DNSExit. | +| Non-standard | [dns.providers.dnsimple](https://caddyserver.com/docs/modules/dns.providers.dnsimple) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.dnsmadeeasy](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.dnspod](https://caddyserver.com/docs/modules/dns.providers.dnspod) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.domainnameshop](https://caddyserver.com/docs/modules/dns.providers.domainnameshop) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.dreamhost](https://caddyserver.com/docs/modules/dns.providers.dreamhost) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.duckdns](https://caddyserver.com/docs/modules/dns.providers.duckdns) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.dynu](https://caddyserver.com/docs/modules/dns.providers.dynu) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.easydns](https://caddyserver.com/docs/modules/dns.providers.easydns) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.edgeone](https://caddyserver.com/docs/modules/dns.providers.edgeone) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.gandi](https://caddyserver.com/docs/modules/dns.providers.gandi) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.glesys](https://caddyserver.com/docs/modules/dns.providers.glesys) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy#github.com/caddy-dns/godaddy) (github.com/caddy-dns/godaddy) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy#github.com/xcaddyplugins/caddy-dns-godaddy) (github.com/xcaddyplugins/caddy-dns-godaddy) | implements the libdns interfaces for GoDaddy DNS | +| Non-standard | [dns.providers.google_domains](https://caddyserver.com/docs/modules/dns.providers.google_domains) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.googleclouddns](https://caddyserver.com/docs/modules/dns.providers.googleclouddns) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.he](https://caddyserver.com/docs/modules/dns.providers.he) | lets Caddy read and manipulate DNS records hosted by Hurricane Electric. | +| Non-standard | [dns.providers.hetzner](https://caddyserver.com/docs/modules/dns.providers.hetzner) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.hexonet](https://caddyserver.com/docs/modules/dns.providers.hexonet) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.hosttech](https://caddyserver.com/docs/modules/dns.providers.hosttech) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.huaweicloud](https://caddyserver.com/docs/modules/dns.providers.huaweicloud) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.immosquare](https://caddyserver.com/docs/modules/dns.providers.immosquare) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.infomaniak](https://caddyserver.com/docs/modules/dns.providers.infomaniak) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.inwx](https://caddyserver.com/docs/modules/dns.providers.inwx) | lets Caddy read and manipulate DNS records hosted by INWX. | +| Non-standard | [dns.providers.ionos](https://caddyserver.com/docs/modules/dns.providers.ionos) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.katapult](https://caddyserver.com/docs/modules/dns.providers.katapult) | lets Caddy read and manipulate DNS records hosted by Katapult. | +| Non-standard | [dns.providers.leaseweb](https://caddyserver.com/docs/modules/dns.providers.leaseweb) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.lego_deprecated](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated) | is a shim module that allows any and all of the DNS providers in go-acme/lego to be used with Caddy. | +| Non-standard | [dns.providers.linode](https://caddyserver.com/docs/modules/dns.providers.linode#github.com/caddy-dns/linode) (github.com/caddy-dns/linode) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.linode](https://caddyserver.com/docs/modules/dns.providers.linode#github.com/tosie/caddy-dns-linode) (github.com/tosie/caddy-dns-linode) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.loopia](https://caddyserver.com/docs/modules/dns.providers.loopia) | | +| Non-standard | [dns.providers.mailinabox](https://caddyserver.com/docs/modules/dns.providers.mailinabox) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.metaname](https://caddyserver.com/docs/modules/dns.providers.metaname) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.namecheap](https://caddyserver.com/docs/modules/dns.providers.namecheap) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.namedotcom](https://caddyserver.com/docs/modules/dns.providers.namedotcom) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.namesilo](https://caddyserver.com/docs/modules/dns.providers.namesilo) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.nanelo](https://caddyserver.com/docs/modules/dns.providers.nanelo) | lets Caddy read and manipulate DNS records hosted by Nanelo DNS. | +| Non-standard | [dns.providers.neoserv](https://caddyserver.com/docs/modules/dns.providers.neoserv) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.netcup](https://caddyserver.com/docs/modules/dns.providers.netcup) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.netlify](https://caddyserver.com/docs/modules/dns.providers.netlify) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.njalla](https://caddyserver.com/docs/modules/dns.providers.njalla) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.openstack-designate](https://caddyserver.com/docs/modules/dns.providers.openstack-designate) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.ovh](https://caddyserver.com/docs/modules/dns.providers.ovh) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.porkbun](https://caddyserver.com/docs/modules/dns.providers.porkbun) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.powerdns](https://caddyserver.com/docs/modules/dns.providers.powerdns) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.rfc2136](https://caddyserver.com/docs/modules/dns.providers.rfc2136) | | +| Non-standard | [dns.providers.route53](https://caddyserver.com/docs/modules/dns.providers.route53#github.com/caddy-dns/route53) (github.com/caddy-dns/route53) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.route53](https://caddyserver.com/docs/modules/dns.providers.route53#github.com/ryantiger658/route53) (github.com/ryantiger658/route53) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.scaleway](https://caddyserver.com/docs/modules/dns.providers.scaleway) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.selectel](https://caddyserver.com/docs/modules/dns.providers.selectel) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.spaceship](https://caddyserver.com/docs/modules/dns.providers.spaceship) | lets Caddy read and manipulate DNS records hosted by the Spaceship DNS provider. | +| Non-standard | [dns.providers.tencentcloud](https://caddyserver.com/docs/modules/dns.providers.tencentcloud) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.transip](https://caddyserver.com/docs/modules/dns.providers.transip) | lets Caddy read and manipulate DNS records hosted by this DNS provider. | +| Non-standard | [dns.providers.vercel](https://caddyserver.com/docs/modules/dns.providers.vercel) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns.providers.vultr](https://caddyserver.com/docs/modules/dns.providers.vultr) | wraps the provider implementation as a Caddy module. | +| Non-standard | [dns01proxy](https://caddyserver.com/docs/modules/dns01proxy) | A proxy server for ACME DNS-01 challenges. | +| Non-standard | [dynamic_dns](https://caddyserver.com/docs/modules/dynamic_dns) | is a Caddy app that keeps your DNS records updated with the public IP address of your instance. | +| Non-standard | [dynamic_dns.ip_sources.command](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.command) | is an IP source that looks up the public IP addresses by executing a script or command from your filesystem. | +| Non-standard | [dynamic_dns.ip_sources.simple_http](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.simple_http) | is an IP source that looks up the public IP addresses by making HTTP(S) requests to the specified endpoints; it will try each endpoint with IPv4 and IPv6 until at least one returns a valid value.... | +| Non-standard | [dynamic_dns.ip_sources.upnp](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.upnp) | gets the IP address from UPnP device. | +| Standard | [events](https://caddyserver.com/docs/modules/events) | implements a global eventing system within Caddy. | +| Non-standard | [events.handlers.exec](https://caddyserver.com/docs/modules/events.handlers.exec) | implements an event handler that runs a command/program. | +| Non-standard | [events.handlers.nats](https://caddyserver.com/docs/modules/events.handlers.nats) | | +| Non-standard | [events.handlers.store_cert](https://caddyserver.com/docs/modules/events.handlers.store_cert) | implements an event handler that stores the cert to a bucket. | +| Non-standard | [exec](https://caddyserver.com/docs/modules/exec) | is top level module that runs shell commands. | +| Non-standard | [frankenphp](https://caddyserver.com/docs/modules/frankenphp) | | +| Non-standard | [geoip2](https://caddyserver.com/docs/modules/geoip2) | is global caddy app with http.handlers.geoip2 it update geoip2 data automatically by the params | +| Standard | [http](https://caddyserver.com/docs/modules/http) | is a robust, production-ready HTTP server. | +| Standard | [http.authentication.hashes.bcrypt](https://caddyserver.com/docs/modules/http.authentication.hashes.bcrypt) | implements the bcrypt hash. | +| Standard | [http.authentication.hashes.scrypt](https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt) | implements the scrypt KDF as a hash. | +| Non-standard | [http.authentication.providers.authorize](https://caddyserver.com/docs/modules/http.authentication.providers.authorize) | authorizes access to endpoints based on the presense and content of JWT token. | +| Non-standard | [http.authentication.providers.authorizer](https://caddyserver.com/docs/modules/http.authentication.providers.authorizer) | authorizes access to endpoints based on the presense and content of JWT token. | +| Non-standard | [http.authentication.providers.discord](https://caddyserver.com/docs/modules/http.authentication.providers.discord) | allows you to authenticate caddy routes from a Discord User Identity. | +| Non-standard | [http.authentication.providers.forms](https://caddyserver.com/docs/modules/http.authentication.providers.forms) | authorizes access to endpoints based on the credentials provided in a request. | +| Standard | [http.authentication.providers.http_basic](https://caddyserver.com/docs/modules/http.authentication.providers.http_basic) | facilitates HTTP basic authentication. | +| Non-standard | [http.authentication.providers.jwt](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#github.com/ggicci/caddy-jwt) (github.com/ggicci/caddy-jwt) | facilitates JWT (JSON Web Token) authentication. | +| Non-standard | [http.authentication.providers.jwt](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#github.com/greenpau/caddy-auth-jwt) (github.com/greenpau/caddy-auth-jwt) | authorizes access to endpoints based on the presense and content of JWT token. | +| Non-standard | [http.authentication.providers.paseto](https://caddyserver.com/docs/modules/http.authentication.providers.paseto) | implements PASETO authentication. | +| Non-standard | [http.authentication.providers.saml](https://caddyserver.com/docs/modules/http.authentication.providers.saml) | authenticates requests the SAML Response to the SP Assertion Consumer Service using the HTTP-POST Binding. | +| Non-standard | [http.encoders.br](https://caddyserver.com/docs/modules/http.encoders.br#github.com/dunglas/caddy-cbrotli) (github.com/dunglas/caddy-cbrotli) | can create Brotli encoders. | +| Non-standard | [http.encoders.br](https://caddyserver.com/docs/modules/http.encoders.br#github.com/ueffel/caddy-brotli) (github.com/ueffel/caddy-brotli) | can create brotli encoders. | +| Standard | [http.encoders.gzip](https://caddyserver.com/docs/modules/http.encoders.gzip) | can create gzip encoders. | +| Standard | [http.encoders.zstd](https://caddyserver.com/docs/modules/http.encoders.zstd) | can create Zstandard encoders. | +| Standard | [http.handlers.acme_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) | is an ACME server handler. | +| Non-standard | [http.handlers.adobe_usage_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker) | implements HTTP middleware that parses uploaded log files from Adobe desktop applications in order to collect measurements about past launches. | +| Non-standard | [http.handlers.argsort](https://caddyserver.com/docs/modules/http.handlers.argsort#github.com/teodorescuserban/caddy-argsort) (github.com/teodorescuserban/caddy-argsort) | sort the query arguments after optionally lowercasing them. | +| Non-standard | [http.handlers.argsort](https://caddyserver.com/docs/modules/http.handlers.argsort#github.com/teodorescuserban/caddy-argsort) (github.com/teodorescuserban/caddy-argsort) | implements an HTTP handler that reorders the query arguments. | +| Non-standard | [http.handlers.authelia](https://caddyserver.com/docs/modules/http.handlers.authelia) | implements a plugin for securing routes with authentication | +| Standard | [http.handlers.authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) | is a middleware which provides user authentication. | +| Non-standard | [http.handlers.authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator) | implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0, SAML Authentication. | +| Non-standard | [http.handlers.authp](https://caddyserver.com/docs/modules/http.handlers.authp) | implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0, SAML Authentication. | +| Non-standard | [http.handlers.authz](https://caddyserver.com/docs/modules/http.handlers.authz) | | +| Non-standard | [http.handlers.basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp) | is a Caddy module that enhances Caddy's `basic_auth` directive by adding Time-based One-Time Password (TOTP) two-factor authentication (2FA). | +| Non-standard | [http.handlers.blockaws](https://caddyserver.com/docs/modules/http.handlers.blockaws) | is a Caddy module that blocks all AWS IP addresses taken from https://ip-ranges.amazonaws.com/ip-ranges.json | +| Non-standard | [http.handlers.bot_barrier](https://caddyserver.com/docs/modules/http.handlers.bot_barrier) | is a Caddy middleware module that requires clients to solve a computational challenge before granting access to HTTP resources. | +| Non-standard | [http.handlers.cache](https://caddyserver.com/docs/modules/http.handlers.cache#github.com/caddyserver/cache-handler) (github.com/caddyserver/cache-handler) | allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking. | +| Non-standard | [http.handlers.cache](https://caddyserver.com/docs/modules/http.handlers.cache#github.com/caddyserver/cache-handler) (github.com/caddyserver/cache-handler) | allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking. | +| Non-standard | [http.handlers.cache](https://caddyserver.com/docs/modules/http.handlers.cache#github.com/darkweak/souin) (github.com/darkweak/souin) | development repository of the cache handler, allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking.... | +| Non-standard | [http.handlers.cache](https://caddyserver.com/docs/modules/http.handlers.cache#github.com/darkweak/souin) (github.com/darkweak/souin) | development repository of the cache handler, allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking.... | +| Non-standard | [http.handlers.cerberus](https://caddyserver.com/docs/modules/http.handlers.cerberus) | | +| Non-standard | [http.handlers.cgi](https://caddyserver.com/docs/modules/http.handlers.cgi) | | +| Non-standard | [http.handlers.cookiecrypt](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt) | | +| Non-standard | [http.handlers.cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag) | manipulate various flags (Secure, HttpOnly, ...) in the Set-Cookie reponse headers. | +| Standard | [http.handlers.copy_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) | is a special HTTP handler which may only be used within reverse_proxy's handle_response routes, to copy the proxy response. | +| Standard | [http.handlers.copy_response_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) | is a special HTTP handler which may only be used within reverse_proxy's handle_response routes, to copy headers from the proxy response. | +| Non-standard | [http.handlers.crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec) | matches request IPs to CrowdSec decisions to (dis)allow access | +| Non-standard | [http.handlers.ct](https://caddyserver.com/docs/modules/http.handlers.ct) | allows to transpile YAML based configuration into a JSON ignition to be used with Flatcar or Fedora CoreOS. | +| Non-standard | [http.handlers.defender](https://caddyserver.com/docs/modules/http.handlers.defender#github.com/jasonlovesdoggo/caddy-defender) (github.com/jasonlovesdoggo/caddy-defender) | implements an HTTP middleware that enforces IP-based rules to protect your site from AIs/Scrapers. | +| Non-standard | [http.handlers.defender](https://caddyserver.com/docs/modules/http.handlers.defender#github.com/jasonlovesdoggo/caddy-defender) (github.com/jasonlovesdoggo/caddy-defender) | implements an HTTP middleware that enforces IP-based rules. | +| Non-standard | [http.handlers.discord](https://caddyserver.com/docs/modules/http.handlers.discord) | is used in combination with http.authentication.providers.discord to provide an authentication layer based on a Discord identity. | +| Non-standard | [http.handlers.dns01proxy](https://caddyserver.com/docs/modules/http.handlers.dns01proxy) | Implements an API for proxying ACME DNS-01 challenges. | +| Non-standard | [http.handlers.dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher) | | +| Standard | [http.handlers.encode](https://caddyserver.com/docs/modules/http.handlers.encode) | is a middleware which can encode responses. | +| Standard | [http.handlers.error](https://caddyserver.com/docs/modules/http.handlers.error) | implements a simple handler that returns an error. | +| Non-standard | [http.handlers.esi](https://caddyserver.com/docs/modules/http.handlers.esi) | to handle, process and serve ESI tags. | +| Non-standard | [http.handlers.exec](https://caddyserver.com/docs/modules/http.handlers.exec) | implements an HTTP handler that runs shell command. | +| Non-standard | [http.handlers.extra_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders) | provides additional placeholders that can be used within Caddy configurations: Placeholder | Description ------------|------------- `{extra.caddy.version.simple}` | Simple version information of the Caddy server (e.g., v2.8.4).... | +| Standard | [http.handlers.file_server](https://caddyserver.com/docs/modules/http.handlers.file_server) | implements a handler that serves static files. | +| Non-standard | [http.handlers.filter](https://caddyserver.com/docs/modules/http.handlers.filter) | implements an HTTP handler that writes the visitor's IP address to a file or stream. | +| Non-standard | [http.handlers.floaty](https://caddyserver.com/docs/modules/http.handlers.floaty) | | +| Non-standard | [http.handlers.forward_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth) | | +| Non-standard | [http.handlers.gbox](https://caddyserver.com/docs/modules/http.handlers.gbox) | implements an HTTP handler as a GraphQL reverse proxy server for caching, securing, and monitoring. | +| Non-standard | [http.handlers.geofence](https://caddyserver.com/docs/modules/http.handlers.geofence) | implements IP geofencing functionality. | +| Non-standard | [http.handlers.geoip](https://caddyserver.com/docs/modules/http.handlers.geoip) | Allows looking up the Country Code of an IP address based on the Maxmind database | +| Non-standard | [http.handlers.geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2) | is an GeoIP2 server handler. | +| Non-standard | [http.handlers.git](https://caddyserver.com/docs/modules/http.handlers.git) | implements git repository manager. | +| Non-standard | [http.handlers.gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg#github.com/MagnaXSoftware/gopkg) (github.com/MagnaXSoftware/gopkg) | implements vanity go package import paths. | +| Non-standard | [http.handlers.gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg#github.com/MagnaXSoftware/gopkg) (github.com/MagnaXSoftware/gopkg) | represents the GoPkg Caddy module. | +| Non-standard | [http.handlers.grpc_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web) | is an HTTP handler that bridges gRPC-Web <--> gRPC requests. | +| Non-standard | [http.handlers.guard](https://caddyserver.com/docs/modules/http.handlers.guard) | is an elegant IPQS plugin for Caddy. | +| Standard | [http.handlers.headers](https://caddyserver.com/docs/modules/http.handlers.headers) | is a middleware which modifies request and response headers. | +| Non-standard | [http.handlers.hmac](https://caddyserver.com/docs/modules/http.handlers.hmac) | implements an HTTP handler that validates request body with hmac. | +| Non-standard | [http.handlers.http_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache) | is a http handler as a middleware to cache the response | +| Non-standard | [http.handlers.i18n](https://caddyserver.com/docs/modules/http.handlers.i18n) | | +| Non-standard | [http.handlers.image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter#github.com/ueffel/caddy-imagefilter) (github.com/ueffel/caddy-imagefilter) | is a caddy module that can apply image filters to images from the filesystem at runtime. | +| Non-standard | [http.handlers.image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter#github.com/ueffel/caddy-imagefilter) (github.com/ueffel/caddy-imagefilter) | is a caddy module that can apply image filters to images from the filesystem at runtime. | +| Non-standard | [http.handlers.image_filter.filter.crop](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.crop) | produces a cropped image as rectangular region of a specific size. | +| Non-standard | [http.handlers.image_filter.filter.fit](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.fit) | scales a image to fit to the specified maximum width and height using a linear filter, the image aspect ratio is preserved. | +| Non-standard | [http.handlers.image_filter.filter.flip](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.flip) | s flips (mirrors) a image vertically or horizontally. | +| Non-standard | [http.handlers.image_filter.filter.resize](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.resize) | can downsize images. | +| Non-standard | [http.handlers.image_filter.filter.rotate](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.rotate) | rotates a image 90, 180 or 270 degrees counter-clockwise. | +| Non-standard | [http.handlers.image_filter.filter.sharpen](https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.sharpen) | produces a sharpened version of the image. | +| Non-standard | [http.handlers.image_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor) | allow user to do image processing on the fly using libvips With simple queries parameters you can resize, convert, crop your served images | +| Non-standard | [http.handlers.imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy) | | +| Non-standard | [http.handlers.inspect](https://caddyserver.com/docs/modules/http.handlers.inspect) | implements an HTTP handler that writes the inspects the current request. | +| Standard | [http.handlers.intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) | is a middleware that intercepts then replaces or modifies the original response. | +| Standard | [http.handlers.invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) | implements a handler that compiles and executes a named route that was defined on the server. | +| Non-standard | [http.handlers.ip_filter](https://caddyserver.com/docs/modules/http.handlers.ip_filter) | | +| Non-standard | [http.handlers.ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap) | implements a middleware that maps IP / Subnets as inputs to outputs. | +| Non-standard | [http.handlers.jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait) | | +| Non-standard | [http.handlers.json_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse) | implements an HTTP handler that parses json body as placeholders. | +| Non-standard | [http.handlers.jwt_issuer](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer) | is a Caddy module that issues JSON Web Tokens (JWT) after username and password authentication. | +| Non-standard | [http.handlers.k8s_admission](https://caddyserver.com/docs/modules/http.handlers.k8s_admission) | is a Caddy HTTP handler that processes Kubernetes admission webhook requests. | +| Non-standard | [http.handlers.lambda](https://caddyserver.com/docs/modules/http.handlers.lambda) | is a middleware which triggers execution of a function when it is invoked. | +| Non-standard | [http.handlers.ldap_basic_auth](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth) | | +| Non-standard | [http.handlers.listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy) | is a Caddy http.handlers module that listens for requests to specific URIs/paths and reports IPs that hit these URIs to AbuseIPDB. | +| Standard | [http.handlers.log_append](https://caddyserver.com/docs/modules/http.handlers.log_append) | implements a middleware that takes a key and value, where the key is the name of a log field and the value is a placeholder, or variable key, or constant value to use for that field.... | +| Non-standard | [http.handlers.lura](https://caddyserver.com/docs/modules/http.handlers.lura) | implements a high-performance API Gateway using the Lura framework (https://luraproject.org/). | +| Standard | [http.handlers.map](https://caddyserver.com/docs/modules/http.handlers.map) | implements a middleware that maps inputs to outputs. | +| Non-standard | [http.handlers.mercure](https://caddyserver.com/docs/modules/http.handlers.mercure) | implements a Mercure hub as a Caddy module. | +| Standard | [http.handlers.metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) | is a module that serves a /metrics endpoint so that any gathered metrics can be exposed for scraping. | +| Non-standard | [http.handlers.minifier](https://caddyserver.com/docs/modules/http.handlers.minifier) | | +| Non-standard | [http.handlers.mirror](https://caddyserver.com/docs/modules/http.handlers.mirror) | runs multiple handlers and aggregates their results | +| Non-standard | [http.handlers.myplugin](https://caddyserver.com/docs/modules/http.handlers.myplugin) | | +| Non-standard | [http.handlers.nobots](https://caddyserver.com/docs/modules/http.handlers.nobots) | is a Caddy Server plugin to protect your website against web crawlers and bots. | +| Non-standard | [http.handlers.oauth2_token_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection) | is a Caddy http.handlers Module for authorizing requests via OAuth2 Token Introspection | +| Non-standard | [http.handlers.olaf](https://caddyserver.com/docs/modules/http.handlers.olaf) | implements a handler that embeds Olaf's declarative configuration, which will be expanded later by a config adapter named `olaf`. | +| Non-standard | [http.handlers.olo_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature) | | +| Non-standard | [http.handlers.openapi](https://caddyserver.com/docs/modules/http.handlers.openapi) | | +| Non-standard | [http.handlers.openapi_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator) | is used to validate OpenAPI requests and responses against an OpenAPI specification | +| Non-standard | [http.handlers.php](https://caddyserver.com/docs/modules/http.handlers.php) | | +| Non-standard | [http.handlers.pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch) | | +| Non-standard | [http.handlers.pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster) | | +| Non-standard | [http.handlers.placeholder_dump](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump) | is a Caddy module that dumps a placeholder to a file or logs it to a specified logger. | +| Non-standard | [http.handlers.plausible](https://caddyserver.com/docs/modules/http.handlers.plausible) | | +| Non-standard | [http.handlers.pmtiles_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy) | creates a Z/X/Y tileserver backed by a local or remote bucket of PMTiles archives. | +| Non-standard | [http.handlers.pocketbase](https://caddyserver.com/docs/modules/http.handlers.pocketbase) | implements an HTTP handler that proxies requests internally to a PocketBase server. | +| Non-standard | [http.handlers.postauth2fa](https://caddyserver.com/docs/modules/http.handlers.postauth2fa) | is a Caddy HTTP handler module that adds TOTP-based two-factor authentication (2FA) after a primary authentication handler (such as basic_auth). | +| Non-standard | [http.handlers.prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus) | - | +| Non-standard | [http.handlers.public_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix) | adds placeholders that return values based on the Public Suffix List, or PSL (https://publicsuffix.org). | +| Standard | [http.handlers.push](https://caddyserver.com/docs/modules/http.handlers.push) | is a middleware for HTTP/2 server push. | +| Non-standard | [http.handlers.quantity_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter) | limits the number of successful requests for a token and allows the counter to be reset. | +| Non-standard | [http.handlers.rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit#github.com/RussellLuo/caddy-ext) (github.com/RussellLuo/caddy-ext) | implements a handler for rate-limiting. | +| Non-standard | [http.handlers.rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit#github.com/mholt/caddy-ratelimit) (github.com/mholt/caddy-ratelimit) | implements rate limiting functionality. | +| Non-standard | [http.handlers.realip](https://caddyserver.com/docs/modules/http.handlers.realip) | | +| Non-standard | [http.handlers.redir_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns) | is a RedirDns for manipulating redirecting based on DNS TXT record. | +| Non-standard | [http.handlers.replace_response](https://caddyserver.com/docs/modules/http.handlers.replace_response) | manipulates response bodies by performing substring or regex replacements. | +| Standard | [http.handlers.request_body](https://caddyserver.com/docs/modules/http.handlers.request_body) | is a middleware for manipulating the request body. | +| Non-standard | [http.handlers.request_body_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var) | implements an HTTP handler that replaces {http.request.body.*} with the value of the given field from request body, if any. | +| Non-standard | [http.handlers.request_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug) | is a middleware which displays the content of the request it handles. | +| Non-standard | [http.handlers.request_id](https://caddyserver.com/docs/modules/http.handlers.request_id) | implements an HTTP handler that writes a unique request ID to response headers. | +| Standard | [http.handlers.reverse_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) | implements a highly configurable and production-ready reverse proxy. | +| Standard | [http.handlers.rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) | is a middleware which can rewrite/mutate HTTP requests. | +| Non-standard | [http.handlers.s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy) | implements a proxy to return, set, delete or browse objects from S3 | +| Non-standard | [http.handlers.sablier](https://caddyserver.com/docs/modules/http.handlers.sablier#github.com/acouvreur/sablier) (github.com/acouvreur/sablier) | | +| Non-standard | [http.handlers.sablier](https://caddyserver.com/docs/modules/http.handlers.sablier#github.com/sablierapp/sablier) (github.com/sablierapp/sablier) | | +| Non-standard | [http.handlers.save](https://caddyserver.com/docs/modules/http.handlers.save) | | +| Non-standard | [http.handlers.scion](https://caddyserver.com/docs/modules/http.handlers.scion) | | +| Standard | [http.handlers.static_response](https://caddyserver.com/docs/modules/http.handlers.static_response) | implements a simple responder for static responses. | +| Standard | [http.handlers.subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) | implements a handler that compiles and executes routes. | +| Non-standard | [http.handlers.teapot](https://caddyserver.com/docs/modules/http.handlers.teapot) | implements a static "418 I'm a teapot" response to all requests on the route | +| Standard | [http.handlers.templates](https://caddyserver.com/docs/modules/http.handlers.templates) | is a middleware which executes response bodies as Go templates. | +| Non-standard | [http.handlers.templates.functions.hitCounter](https://caddyserver.com/docs/modules/http.handlers.templates.functions.hitCounter) | implements a simple early-Web hit counter. | +| Non-standard | [http.handlers.trace](https://caddyserver.com/docs/modules/http.handlers.trace) | is a middleware which displays the content of the request it handles. | +| Standard | [http.handlers.tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) | implements an HTTP handler that adds support for distributed tracing, using OpenTelemetry. | +| Non-standard | [http.handlers.trapdoor](https://caddyserver.com/docs/modules/http.handlers.trapdoor) | | +| Non-standard | [http.handlers.trojan](https://caddyserver.com/docs/modules/http.handlers.trojan) | implements an HTTP handler that ... | +| Non-standard | [http.handlers.umami](https://caddyserver.com/docs/modules/http.handlers.umami) | A Caddy module which sends visitor information to Umami's Events REST API endpoint. | +| Non-standard | [http.handlers.upload](https://caddyserver.com/docs/modules/http.handlers.upload) | Middleware implements an HTTP handler that writes the uploaded file to a file on the disk. | +| Non-standard | [http.handlers.user_agent_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse) | | +| Standard | [http.handlers.vars](https://caddyserver.com/docs/modules/http.handlers.vars) | is an HTTP middleware which sets variables to have values that can be used in the HTTP request handler chain. | +| Non-standard | [http.handlers.vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain) | add suport for the Vulcain protocol (fast and idiomatic client-driven REST APIs) as a Caddy module. | +| Non-standard | [http.handlers.waf](https://caddyserver.com/docs/modules/http.handlers.waf#github.com/BraveRoy/caddy-waf) (github.com/BraveRoy/caddy-waf) | | +| Non-standard | [http.handlers.waf](https://caddyserver.com/docs/modules/http.handlers.waf#github.com/corazawaf/coraza-caddy) (github.com/corazawaf/coraza-caddy) | | +| Non-standard | [http.handlers.waf](https://caddyserver.com/docs/modules/http.handlers.waf#github.com/corazawaf/coraza-caddy) (github.com/corazawaf/coraza-caddy) | is a Web Application Firewall implementation for Caddy. | +| Non-standard | [http.handlers.waf_chaitin](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin) | implements an HTTP handler for WAF. | +| Non-standard | [http.handlers.wafris](https://caddyserver.com/docs/modules/http.handlers.wafris) | Wafris, a free, open source WAF (web application firewall) | +| Non-standard | [http.handlers.wake_on_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan) | wakes up a target host on HTTP requests using wake-on-lan. | +| Non-standard | [http.handlers.webdav](https://caddyserver.com/docs/modules/http.handlers.webdav) | implements an HTTP handler for responding to WebDAV clients. | +| Non-standard | [http.handlers.webhook](https://caddyserver.com/docs/modules/http.handlers.webhook) | is the module configuration. | +| Non-standard | [http.handlers.x_clacks_overhead](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead) | | +| Non-standard | [http.handlers.xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate#github.com/infogulch/xtemplate-caddy) (github.com/infogulch/xtemplate-caddy) | | +| Non-standard | [http.handlers.xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate#github.com/infogulch/xtemplate) (github.com/infogulch/xtemplate) | | +| Non-standard | [http.handlers.xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates#github.com/infogulch/caddy-xtemplate) (github.com/infogulch/caddy-xtemplate) | | +| Non-standard | [http.handlers.xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates#github.com/infogulch/caddy-xtemplates) (github.com/infogulch/caddy-xtemplates) | | +| Non-standard | [http.ip_sources.bunny](https://caddyserver.com/docs/modules/http.ip_sources.bunny) | provides a range of IP address prefixes (CIDRs) retrieved from https://api.bunny.net/system/edgeserverlist and https://api.bunny.net/system/edgeserverlist/ipv6. | +| Non-standard | [http.ip_sources.cloudflare](https://caddyserver.com/docs/modules/http.ip_sources.cloudflare) | provides a range of IP address prefixes (CIDRs) retrieved from cloudflare. | +| Non-standard | [http.ip_sources.cloudfront](https://caddyserver.com/docs/modules/http.ip_sources.cloudfront) | The module that auto trusted_proxies `AWS CloudFront EDGE servers` from CloudFront. | +| Non-standard | [http.ip_sources.combine](https://caddyserver.com/docs/modules/http.ip_sources.combine) | This module combines the prefixes returned by several other IP source plugins. | +| Non-standard | [http.ip_sources.dns](https://caddyserver.com/docs/modules/http.ip_sources.dns) | provides a range of IP addresses associated with a DNS name. | +| Non-standard | [http.ip_sources.edgeone](https://caddyserver.com/docs/modules/http.ip_sources.edgeone) | provides a range of IP address prefixes (CIDRs) retrieved from EdgeOne. | +| Non-standard | [http.ip_sources.gcp_cloudcdn](https://caddyserver.com/docs/modules/http.ip_sources.gcp_cloudcdn) | The module auto trusted_proxies `GCP CloudCDN EDGE servers` from `_cloud-eoips.googleusercontent.com` TXT record Doc: https://cloud.google.com/cdn/docs/set-up-external-backend-internet-neg Range from: _cloud-eoips.googleusercontent.com... | +| Non-standard | [http.ip_sources.list](https://caddyserver.com/docs/modules/http.ip_sources.list) | provides a range of IP address prefixes (CIDRs) retrieved from url. | +| Standard | [http.ip_sources.static](https://caddyserver.com/docs/modules/http.ip_sources.static) | provides a static range of IP address prefixes (CIDRs). | +| Non-standard | [http.matchers.client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn) | matches requests by the client_ip GeoIP ASN. | +| Non-standard | [http.matchers.client_country](https://caddyserver.com/docs/modules/http.matchers.client_country) | matches requests by the client_ip GeoIP Country. | +| Standard | [http.matchers.client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) | matches requests by the client IP address, i.e. | +| Non-standard | [http.matchers.conneg](https://caddyserver.com/docs/modules/http.matchers.conneg) | matches requests by comparing results of a content negotiation process to a (list of) value(s). | +| Non-standard | [http.matchers.crawler](https://caddyserver.com/docs/modules/http.matchers.crawler) | is a HTTP request matcher to detect crawlers. | +| Non-standard | [http.matchers.cron](https://caddyserver.com/docs/modules/http.matchers.cron) | matches requests based on multiple sets of cron expressions. | +| Non-standard | [http.matchers.dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip) | matchers the requests by the client IP address. | +| Non-standard | [http.matchers.dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip) | matchers the requests by the remote IP address. | +| Non-standard | [http.matchers.exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop) | is a matcher that blocks all requests. | +| Non-standard | [http.matchers.execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch) | is a matcher that blocks all request. | +| Standard | [http.matchers.expression](https://caddyserver.com/docs/modules/http.matchers.expression) | matches requests by evaluating a [CEL](https://github.com/google/cel-spec) expression. | +| Non-standard | [http.matchers.fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban#github.com/Javex/caddy-fail2ban) (github.com/Javex/caddy-fail2ban) | implements an HTTP handler that checks a specified file for banned IPs and matches if they are found | +| Non-standard | [http.matchers.fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban#github.com/chris-swift-dev/caddy-fail2ban) (github.com/chris-swift-dev/caddy-fail2ban) | implements an HTTP handler that checks a specified file for banned IPs and matches if they are found | +| Standard | [http.matchers.file](https://caddyserver.com/docs/modules/http.matchers.file) | is an HTTP request matcher that can match requests based upon file existence. | +| Non-standard | [http.matchers.geocity](https://caddyserver.com/docs/modules/http.matchers.geocity) | | +| Non-standard | [http.matchers.geocn](https://caddyserver.com/docs/modules/http.matchers.geocn) | | +| Non-standard | [http.matchers.geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn) | matches requests by the client_ip GeoIP ASN. | +| Non-standard | [http.matchers.geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country) | matches requests by the client_ip GeoIP Country. | +| Standard | [http.matchers.header](https://caddyserver.com/docs/modules/http.matchers.header) | matches requests by header fields. | +| Standard | [http.matchers.header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) | matches requests by a regular expression on header fields. | +| Standard | [http.matchers.host](https://caddyserver.com/docs/modules/http.matchers.host) | matches requests by the Host value (case-insensitive). | +| Non-standard | [http.matchers.maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation) | Allows to filter requests based on source IP country. | +| Standard | [http.matchers.method](https://caddyserver.com/docs/modules/http.matchers.method) | matches requests by the method. | +| Standard | [http.matchers.not](https://caddyserver.com/docs/modules/http.matchers.not) | matches requests by negating the results of its matcher sets. | +| Standard | [http.matchers.path](https://caddyserver.com/docs/modules/http.matchers.path) | case-insensitively matches requests by the URI's path. | +| Standard | [http.matchers.path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) | matches requests by a regular expression on the URI's path. | +| Standard | [http.matchers.protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) | matches requests by protocol. | +| Standard | [http.matchers.query](https://caddyserver.com/docs/modules/http.matchers.query) | matches requests by the URI's query string. | +| Non-standard | [http.matchers.remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host) | matches based on the remote IP of the connection. | +| Standard | [http.matchers.remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) | matches requests by the remote IP address, i.e. | +| Non-standard | [http.matchers.signed](https://caddyserver.com/docs/modules/http.matchers.signed) | | +| Standard | [http.matchers.tls](https://caddyserver.com/docs/modules/http.matchers.tls) | matches HTTP requests based on the underlying TLS connection state. | +| Standard | [http.matchers.vars](https://caddyserver.com/docs/modules/http.matchers.vars) | is an HTTP request matcher which can match requests based on variables in the context or placeholder values. | +| Standard | [http.matchers.vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) | matches the value of the context variables by a given regular expression. | +| Standard | [http.precompressed.br](https://caddyserver.com/docs/modules/http.precompressed.br) | provides the file extension for files precompressed with brotli encoding. | +| Standard | [http.precompressed.gzip](https://caddyserver.com/docs/modules/http.precompressed.gzip) | provides the file extension for files precompressed with gzip encoding. | +| Standard | [http.precompressed.zstd](https://caddyserver.com/docs/modules/http.precompressed.zstd) | provides the file extension for files precompressed with zstandard encoding. | +| Standard | [http.reverse_proxy.selection_policies.client_ip_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.client_ip_hash) | is a policy that selects a host based on hashing the client IP of the request, as determined by the HTTP app's trusted proxies settings. | +| Standard | [http.reverse_proxy.selection_policies.cookie](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie) | is a policy that selects a host based on a given cookie name. | +| Standard | [http.reverse_proxy.selection_policies.first](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.first) | is a policy that selects the first available host. | +| Standard | [http.reverse_proxy.selection_policies.header](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.header) | is a policy that selects a host based on a given request header. | +| Standard | [http.reverse_proxy.selection_policies.ip_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.ip_hash) | is a policy that selects a host based on hashing the remote IP of the request. | +| Standard | [http.reverse_proxy.selection_policies.least_conn](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.least_conn) | is a policy that selects the host with the least active requests. | +| Standard | [http.reverse_proxy.selection_policies.query](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.query) | is a policy that selects a host based on a given request query parameter. | +| Standard | [http.reverse_proxy.selection_policies.random](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random) | is a policy that selects an available host at random. | +| Standard | [http.reverse_proxy.selection_policies.random_choose](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random_choose) | is a policy that selects two or more available hosts at random, then chooses the one with the least load. | +| Standard | [http.reverse_proxy.selection_policies.round_robin](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.round_robin) | is a policy that selects a host based on round-robin ordering. | +| Standard | [http.reverse_proxy.selection_policies.uri_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.uri_hash) | is a policy that selects a host by hashing the request URI. | +| Standard | [http.reverse_proxy.selection_policies.weighted_round_robin](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.weighted_round_robin) | is a policy that selects a host based on weighted round-robin ordering. | +| Non-standard | [http.reverse_proxy.transport.aws](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws) | The AWS transport module injects the AWS V4 Signature for requests proxied to AWS services. | +| Standard | [http.reverse_proxy.transport.fastcgi](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi) | facilitates FastCGI communication. | +| Standard | [http.reverse_proxy.transport.http](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http) | is essentially a configuration wrapper for http.Transport. | +| Non-standard | [http.reverse_proxy.transport.http_ntlm](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm) | proxies HTTP with NTLM authentication. | +| Non-standard | [http.reverse_proxy.transport.scgi](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.scgi) | facilitates SCGI communication. | +| Non-standard | [http.reverse_proxy.transport.uwsgi](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.uwsgi#github.com/BadAimWeeb/caddy-uwsgi-transport) (github.com/BadAimWeeb/caddy-uwsgi-transport) | The uwsgi transport module allows you to proxy requests to an uWSGI server with uwsgi protocol. | +| Non-standard | [http.reverse_proxy.transport.uwsgi](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.uwsgi#github.com/wxh06/caddy-uwsgi-transport) (github.com/wxh06/caddy-uwsgi-transport) | | +| Non-standard | [http.reverse_proxy.transport.ziti](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.ziti) | | +| Standard | [http.reverse_proxy.upstreams.a](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a) | provides upstreams from A/AAAA lookups. | +| Non-standard | [http.reverse_proxy.upstreams.docker](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.docker) | provides upstreams from the docker host. | +| Non-standard | [http.reverse_proxy.upstreams.etcd](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.etcd) | is a Caddy module that integrates etcd with reverse_proxy. | +| Standard | [http.reverse_proxy.upstreams.multi](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.multi) | is a single dynamic upstream source that aggregates the results of multiple dynamic upstream sources. | +| Standard | [http.reverse_proxy.upstreams.srv](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv) | provides upstreams from SRV lookups. | +| Non-standard | [k8s.admission.always_allow](https://caddyserver.com/docs/modules/k8s.admission.always_allow) | is a simple admission webhook controller that always allows requests. | +| Non-standard | [k8s.admission.always_deny](https://caddyserver.com/docs/modules/k8s.admission.always_deny) | is a simple admission webhook controller that always rejects requests. | +| Non-standard | [k8s.admission.annotation_injector](https://caddyserver.com/docs/modules/k8s.admission.annotation_injector) | is an admission webhook [Handler] that injects annotations into Kubernetes resources. | +| Non-standard | [k8s.admission.json_patch](https://caddyserver.com/docs/modules/k8s.admission.json_patch) | is an admission webhook controller that applies custom JSON patches to resources. | +| Non-standard | [k8s.admission.validation_policy](https://caddyserver.com/docs/modules/k8s.admission.validation_policy) | is an admission webhook controller that validates resources using CEL expressions. | +| Non-standard | [layer4](https://caddyserver.com/docs/modules/layer4) | is a Caddy app that operates closest to layer 4 of the OSI model. | +| Non-standard | [layer4.handlers.echo](https://caddyserver.com/docs/modules/layer4.handlers.echo) | is a simple handler that writes what it reads. | +| Non-standard | [layer4.handlers.proxy](https://caddyserver.com/docs/modules/layer4.handlers.proxy) | is a handler that can proxy connections. | +| Non-standard | [layer4.handlers.proxy_protocol](https://caddyserver.com/docs/modules/layer4.handlers.proxy_protocol) | is a connection handler that accepts the PROXY protocol. | +| Non-standard | [layer4.handlers.tee](https://caddyserver.com/docs/modules/layer4.handlers.tee) | is a layer4 handler that replicates a connection so that a branch of handlers can concurrently handle it. | +| Non-standard | [layer4.handlers.throttle](https://caddyserver.com/docs/modules/layer4.handlers.throttle) | throttles connections using leaky bucket rate limiting. | +| Non-standard | [layer4.handlers.tls](https://caddyserver.com/docs/modules/layer4.handlers.tls) | is a connection handler that terminates TLS. | +| Non-standard | [layer4.matchers.crowdsec](https://caddyserver.com/docs/modules/layer4.matchers.crowdsec) | matches IPs to CrowdSec decisions to (dis)allow access | +| Non-standard | [layer4.matchers.http](https://caddyserver.com/docs/modules/layer4.matchers.http) | is able to match HTTP connections. | +| Non-standard | [layer4.matchers.ip](https://caddyserver.com/docs/modules/layer4.matchers.ip) | matches requests by remote IP (or CIDR range). | +| Non-standard | [layer4.matchers.proxy_protocol](https://caddyserver.com/docs/modules/layer4.matchers.proxy_protocol) | | +| Non-standard | [layer4.matchers.ssh](https://caddyserver.com/docs/modules/layer4.matchers.ssh) | is able to match SSH connections. | +| Non-standard | [layer4.matchers.tls](https://caddyserver.com/docs/modules/layer4.matchers.tls) | is able to match TLS connections. | +| Non-standard | [layer4.matchers.xmpp](https://caddyserver.com/docs/modules/layer4.matchers.xmpp) | is able to match XMPP connections. | +| Non-standard | [layer4.proxy.selection_policies.first](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.first) | is a policy that selects the first available host. | +| Non-standard | [layer4.proxy.selection_policies.ip_hash](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.ip_hash) | is a policy that selects a host based on hashing the remote IP of the connection. | +| Non-standard | [layer4.proxy.selection_policies.least_conn](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.least_conn) | is a policy that selects the upstream with the least active connections. | +| Non-standard | [layer4.proxy.selection_policies.random](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random) | is a policy that selects an available host at random. | +| Non-standard | [layer4.proxy.selection_policies.random_choose](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random_choose) | is a policy that selects two or more available hosts at random, then chooses the one with the least load. | +| Non-standard | [layer4.proxy.selection_policies.round_robin](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.round_robin) | is a policy that selects a host based on round-robin ordering. | +| Standard | [pki](https://caddyserver.com/docs/modules/pki) | provides Public Key Infrastructure facilities for Caddy. | +| Non-standard | [pocketbase](https://caddyserver.com/docs/modules/pocketbase) | is a Caddy module that provides an embedded PocketBase server. | +| Non-standard | [profefe](https://caddyserver.com/docs/modules/profefe) | The `profefe` app collects profiling data during the life-time of the process and uploads them to the profefe server. | +| Non-standard | [profiling](https://caddyserver.com/docs/modules/profiling) | The `profiling` app hosts the collection of push-based profiling agents with common profiling parameters acorss the Caddy instance. | +| Non-standard | [profiling.profiler.profefe](https://caddyserver.com/docs/modules/profiling.profiler.profefe) | is the container of the `profefe` profiler if configured as a guest module of the `profiling` app | +| Non-standard | [profiling.profiler.pyroscope](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope) | is the container of the `pyroscope` profiler if configured as a guest module of the `profiling` app | +| Non-standard | [pyroscope](https://caddyserver.com/docs/modules/pyroscope) | The `pyroscope` app collects profiling data during the life-time of the process and uploads them to the Pyroscope server. | +| Non-standard | [reconnect](https://caddyserver.com/docs/modules/reconnect) | is a module that provides an additional "reconnect" network type that can be used to reconnect to a [network address] if the initial connection fails. | +| Non-standard | [scion](https://caddyserver.com/docs/modules/scion) | implements a caddy module. | +| Non-standard | [security](https://caddyserver.com/docs/modules/security) | implements security manager. | +| Non-standard | [ssh](https://caddyserver.com/docs/modules/ssh#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | is the app providing ssh services | +| Non-standard | [ssh](https://caddyserver.com/docs/modules/ssh#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | is the app providing ssh services | +| Non-standard | [ssh.actor_matchers.critical_option](https://caddyserver.com/docs/modules/ssh.actor_matchers.critical_option#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | matches request by the value of critical-option of the certificate/user | +| Non-standard | [ssh.actor_matchers.critical_option](https://caddyserver.com/docs/modules/ssh.actor_matchers.critical_option#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | matches request by the value of critical-option of the certificate/user | +| Non-standard | [ssh.actor_matchers.extension](https://caddyserver.com/docs/modules/ssh.actor_matchers.extension#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | matches request by SSH protocol extension | +| Non-standard | [ssh.actor_matchers.extension](https://caddyserver.com/docs/modules/ssh.actor_matchers.extension#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | matches request by SSH protocol extension | +| Non-standard | [ssh.actor_matchers.group](https://caddyserver.com/docs/modules/ssh.actor_matchers.group#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | matches requests by user's group | +| Non-standard | [ssh.actor_matchers.group](https://caddyserver.com/docs/modules/ssh.actor_matchers.group#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | matches requests by user's group | +| Non-standard | [ssh.actor_matchers.not](https://caddyserver.com/docs/modules/ssh.actor_matchers.not#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | matches requests by negating the results of its matcher sets. | +| Non-standard | [ssh.actor_matchers.not](https://caddyserver.com/docs/modules/ssh.actor_matchers.not#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | matches requests by negating the results of its matcher sets. | +| Non-standard | [ssh.actor_matchers.remote_ip](https://caddyserver.com/docs/modules/ssh.actor_matchers.remote_ip#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | matches requests by client IP (or CIDR range). | +| Non-standard | [ssh.actor_matchers.remote_ip](https://caddyserver.com/docs/modules/ssh.actor_matchers.remote_ip#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | matches requests by client IP (or CIDR range). | +| Non-standard | [ssh.actor_matchers.user](https://caddyserver.com/docs/modules/ssh.actor_matchers.user#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | matches requests by username | +| Non-standard | [ssh.actor_matchers.user](https://caddyserver.com/docs/modules/ssh.actor_matchers.user#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | matches requests by username | +| Non-standard | [ssh.actors.shell](https://caddyserver.com/docs/modules/ssh.actors.shell#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | is an `ssh.actors` module providing "shell" to a session. | +| Non-standard | [ssh.actors.shell](https://caddyserver.com/docs/modules/ssh.actors.shell#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | is an `ssh.actors` module providing "shell" to a session. | +| Non-standard | [ssh.actors.static_response](https://caddyserver.com/docs/modules/ssh.actors.static_response#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | is an actor that writes a static value to the client | +| Non-standard | [ssh.actors.static_response](https://caddyserver.com/docs/modules/ssh.actors.static_response#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | is an actor that writes a static value to the client | +| Non-standard | [ssh.ask.localforward.allow](https://caddyserver.com/docs/modules/ssh.ask.localforward.allow#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | is PortForwardingAsker module which always allows the session | +| Non-standard | [ssh.ask.localforward.allow](https://caddyserver.com/docs/modules/ssh.ask.localforward.allow#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | is PortForwardingAsker module which always allows the session | +| Non-standard | [ssh.ask.localforward.deny](https://caddyserver.com/docs/modules/ssh.ask.localforward.deny#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | Allow is PortForwardingAsker module which always rejects the session | +| Non-standard | [ssh.ask.localforward.deny](https://caddyserver.com/docs/modules/ssh.ask.localforward.deny#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | Allow is PortForwardingAsker module which always rejects the session | +| Non-standard | [ssh.ask.pty.allow](https://caddyserver.com/docs/modules/ssh.ask.pty.allow#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | is PtyAsker module which always allows the PTY session | +| Non-standard | [ssh.ask.pty.allow](https://caddyserver.com/docs/modules/ssh.ask.pty.allow#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | is PtyAsker module which always allows the PTY session | +| Non-standard | [ssh.ask.pty.deny](https://caddyserver.com/docs/modules/ssh.ask.pty.deny#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | Allow is PtyAsker module which always rejects the PTY session | +| Non-standard | [ssh.ask.pty.deny](https://caddyserver.com/docs/modules/ssh.ask.pty.deny#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | Allow is PtyAsker module which always rejects the PTY session | +| Non-standard | [ssh.ask.reverseforward.allow](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.allow#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | | +| Non-standard | [ssh.ask.reverseforward.allow](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.allow#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | | +| Non-standard | [ssh.ask.reverseforward.deny](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.deny#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | | +| Non-standard | [ssh.ask.reverseforward.deny](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.deny#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | | +| Non-standard | [ssh.authentication.flows.interactive](https://caddyserver.com/docs/modules/ssh.authentication.flows.interactive#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | holds the interactive authentication providers | +| Non-standard | [ssh.authentication.flows.interactive](https://caddyserver.com/docs/modules/ssh.authentication.flows.interactive#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | holds the interactive authentication providers | +| Non-standard | [ssh.authentication.flows.password_auth](https://caddyserver.com/docs/modules/ssh.authentication.flows.password_auth#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | // PasswordAuthFlow holds the password-based authentication providers | +| Non-standard | [ssh.authentication.flows.password_auth](https://caddyserver.com/docs/modules/ssh.authentication.flows.password_auth#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | // PasswordAuthFlow holds the password-based authentication providers | +| Non-standard | [ssh.authentication.flows.public_key](https://caddyserver.com/docs/modules/ssh.authentication.flows.public_key#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | holds the public key authentication providers | +| Non-standard | [ssh.authentication.flows.public_key](https://caddyserver.com/docs/modules/ssh.authentication.flows.public_key#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | holds the public key authentication providers | +| Non-standard | [ssh.authentication.providers.password.static](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | | +| Non-standard | [ssh.authentication.providers.password.static](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | | +| Non-standard | [ssh.authentication.providers.public_key.os](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | is an authenticator that authenticates the user based on the `.ssh/authorized_keys` in the user's $HOME | +| Non-standard | [ssh.authentication.providers.public_key.os](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | is an authenticator that authenticates the user based on the `.ssh/authorized_keys` in the user's $HOME | +| Non-standard | [ssh.authentication.providers.public_key.static](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | | +| Non-standard | [ssh.authentication.providers.public_key.static](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | | +| Non-standard | [ssh.config.loaders.provided](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | Lifted and merged from golang.org/x/crypto/ssh ProvidedConfig holds server specific configuration data. | +| Non-standard | [ssh.config.loaders.provided](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | Lifted and merged from golang.org/x/crypto/ssh ProvidedConfig holds server specific configuration data. | +| Non-standard | [ssh.config_matchers.local_ip](https://caddyserver.com/docs/modules/ssh.config_matchers.local_ip#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | matches requests by local IP (or CIDR range). | +| Non-standard | [ssh.config_matchers.local_ip](https://caddyserver.com/docs/modules/ssh.config_matchers.local_ip#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | matches requests by local IP (or CIDR range). | +| Non-standard | [ssh.config_matchers.not](https://caddyserver.com/docs/modules/ssh.config_matchers.not#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | matches requests by negating the results of its matcher sets. | +| Non-standard | [ssh.config_matchers.not](https://caddyserver.com/docs/modules/ssh.config_matchers.not#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | matches requests by negating the results of its matcher sets. | +| Non-standard | [ssh.config_matchers.remote_ip](https://caddyserver.com/docs/modules/ssh.config_matchers.remote_ip#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | matches requests by client IP (or CIDR range). | +| Non-standard | [ssh.config_matchers.remote_ip](https://caddyserver.com/docs/modules/ssh.config_matchers.remote_ip#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | matches requests by client IP (or CIDR range). | +| Non-standard | [ssh.session.authorizers.chained](https://caddyserver.com/docs/modules/ssh.session.authorizers.chained#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | is a multi-authorizer module that authorizes a session against multiple authorizers | +| Non-standard | [ssh.session.authorizers.chained](https://caddyserver.com/docs/modules/ssh.session.authorizers.chained#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | is a multi-authorizer module that authorizes a session against multiple authorizers | +| Non-standard | [ssh.session.authorizers.max_session](https://caddyserver.com/docs/modules/ssh.session.authorizers.max_session#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | is an authorizer that permits sessions so long as the number of active sessions is below the specified maximum. | +| Non-standard | [ssh.session.authorizers.max_session](https://caddyserver.com/docs/modules/ssh.session.authorizers.max_session#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | is an authorizer that permits sessions so long as the number of active sessions is below the specified maximum. | +| Non-standard | [ssh.session.authorizers.public](https://caddyserver.com/docs/modules/ssh.session.authorizers.public#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | authorizes all sessions | +| Non-standard | [ssh.session.authorizers.public](https://caddyserver.com/docs/modules/ssh.session.authorizers.public#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | authorizes all sessions | +| Non-standard | [ssh.session.authorizers.reject](https://caddyserver.com/docs/modules/ssh.session.authorizers.reject#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | rejects all sessions | +| Non-standard | [ssh.session.authorizers.reject](https://caddyserver.com/docs/modules/ssh.session.authorizers.reject#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | rejects all sessions | +| Non-standard | [ssh.signers.fallback](https://caddyserver.com/docs/modules/ssh.signers.fallback#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | signer checks if the RSA, Ed25519, and ECDSA private keys exist in the storage to load. | +| Non-standard | [ssh.signers.fallback](https://caddyserver.com/docs/modules/ssh.signers.fallback#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | will check if the signers exist in the storage, otherwise generate them. | +| Non-standard | [ssh.signers.file](https://caddyserver.com/docs/modules/ssh.signers.file#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | is a session signer that uses pre-existing keys, which may be backed as files | +| Non-standard | [ssh.signers.file](https://caddyserver.com/docs/modules/ssh.signers.file#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | is a session signer that uses pre-existing keys, which may be backed as files or retrievable via HTTP | +| Non-standard | [ssh.subsystem.inmem_sftp](https://caddyserver.com/docs/modules/ssh.subsystem.inmem_sftp#github.com/kadeessh/kadeessh) (github.com/kadeessh/kadeessh) | is an in-memory SFTP server allowing shared space between all users. | +| Non-standard | [ssh.subsystem.inmem_sftp](https://caddyserver.com/docs/modules/ssh.subsystem.inmem_sftp#github.com/mohammed90/caddy-ssh) (github.com/mohammed90/caddy-ssh) | is an in-memory SFTP server allowing shared space between all users. | +| Non-standard | [supervisor](https://caddyserver.com/docs/modules/supervisor) | | +| Standard | [tls](https://caddyserver.com/docs/modules/tls) | provides TLS facilities including certificate loading and management, client auth, and more. | +| Standard | [tls.ca_pool.source.file](https://caddyserver.com/docs/modules/tls.ca_pool.source.file) | generates trusted root certificates pool from the designated DER and PEM file | +| Standard | [tls.ca_pool.source.http](https://caddyserver.com/docs/modules/tls.ca_pool.source.http) | The HTTPCertPool fetches the trusted root certificates from HTTP(S) endpoints. | +| Standard | [tls.ca_pool.source.inline](https://caddyserver.com/docs/modules/tls.ca_pool.source.inline) | is a certificate authority pool provider coming from a DER-encoded certificates in the config | +| Standard | [tls.ca_pool.source.lazy](https://caddyserver.com/docs/modules/tls.ca_pool.source.lazy) | defers the generation of the certificate pool from the guest module to demand-time rather than at provisionig time. | +| Standard | [tls.ca_pool.source.pki_intermediate](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_intermediate) | extracts the trusted intermediate certificates from Caddy's native 'pki' app | +| Standard | [tls.ca_pool.source.pki_root](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_root) | extracts the trusted root certificates from Caddy's native 'pki' app | +| Standard | [tls.ca_pool.source.storage](https://caddyserver.com/docs/modules/tls.ca_pool.source.storage) | extracts the trusted certificates root from Caddy storage | +| Standard | [tls.certificates.automate](https://caddyserver.com/docs/modules/tls.certificates.automate) | will automatically manage certificates for the names in the list, including obtaining and renewing certificates. | +| Standard | [tls.certificates.load_files](https://caddyserver.com/docs/modules/tls.certificates.load_files) | loads certificates and their associated keys from disk. | +| Standard | [tls.certificates.load_folders](https://caddyserver.com/docs/modules/tls.certificates.load_folders) | loads certificates and their associated keys from disk by recursively walking the specified directories, looking for PEM files which contain both a certificate and a key. | +| Standard | [tls.certificates.load_pem](https://caddyserver.com/docs/modules/tls.certificates.load_pem) | loads certificates and their associated keys by decoding their PEM blocks directly. | +| Standard | [tls.certificates.load_storage](https://caddyserver.com/docs/modules/tls.certificates.load_storage) | loads certificates and their associated keys from the globally configured storage module. | +| Non-standard | [tls.client_auth.revocation](https://caddyserver.com/docs/modules/tls.client_auth.revocation) | Allows checking of client certificate revocation status based on CRL or OCSP | +| Non-standard | [tls.client_auth.verifier.ldap_validator](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator) | | +| Standard | [tls.client_auth.verifier.leaf](https://caddyserver.com/docs/modules/tls.client_auth.verifier.leaf) | verifies the client's leaf certificate. | +| Non-standard | [tls.client_auth.verifier.san_dns](https://caddyserver.com/docs/modules/tls.client_auth.verifier.san_dns) | | +| Standard | [tls.ech.publishers.dns](https://caddyserver.com/docs/modules/tls.ech.publishers.dns) | configures how to publish an ECH configuration to DNS records for the specified domains. | +| Non-standard | [tls.get_certificate.file](https://caddyserver.com/docs/modules/tls.get_certificate.file) | can get a certificate via file. | +| Standard | [tls.get_certificate.http](https://caddyserver.com/docs/modules/tls.get_certificate.http) | can get a certificate via HTTP(S) request. | +| Non-standard | [tls.get_certificate.pfx](https://caddyserver.com/docs/modules/tls.get_certificate.pfx) | allow user to set path to .pfx file to load TLS certificate | +| Standard | [tls.get_certificate.tailscale](https://caddyserver.com/docs/modules/tls.get_certificate.tailscale) | is a module that can get certificates from the local Tailscale process. | +| Non-standard | [tls.handshake_match.alpn](https://caddyserver.com/docs/modules/tls.handshake_match.alpn) | | +| Standard | [tls.handshake_match.local_ip](https://caddyserver.com/docs/modules/tls.handshake_match.local_ip) | matches based on the IP address of the interface receiving the connection. | +| Standard | [tls.handshake_match.remote_ip](https://caddyserver.com/docs/modules/tls.handshake_match.remote_ip) | matches based on the remote IP of the connection. | +| Standard | [tls.handshake_match.sni](https://caddyserver.com/docs/modules/tls.handshake_match.sni) | matches based on SNI. | +| Standard | [tls.handshake_match.sni_regexp](https://caddyserver.com/docs/modules/tls.handshake_match.sni_regexp) | matches based on SNI using a regular expression. | +| Standard | [tls.issuance.acme](https://caddyserver.com/docs/modules/tls.issuance.acme) | manages certificates using the ACME protocol (RFC 8555). | +| Non-standard | [tls.issuance.certsrv](https://caddyserver.com/docs/modules/tls.issuance.certsrv) | can request certificates from a Microsoft Active Directory Certificate Services instance | +| Standard | [tls.issuance.internal](https://caddyserver.com/docs/modules/tls.issuance.internal) | is a certificate issuer that generates certificates internally using a locally-configured CA which can be customized using the `pki` app. | +| Standard | [tls.issuance.zerossl](https://caddyserver.com/docs/modules/tls.issuance.zerossl) | uses the ZeroSSL API to get certificates. | +| Standard | [tls.leaf_cert_loader.file](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.file) | loads leaf certificates from disk. | +| Standard | [tls.leaf_cert_loader.folder](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.folder) | loads certificates and their associated keys from disk by recursively walking the specified directories, looking for PEM files which contain both a certificate and a key. | +| Standard | [tls.leaf_cert_loader.pem](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.pem) | loads leaf certificates by decoding their PEM blocks directly. | +| Standard | [tls.leaf_cert_loader.storage](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.storage) | loads leaf certificates from the globally configured storage module. | +| Standard | [tls.permission.http](https://caddyserver.com/docs/modules/tls.permission.http) | determines permission for a TLS certificate by making a request to an HTTP endpoint. | +| Standard | [tls.stek.distributed](https://caddyserver.com/docs/modules/tls.stek.distributed) | implements a distributed STEK provider. | +| Standard | [tls.stek.standard](https://caddyserver.com/docs/modules/tls.stek.standard) | | +| Non-standard | [trojan.proxies.env_proxy](https://caddyserver.com/docs/modules/trojan.proxies.env_proxy) | is ... | +| Non-standard | [trojan.proxies.no_proxy](https://caddyserver.com/docs/modules/trojan.proxies.no_proxy) | is ... | +| Non-standard | [trojan.upstreams.caddy](https://caddyserver.com/docs/modules/trojan.upstreams.caddy) | is ... | +| Non-standard | [trojan.upstreams.memory](https://caddyserver.com/docs/modules/trojan.upstreams.memory) | is ... | diff --git a/docs/caddy/modules/admin.api.load.md b/docs/caddy/modules/admin.api.load.md new file mode 100644 index 0000000..0ac715f --- /dev/null +++ b/docs/caddy/modules/admin.api.load.md @@ -0,0 +1,38 @@ +Title: Module admin.api.load - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/admin.api.load + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module admin.api.load**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.load#docs "Direct link") +--------------------------------------------------------------------------------------- + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.load#docs "Direct link") +--------------------------------------------------------------------------------------- + +admin.api.load is a module that provides the /load endpoint for the Caddy admin API. The only reason it's not baked into the caddy package directly is because of the import of the caddyconfig package for its GetAdapter function. If the caddy package depends on the caddyconfig package, then the caddyconfig package will not be able to import the caddy package, and it can more easily cause backward edges in the dependency tree (i.e. import cycle). Fortunately, the admin API has first-class support for adding endpoints from modules. diff --git a/docs/caddy/modules/admin.api.metrics.md b/docs/caddy/modules/admin.api.metrics.md new file mode 100644 index 0000000..8dec408 --- /dev/null +++ b/docs/caddy/modules/admin.api.metrics.md @@ -0,0 +1,38 @@ +Title: Module admin.api.metrics - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/admin.api.metrics + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module admin.api.metrics**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.metrics#docs "Direct link") +------------------------------------------------------------------------------------------ + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.metrics#docs "Direct link") +------------------------------------------------------------------------------------------ + +admin.api.metrics is a module that serves a metrics endpoint so that any gathered metrics can be exposed for scraping. This module is not configurable, and is permanently mounted to the admin API endpoint at "/metrics". See the Metrics module for a configurable endpoint that is usable if the Admin API is disabled. diff --git a/docs/caddy/modules/admin.api.pki.md b/docs/caddy/modules/admin.api.pki.md new file mode 100644 index 0000000..33e12d6 --- /dev/null +++ b/docs/caddy/modules/admin.api.pki.md @@ -0,0 +1,126 @@ +Title: Module admin.api.pki - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/admin.api.pki + +Markdown Content: +Module admin.api.pki - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module admin.api.pki +==================== + + There is more than one module named **Module admin.api.pki**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.pki#docs "Direct link") +-------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.pki#docs "Direct link") +-------------------------------------------------------------------------------------- + +admin.api.pki is a module that serves PKI endpoints to retrieve information about the CAs being managed by Caddy. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/admin.api.pocketbase.md b/docs/caddy/modules/admin.api.pocketbase.md new file mode 100644 index 0000000..6fa9ab1 --- /dev/null +++ b/docs/caddy/modules/admin.api.pocketbase.md @@ -0,0 +1,38 @@ +Title: Module admin.api.pocketbase - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/admin.api.pocketbase + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module admin.api.pocketbase**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.pocketbase#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-pocketbase](https://github.com/mohammed90/caddy-pocketbase)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-pocketbase` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.pocketbase#docs "Direct link") +--------------------------------------------------------------------------------------------- + +admin.api.pocketbase is a module that serves PKI endpoints to retrieve information about the CAs being managed by Caddy. diff --git a/docs/caddy/modules/admin.api.purge.md b/docs/caddy/modules/admin.api.purge.md new file mode 100644 index 0000000..159da6a --- /dev/null +++ b/docs/caddy/modules/admin.api.purge.md @@ -0,0 +1,38 @@ +Title: Module admin.api.purge - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/admin.api.purge + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module admin.api.purge**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.purge#docs "Direct link") +---------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sillygod/cdp-cache](https://github.com/sillygod/cdp-cache)** + +**Custom builds:**`xcaddy build --with github.com/sillygod/cdp-cache` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.purge#docs "Direct link") +---------------------------------------------------------------------------------------- + +admin.api.purge is a module that provides the /purge endpoint as the admin api. diff --git a/docs/caddy/modules/admin.api.reverse_proxy.md b/docs/caddy/modules/admin.api.reverse_proxy.md new file mode 100644 index 0000000..26eebd9 --- /dev/null +++ b/docs/caddy/modules/admin.api.reverse_proxy.md @@ -0,0 +1,38 @@ +Title: Module admin.api.reverse_proxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/admin.api.reverse_proxy + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module admin.api.reverse_proxy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.reverse_proxy#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.reverse_proxy#docs "Direct link") +------------------------------------------------------------------------------------------------ + +admin.api.reverse_proxy is a module that provides the /reverse_proxy/upstreams endpoint for the Caddy admin API. This allows for checking the health of configured reverse proxy upstreams in the pool. diff --git a/docs/caddy/modules/admin.api.trojan.md b/docs/caddy/modules/admin.api.trojan.md new file mode 100644 index 0000000..1c6e08d --- /dev/null +++ b/docs/caddy/modules/admin.api.trojan.md @@ -0,0 +1,128 @@ +Title: Module admin.api.trojan - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/admin.api.trojan + +Markdown Content: +Module admin.api.trojan - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module admin.api.trojan +======================= + + There is more than one module named **Module admin.api.trojan**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.trojan#docs "Direct link") +----------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/imgk/caddy-trojan + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/imgk/caddy-trojan](https://github.com/imgk/caddy-trojan)** + +**Custom builds:**`xcaddy build --with github.com/imgk/caddy-trojan/admin` + +Description[🔗](https://caddyserver.com/docs/modules/admin.api.trojan#docs "Direct link") +----------------------------------------------------------------------------------------- + +admin.api.trojan is ... + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fadmin.api.trojan&r=&sid=GVMGKAKP&qs=%7B%7D&cid=82455723) diff --git a/docs/caddy/modules/caddy.config_loaders.http.md b/docs/caddy/modules/caddy.config_loaders.http.md new file mode 100644 index 0000000..5f1b178 --- /dev/null +++ b/docs/caddy/modules/caddy.config_loaders.http.md @@ -0,0 +1,164 @@ +Title: Module caddy.config_loaders.http - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.config_loaders.http + +Markdown Content: +Module caddy.config_loaders.http - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.config_loaders.http +================================ + + There is more than one module named **Module caddy.config_loaders.http**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +``` +{▾ "method": "", "url": "", "header": { + "": [""] + }, "timeout": 0, "adapter": "", "tls": {▾ "use_server_identity": false, "client_certificate_file": "", "client_certificate_key_file": "", "root_ca_pem_files": [""] }} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +caddy.config_loaders.http can load Caddy configs over HTTP(S). + +If the response is not a JSON config, a config adapter must be specified either in the loader config (`adapter`), or in the Content-Type HTTP header returned in the HTTP response from the server. The Content-Type header is read just like the admin API's `/load` endpoint. If you don't have control over the HTTP server (but can still trust its response), you can override the Content-Type header by setting the `adapter` property in this config. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#method)method +The method for the request. Default: GET + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#url)url +The URL of the request. + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#header)header +HTTP headers to add to the request. + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#timeout)timeout +Maximum time allowed for a complete connection and request. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#adapter)adapter +The name of the config adapter to use, if any. Only needed if the HTTP response is not a JSON config and if the server's Content-Type header is missing or incorrect. + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#tls)tls +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#tls/use_server_identity)tls/use_server_identity +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#tls/client_certificate_file)tls/client_certificate_file +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#tls/client_certificate_key_file)tls/client_certificate_key_file +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.http#tls/root_ca_pem_files)tls/root_ca_pem_files +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.config_loaders.storage.md b/docs/caddy/modules/caddy.config_loaders.storage.md new file mode 100644 index 0000000..65c0df9 --- /dev/null +++ b/docs/caddy/modules/caddy.config_loaders.storage.md @@ -0,0 +1,47 @@ +Title: Module caddy.config_loaders.storage - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.config_loaders.storage + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.config_loaders.storage**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.storage#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +`{▾ "storage": {•••}, "key": "", "adapter": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-storage-loader](https://github.com/mohammed90/caddy-storage-loader)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-storage-loader` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.storage#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +caddy.config_loaders.storage is a dynamic configuration loader that reads the configuration from a Caddy storage. If the storage is not configured, the default storage is used, which may be the file-system if none is configured If the `key` is not configured, the default key is `config/caddy.json`. + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.storage#storage)storage +StorageRaw is a storage module that defines how/where Caddy stores assets (such as TLS certificates). The default storage module is `caddy.storage.file_system` (the local file system), and the default path [depends on the OS and environment](https://caddyserver.com/docs/conventions#data-directory). + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.storage#key)key +The storage key at which the configuration is to be found + +[🔗](https://caddyserver.com/docs/modules/caddy.config_loaders.storage#adapter)adapter +The adapter to use to convert the storage's contents to Caddy JSON. diff --git a/docs/caddy/modules/caddy.filesystems.md b/docs/caddy/modules/caddy.filesystems.md new file mode 100644 index 0000000..2fbf11b --- /dev/null +++ b/docs/caddy/modules/caddy.filesystems.md @@ -0,0 +1,52 @@ +Title: Module caddy.filesystems - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.filesystems + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.filesystems**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.filesystems#docs "Direct link") +------------------------------------------------------------------------------------------ + +`{▾ "filesystems": [{▾ "name": "", "file_system": {•••} }]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.filesystems#docs "Direct link") +------------------------------------------------------------------------------------------ + +caddy.filesystems loads caddy.fs modules into the global filesystem map + +[🔗](https://caddyserver.com/docs/modules/caddy.filesystems#filesystems)filesystems +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.filesystems#filesystems/name)filesystems/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.filesystems#filesystems/file_system)filesystems/file_system +There are no docs for this property. + +Fulfilled by modules in namespace: **caddy.fs** + +* [git](https://caddyserver.com/docs/modules/caddy.fs.git)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.fs.s3)Non-standard diff --git a/docs/caddy/modules/caddy.fs.git.md b/docs/caddy/modules/caddy.fs.git.md new file mode 100644 index 0000000..94b0cda --- /dev/null +++ b/docs/caddy/modules/caddy.fs.git.md @@ -0,0 +1,45 @@ +Title: Module caddy.fs.git - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.fs.git + +Markdown Content: +There is more than one module named **Module caddy.fs.git**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.fs.git#docs "Direct link") +------------------------------------------------------------------------------------- + +Field List +---------- + +`{▾ "url": "", "ref": "", "refresh_period": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-git-fs](https://github.com/mohammed90/caddy-git-fs)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-git-fs` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.fs.git#docs "Direct link") +------------------------------------------------------------------------------------- + +The `git` filesystem module uses a git repository as the virtual filesystem. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.fs.git#url)url +The URL of the git repository + +[🔗](https://caddyserver.com/docs/modules/caddy.fs.git#ref)ref +The reference to clone the repository at. An empty value means HEAD. + +[🔗](https://caddyserver.com/docs/modules/caddy.fs.git#refresh_period)refresh_period +The period between ref refreshes + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/modules/caddy.fs.s3.md b/docs/caddy/modules/caddy.fs.s3.md new file mode 100644 index 0000000..f69ce55 --- /dev/null +++ b/docs/caddy/modules/caddy.fs.s3.md @@ -0,0 +1,56 @@ +Title: Module caddy.fs.s3 - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.fs.s3 + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.fs.s3**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.fs.s3#docs "Direct link") +------------------------------------------------------------------------------------ + +`{▾ "bucket": "", "region": "", "profile": "", "endpoint": "", "use_path_style": false, "force_path_style": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sagikazarmark/caddy-fs-s3](https://github.com/sagikazarmark/caddy-fs-s3)** + +**Custom builds:**`xcaddy build --with github.com/sagikazarmark/caddy-fs-s3` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.fs.s3#docs "Direct link") +------------------------------------------------------------------------------------ + +caddy.fs.s3 is a Caddy virtual filesystem module for AWS S3 (and compatible) object store. + +[🔗](https://caddyserver.com/docs/modules/caddy.fs.s3#bucket)bucket +The name of the S3 bucket. + +[🔗](https://caddyserver.com/docs/modules/caddy.fs.s3#region)region +The AWS region the bucket is hosted in. + +[🔗](https://caddyserver.com/docs/modules/caddy.fs.s3#profile)profile +The AWS profile to use if mulitple profiles are specified. + +[🔗](https://caddyserver.com/docs/modules/caddy.fs.s3#endpoint)endpoint +Use non-standard endpoint for S3. + +[🔗](https://caddyserver.com/docs/modules/caddy.fs.s3#use_path_style)use_path_style +Set this to `true` to enable the client to use path-style addressing. + +[🔗](https://caddyserver.com/docs/modules/caddy.fs.s3#force_path_style)force_path_style +DEPRECATED: please use 'use_path_style' instead. Set this to `true` to force the request to use path-style addressing. diff --git a/docs/caddy/modules/caddy.listeners.http_redirect.md b/docs/caddy/modules/caddy.listeners.http_redirect.md new file mode 100644 index 0000000..0355b16 --- /dev/null +++ b/docs/caddy/modules/caddy.listeners.http_redirect.md @@ -0,0 +1,44 @@ +Title: Module caddy.listeners.http_redirect - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.listeners.http_redirect + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.listeners.http_redirect**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.http_redirect#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +`{▾ "max_header_bytes": 0}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.http_redirect#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +caddy.listeners.http_redirect provides HTTP->HTTPS redirects for connections that come on the TLS port as an HTTP request, by detecting using the first few bytes that it's not a TLS handshake, but instead an HTTP request. + +This is especially useful when using a non-standard HTTPS port. A user may simply type the address in their browser without the https:// scheme, which would cause the browser to attempt the connection over HTTP, but this would cause a "Client sent an HTTP request to an HTTPS server" error response. + +This listener wrapper must be placed BEFORE the "tls" listener wrapper, for it to work properly. + +MaxHeaderBytes is the maximum size to parse from a client's HTTP request headers. Default: 1 MB diff --git a/docs/caddy/modules/caddy.listeners.ngrok.md b/docs/caddy/modules/caddy.listeners.ngrok.md new file mode 100644 index 0000000..25bb862 --- /dev/null +++ b/docs/caddy/modules/caddy.listeners.ngrok.md @@ -0,0 +1,44 @@ +Title: Module caddy.listeners.ngrok - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.listeners.ngrok + +Markdown Content: +caddy.listeners.ngrok is a `listener_wrapper` whose address is an ngrok-ingress address + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok#auth_token)auth_token +The user's ngrok authentication token + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok#tunnel)tunnel +The ngrok tunnel type and configuration; defaults to 'tcp' + +Fulfilled by modules in namespace: **caddy.listeners.ngrok.tunnels** + +* [http](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http)Non-standard +* [labeled](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.labeled)Non-standard +* [tcp](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tcp)Non-standard +* [tls](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tls)Non-standard + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok#metadata)metadata +Opaque, machine-readable metadata string for this session. Metadata is made available to you in the ngrok dashboard and the Agents API resource. It is a useful way to allow you to uniquely identify sessions. We suggest encoding the value in a structured format like JSON. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok#region)region +Region configures the session to connect to a specific ngrok region. If unspecified, ngrok will connect to the fastest region, which is usually what you want. The [full list of ngrok regions] can be found in the ngrok documentation. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok#server)server +Server configures the network address to dial to connect to the ngrok service. Use this option only if you are connecting to a custom agent ingress. + +See the [server_addr parameter in the ngrok docs] for additional details. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok#heartbeat_tolerance)heartbeat_tolerance +HeartbeatTolerance configures the duration to wait for a response to a heartbeat before assuming the session connection is dead and attempting to reconnect. + +See the [heartbeat_tolerance parameter in the ngrok docs] for additional details. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok#heartbeat_interval)heartbeat_interval +HeartbeatInterval configures how often the session will send heartbeat messages to the ngrok service to check session liveness. + +See the [heartbeat_interval parameter in the ngrok docs] for additional details. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/modules/caddy.listeners.ngrok.tunnels.http.md b/docs/caddy/modules/caddy.listeners.ngrok.tunnels.http.md new file mode 100644 index 0000000..8138704 --- /dev/null +++ b/docs/caddy/modules/caddy.listeners.ngrok.tunnels.http.md @@ -0,0 +1,180 @@ +Title: Module caddy.listeners.ngrok.tunnels.http - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http + +Markdown Content: +Module caddy.listeners.ngrok.tunnels.http - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.listeners.ngrok.tunnels.http +========================================= + + There is more than one module named **Module caddy.listeners.ngrok.tunnels.http**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mohammed90/caddy-ngrok-listener + +`{▾ "allow_cidr": [""], "deny_cidr": [""], "domain": "", "metadata": "", "scheme": "", "circuit_breaker": 0, "compression": false, "websocket_tcp_converter": false, "basic_auth": [{▾ "username": "", "password": "" }], "oidc": {▾ "issuer_url": "", "client_id": "", "client_secret": "", "allow_emails": [""], "allow_domains": [""], "scopes": [""] }}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-ngrok-listener](https://github.com/mohammed90/caddy-ngrok-listener)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-ngrok-listener` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +ngrok HTTP tunnel + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#allow_cidr)allow_cidr +Rejects connections that do not match the given CIDRs + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#deny_cidr)deny_cidr +Rejects connections that match the given CIDRs and allows all other CIDRs. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#domain)domain +the domain for this edge. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#metadata)metadata +opaque metadata string for this tunnel. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#scheme)scheme +sets the scheme for this edge. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#circuit_breaker)circuit_breaker +the 5XX response ratio at which the ngrok edge will stop sending requests to this tunnel. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#compression)compression +enables gzip compression. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#websocket_tcp_converter)websocket_tcp_converter +enables the websocket-to-tcp converter. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#basic_auth)basic_auth +A map of basicauth, username and password value pairs for this tunnel. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#basic_auth/username)basic_auth/username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#basic_auth/password)basic_auth/password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#oidc)oidc +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#oidc/issuer_url)oidc/issuer_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#oidc/client_id)oidc/client_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#oidc/client_secret)oidc/client_secret +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#oidc/allow_emails)oidc/allow_emails +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#oidc/allow_domains)oidc/allow_domains +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.http#oidc/scopes)oidc/scopes +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.listeners.ngrok.tunnels.labeled.md b/docs/caddy/modules/caddy.listeners.ngrok.tunnels.labeled.md new file mode 100644 index 0000000..687928c --- /dev/null +++ b/docs/caddy/modules/caddy.listeners.ngrok.tunnels.labeled.md @@ -0,0 +1,48 @@ +Title: Module caddy.listeners.ngrok.tunnels.labeled - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.labeled + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.listeners.ngrok.tunnels.labeled**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.labeled#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +``` +{▾ "labels": { + "": "" + }, "metadata": ""} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-ngrok-listener](https://github.com/mohammed90/caddy-ngrok-listener)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-ngrok-listener` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.labeled#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +ngrok Labeled Tunnel + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.labeled#labels)labels +A map of label, value pairs for this tunnel. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.labeled#metadata)metadata +opaque metadata string for this tunnel. diff --git a/docs/caddy/modules/caddy.listeners.ngrok.tunnels.tcp.md b/docs/caddy/modules/caddy.listeners.ngrok.tunnels.tcp.md new file mode 100644 index 0000000..c552476 --- /dev/null +++ b/docs/caddy/modules/caddy.listeners.ngrok.tunnels.tcp.md @@ -0,0 +1,50 @@ +Title: Module caddy.listeners.ngrok.tunnels.tcp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tcp + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.listeners.ngrok.tunnels.tcp**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tcp#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +`{▾ "remote_addr": "", "metadata": "", "allow_cidr": [""], "deny_cidr": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-ngrok-listener](https://github.com/mohammed90/caddy-ngrok-listener)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-ngrok-listener` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tcp#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +ngrok TCP tunnel + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tcp#remote_addr)remote_addr +The remote TCP address to request for this edge + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tcp#metadata)metadata +opaque metadata string for this tunnel. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tcp#allow_cidr)allow_cidr +Rejects connections that do not match the given CIDRs + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tcp#deny_cidr)deny_cidr +Rejects connections that match the given CIDRs and allows all other CIDRs. diff --git a/docs/caddy/modules/caddy.listeners.ngrok.tunnels.tls.md b/docs/caddy/modules/caddy.listeners.ngrok.tunnels.tls.md new file mode 100644 index 0000000..bf019e6 --- /dev/null +++ b/docs/caddy/modules/caddy.listeners.ngrok.tunnels.tls.md @@ -0,0 +1,50 @@ +Title: Module caddy.listeners.ngrok.tunnels.tls - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tls + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.listeners.ngrok.tunnels.tls**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tls#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +`{▾ "domain": "", "metadata": "", "allow_cidr": [""], "deny_cidr": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-ngrok-listener](https://github.com/mohammed90/caddy-ngrok-listener)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-ngrok-listener` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tls#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +ngrok TLS tunnel Note: only available for ngrok Enterprise user + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tls#domain)domain +the domain for this edge. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tls#metadata)metadata +opaque metadata string for this tunnel. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tls#allow_cidr)allow_cidr +Rejects connections that do not match the given CIDRs + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.ngrok.tunnels.tls#deny_cidr)deny_cidr +Rejects connections that match the given CIDRs and allows all other CIDRs. diff --git a/docs/caddy/docs/docs/modules/tls.issuance.acme.md b/docs/caddy/modules/caddy.listeners.proxy_protocol.md similarity index 72% rename from docs/caddy/docs/docs/modules/tls.issuance.acme.md rename to docs/caddy/modules/caddy.listeners.proxy_protocol.md index 0e52522..c9dfa17 100644 --- a/docs/caddy/docs/docs/modules/tls.issuance.acme.md +++ b/docs/caddy/modules/caddy.listeners.proxy_protocol.md @@ -1,21 +1,21 @@ -Title: Module tls.issuance.acme - Caddy Documentation +Title: Modules - Caddy Documentation -URL Source: https://caddyserver.com/docs/modules/tls.issuance.acme +URL Source: https://caddyserver.com/docs/modules/caddy.listeners.proxy_protocol Markdown Content: -Module tls.issuance.acme - Caddy Documentation -=============== +Modules - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== -Documentation +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +Documentation -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +27,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +40,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,9 +59,10 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) All Modules =========== @@ -71,13 +74,13 @@ We recommend using your browser's "Find in page" feature for quick lookups. | | Module ID | Description | | --- | --- | --- | -There is more than one module named . Choose one by its repository. + There is more than one module named . Choose one by its repository. -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` Description ----------- @@ -89,9 +92,12 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.listeners.throttle.md b/docs/caddy/modules/caddy.listeners.throttle.md new file mode 100644 index 0000000..4c36e6e --- /dev/null +++ b/docs/caddy/modules/caddy.listeners.throttle.md @@ -0,0 +1,142 @@ +Title: Module caddy.listeners.throttle - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.listeners.throttle + +Markdown Content: +Module caddy.listeners.throttle - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.listeners.throttle +=============================== + + There is more than one module named **Module caddy.listeners.throttle**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.throttle#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mohammed90/caddy-throttle-listener + +`{▾ "up": "", "down": "", "latency": 0, "jitter": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-throttle-listener](https://github.com/mohammed90/caddy-throttle-listener)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-throttle-listener` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.throttle#docs "Direct link") +------------------------------------------------------------------------------------------------- + +The `throttle` listener limits the bandwidth of the connection to the given values and can inject chaos engineering features like latency and jitter. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.throttle#up)up +Up is the maximum upload speed. If not set, there is no limit. The value is parsed using the `go-humanize` package and accepts both the SI and the IEC prefixes. Values without units are interepreted as bytes. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.throttle#down)down +Down is the maximum upload speed. If not set, there is no limit. The value is parsed using the `go-humanize` package and accepts both the SI and the IEC prefixes. Values without units are interepreted as bytes. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.throttle#latency)latency +Latency adds a fixed delay to each read/write operation. Accepts duration strings like "10ms", "1s", "500us". + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.throttle#jitter)jitter +Jitter adds random delay (0 to jitter value) to each read/write operation. Accepts duration strings like "5ms", "100ms", "1s". + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.listeners.tls.md b/docs/caddy/modules/caddy.listeners.tls.md new file mode 100644 index 0000000..e924103 --- /dev/null +++ b/docs/caddy/modules/caddy.listeners.tls.md @@ -0,0 +1,38 @@ +Title: Module caddy.listeners.tls - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.listeners.tls + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.listeners.tls**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.tls#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.tls#docs "Direct link") +-------------------------------------------------------------------------------------------- + +caddy.listeners.tls is a no-op listener wrapper that marks where the TLS listener should be in a chain of listener wrappers. It should only be used if another listener wrapper must be placed in front of the TLS handshake. diff --git a/docs/caddy/modules/caddy.listeners.trojan.md b/docs/caddy/modules/caddy.listeners.trojan.md new file mode 100644 index 0000000..703eec7 --- /dev/null +++ b/docs/caddy/modules/caddy.listeners.trojan.md @@ -0,0 +1,41 @@ +Title: Module caddy.listeners.trojan - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.listeners.trojan + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.listeners.trojan**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.trojan#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾ "verbose": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/imgk/caddy-trojan](https://github.com/imgk/caddy-trojan)** + +**Custom builds:**`xcaddy build --with github.com/imgk/caddy-trojan/listener` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.listeners.trojan#docs "Direct link") +----------------------------------------------------------------------------------------------- + +caddy.listeners.trojan implements an TLS wrapper that it accept connections from clients and check the connection with pre-defined password and aead cipher defined by go-shadowsocks2, and return a normal page if failed. + +[🔗](https://caddyserver.com/docs/modules/caddy.listeners.trojan#verbose)verbose +Verbose is ... diff --git a/docs/caddy/modules/caddy.logging.cores.mock.md b/docs/caddy/modules/caddy.logging.cores.mock.md new file mode 100644 index 0000000..5175d22 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.cores.mock.md @@ -0,0 +1,126 @@ +Title: Module caddy.logging.cores.mock - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.cores.mock + +Markdown Content: +Module caddy.logging.cores.mock - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.cores.mock +=============================== + + There is more than one module named **Module caddy.logging.cores.mock**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.cores.mock#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.cores.mock#docs "Direct link") +------------------------------------------------------------------------------------------------- + +caddy.logging.cores.mock is a no-op module, purely for testing + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.encoders.append.md b/docs/caddy/modules/caddy.logging.encoders.append.md new file mode 100644 index 0000000..2ee3849 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.append.md @@ -0,0 +1,48 @@ +Title: Module caddy.logging.encoders.append - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.append + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.append**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.append#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +``` +{▾ "wrap": {•••}, "fields": { + "": + }} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.append#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +caddy.logging.encoders.append can be used to add fields to all log entries that pass through it. It is a wrapper around another encoder, which it uses to actually encode the log entries. It is most useful for adding information about the Caddy instance that is producing the log entries, possibly via an environment variable. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.append#wrap)wrap +The underlying encoder that actually encodes the log entries. If not specified, defaults to "json", unless the output is a terminal, in which case it defaults to "console". + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.append#fields)fields +A map of field names to their values. The values can be global placeholders (e.g. env vars), or constants. Note that the encoder does not run as part of an HTTP request context, so request placeholders are not available. diff --git a/docs/caddy/modules/caddy.logging.encoders.console.md b/docs/caddy/modules/caddy.logging.encoders.console.md new file mode 100644 index 0000000..30cd0e5 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.console.md @@ -0,0 +1,159 @@ +Title: Module caddy.logging.encoders.console - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.console + +Markdown Content: +Module caddy.logging.encoders.console - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.encoders.console +===================================== + + There is more than one module named **Module caddy.logging.encoders.console**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "message_key": "", "level_key": "", "time_key": "", "name_key": "", "caller_key": "", "stacktrace_key": "", "line_ending": "", "time_format": "", "time_local": false, "duration_format": "", "level_format": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.console encodes log entries that are mostly human-readable. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#message_key)message_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#level_key)level_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#time_key)time_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#name_key)name_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#caller_key)caller_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#stacktrace_key)stacktrace_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#line_ending)line_ending +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#time_format)time_format +Recognized values are: unix_seconds_float, unix_milli_float, unix_nano, iso8601, rfc3339, rfc3339_nano, wall, wall_milli, wall_nano, common_log. The value may also be custom format per the Go `time` package layout specification, as described [here](https://pkg.go.dev/time#pkg-constants). + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#time_local)time_local +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#duration_format)duration_format +Recognized values are: s/second/seconds, ns/nano/nanos, ms/milli/millis, string. Empty and unrecognized value default to seconds. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.console#level_format)level_format +Recognized values are: lower, upper, color. Empty and unrecognized value default to lower. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.encoders.elastic.md b/docs/caddy/modules/caddy.logging.encoders.elastic.md new file mode 100644 index 0000000..0513169 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.elastic.md @@ -0,0 +1,72 @@ +Title: Module caddy.logging.encoders.elastic - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.elastic**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +Field List +---------- + +`{▾ "message_key": "", "level_key": "", "time_key": "", "name_key": "", "caller_key": "", "stacktrace_key": "", "line_ending": "", "time_format": "", "duration_format": "", "level_format": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/firecow/caddy-elastic-encoder](https://github.com/firecow/caddy-elastic-encoder)** + +**Custom builds:**`xcaddy build --with github.com/firecow/caddy-elastic-encoder` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#message_key)message_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#level_key)level_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#time_key)time_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#name_key)name_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#caller_key)caller_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#stacktrace_key)stacktrace_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#line_ending)line_ending +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#time_format)time_format +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#duration_format)duration_format +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic#level_format)level_format +There are no docs for this property. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.basic_auth_user.md b/docs/caddy/modules/caddy.logging.encoders.filter.basic_auth_user.md new file mode 100644 index 0000000..f1f9109 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.basic_auth_user.md @@ -0,0 +1,38 @@ +Title: Module caddy.logging.encoders.filter.basic_auth_user - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.basic_auth_user + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.filter.basic_auth_user**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.basic_auth_user#docs "Direct link") +---------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ueffel/caddy-basic-auth-filter](https://github.com/ueffel/caddy-basic-auth-filter)** + +**Custom builds:**`xcaddy build --with github.com/ueffel/caddy-basic-auth-filter` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.basic_auth_user#docs "Direct link") +---------------------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.filter.basic_auth_user is a Caddy log field filter that replaces the a base64 encoded authorization header with just the user name. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.cookie.md b/docs/caddy/modules/caddy.logging.encoders.filter.cookie.md new file mode 100644 index 0000000..d55d8c2 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.cookie.md @@ -0,0 +1,54 @@ +Title: Module caddy.logging.encoders.filter.cookie - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.cookie + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.filter.cookie**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.cookie#docs "Direct link") +------------------------------------------------------------------------------------------------------------- + +`{▾ "actions": [{▾ "type": "", "name": "", "value": "" }]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.cookie#docs "Direct link") +------------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.filter.cookie is a Caddy log field filter that filters cookies. + +This filter updates the logged HTTP header string to remove, replace or hash cookies containing sensitive data. For instance, it can be used to redact any kind of secrets, such as session IDs. + +If several actions are configured for the same cookie name, only the first will be applied. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.cookie#actions)actions +A list of actions to apply to the cookies. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.cookie#actions/type)actions/type +`replace` to replace the value of the cookie, `hash` to replace it with the 4 initial bytes of the SHA-256 of its content or `delete` to remove it entirely. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.cookie#actions/name)actions/name +The name of the cookie. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.cookie#actions/value)actions/value +The value to use as replacement if the action is `replace`. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.delete.md b/docs/caddy/modules/caddy.logging.encoders.filter.delete.md new file mode 100644 index 0000000..7586aec --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.delete.md @@ -0,0 +1,126 @@ +Title: Module caddy.logging.encoders.filter.delete - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.delete + +Markdown Content: +Module caddy.logging.encoders.filter.delete - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.encoders.filter.delete +=========================================== + + There is more than one module named **Module caddy.logging.encoders.filter.delete**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.delete#docs "Direct link") +------------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.delete#docs "Direct link") +------------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.filter.delete is a Caddy log field filter that deletes the field. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.hash.md b/docs/caddy/modules/caddy.logging.encoders.filter.hash.md new file mode 100644 index 0000000..d25ac0b --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.hash.md @@ -0,0 +1,38 @@ +Title: Module caddy.logging.encoders.filter.hash - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.hash + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.filter.hash**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.hash#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.hash#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.filter.hash is a Caddy log field filter that replaces the field with the initial 4 bytes of the SHA-256 hash of the content. Operates on string fields, or on arrays of strings where each string is hashed. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.ip_mask.md b/docs/caddy/modules/caddy.logging.encoders.filter.ip_mask.md new file mode 100644 index 0000000..59bd057 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.ip_mask.md @@ -0,0 +1,44 @@ +Title: Module caddy.logging.encoders.filter.ip_mask - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.ip_mask + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.filter.ip_mask**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.ip_mask#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +`{▾ "ipv4_cidr": 0, "ipv6_cidr": 0}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.ip_mask#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.filter.ip_mask is a Caddy log field filter that masks IP addresses in a string, or in an array of strings. The string may be a comma separated list of IP addresses, where all of the values will be masked. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.ip_mask#ipv4_cidr)ipv4_cidr +The IPv4 mask, as an subnet size CIDR. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.ip_mask#ipv6_cidr)ipv6_cidr +The IPv6 mask, as an subnet size CIDR. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.md b/docs/caddy/modules/caddy.logging.encoders.filter.md new file mode 100644 index 0000000..8a39b50 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.md @@ -0,0 +1,163 @@ +Title: Module caddy.logging.encoders.filter - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter + +Markdown Content: +Module caddy.logging.encoders.filter - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.encoders.filter +==================================== + + There is more than one module named **Module caddy.logging.encoders.filter**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "wrap": {•••}, "fields": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +caddy.logging.encoders.filter can filter (manipulate) fields on log entries before they are actually encoded by an underlying encoder. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter#wrap)wrap +The underlying encoder that actually encodes the log entries. If not specified, defaults to "json", unless the output is a terminal, in which case it defaults to "console". + +Fulfilled by modules in namespace: **caddy.logging.encoders** + +* [append](https://caddyserver.com/docs/modules/caddy.logging.encoders.append) +* [console](https://caddyserver.com/docs/modules/caddy.logging.encoders.console) +* [filter](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter) +* [json](https://caddyserver.com/docs/modules/caddy.logging.encoders.json) +* [logfmt](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt) +* [single_field](https://caddyserver.com/docs/modules/caddy.logging.encoders.single_field) +* [elastic](https://caddyserver.com/docs/modules/caddy.logging.encoders.elastic)Non-standard +* [formatted](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted)Non-standard +* [formatted](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted)Non-standard +* [transform](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform)Non-standard + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter#fields)fields +A map of field names to their filters. Note that this is not a module map; the keys are field names. + +Nested fields can be referenced by representing a layer of nesting with `>`. In other words, for an object like `{"a":{"b":0}}`, the inner field can be referenced as `a>b`. + +The following fields are fundamental to the log and cannot be filtered because they are added by the underlying logging library as special cases: ts, level, logger, and msg. + +Fulfilled by modules in namespace: **caddy.logging.encoders.filter** + +* [cookie](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.cookie) +* [delete](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.delete) +* [hash](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.hash) +* [ip_mask](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.ip_mask) +* [query](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.query) +* [regexp](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.regexp) +* [rename](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.rename) +* [replace](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.replace) +* [basic_auth_user](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.basic_auth_user)Non-standard +* [tls_cipher](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_cipher)Non-standard +* [tls_version](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_version)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.query.md b/docs/caddy/modules/caddy.logging.encoders.filter.query.md new file mode 100644 index 0000000..af50797 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.query.md @@ -0,0 +1,52 @@ +Title: Module caddy.logging.encoders.filter.query - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.query + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.filter.query**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.query#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +`{▾ "actions": [{▾ "type": "", "parameter": "", "value": "" }]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.query#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +caddy.logging.encoders.filter.query is a Caddy log field filter that filters query parameters from a URL. + +This filter updates the logged URL string to remove, replace or hash query parameters containing sensitive data. For instance, it can be used to redact any kind of secrets which were passed as query parameters, such as OAuth access tokens, session IDs, magic link tokens, etc. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.query#actions)actions +A list of actions to apply to the query parameters of the URL. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.query#actions/type)actions/type +`replace` to replace the value(s) associated with the parameter(s), `hash` to replace them with the 4 initial bytes of the SHA-256 of their content or `delete` to remove them entirely. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.query#actions/parameter)actions/parameter +The name of the query parameter. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.query#actions/value)actions/value +The value to use as replacement if the action is `replace`. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.regexp.md b/docs/caddy/modules/caddy.logging.encoders.filter.regexp.md new file mode 100644 index 0000000..60ccc25 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.regexp.md @@ -0,0 +1,44 @@ +Title: Module caddy.logging.encoders.filter.regexp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.regexp + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.filter.regexp**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.regexp#docs "Direct link") +------------------------------------------------------------------------------------------------------------- + +`{▾ "regexp": "", "value": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.regexp#docs "Direct link") +------------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.filter.regexp is a Caddy log field filter that replaces the field matching the provided regexp with the indicated string. If the field is an array of strings, each of them will have the regexp replacement applied. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.regexp#regexp)regexp +The regular expression pattern defining what to replace. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.regexp#value)value +The value to use as replacement diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.rename.md b/docs/caddy/modules/caddy.logging.encoders.filter.rename.md new file mode 100644 index 0000000..7e261e3 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.rename.md @@ -0,0 +1,41 @@ +Title: Module caddy.logging.encoders.filter.rename - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.rename + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.filter.rename**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.rename#docs "Direct link") +------------------------------------------------------------------------------------------------------------- + +`{▾ "name": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.rename#docs "Direct link") +------------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.filter.rename is a Caddy log field filter that renames the field's key with the indicated name. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.rename#name)name +There are no docs for this property. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.replace.md b/docs/caddy/modules/caddy.logging.encoders.filter.replace.md new file mode 100644 index 0000000..dbe7958 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.replace.md @@ -0,0 +1,41 @@ +Title: Module caddy.logging.encoders.filter.replace - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.replace + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.filter.replace**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.replace#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +`{▾ "value": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.replace#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.filter.replace is a Caddy log field filter that replaces the field with the indicated string. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.replace#value)value +There are no docs for this property. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.tls_cipher.md b/docs/caddy/modules/caddy.logging.encoders.filter.tls_cipher.md new file mode 100644 index 0000000..aa50701 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.tls_cipher.md @@ -0,0 +1,38 @@ +Title: Module caddy.logging.encoders.filter.tls_cipher - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_cipher + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.filter.tls_cipher**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_cipher#docs "Direct link") +----------------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ueffel/caddy-tls-format](https://github.com/ueffel/caddy-tls-format)** + +**Custom builds:**`xcaddy build --with github.com/ueffel/caddy-tls-format` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_cipher#docs "Direct link") +----------------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.filter.tls_cipher is Caddy log field filter that replaces the numeric TLS cipher_suite value with the string representation. diff --git a/docs/caddy/modules/caddy.logging.encoders.filter.tls_version.md b/docs/caddy/modules/caddy.logging.encoders.filter.tls_version.md new file mode 100644 index 0000000..cc968c5 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.filter.tls_version.md @@ -0,0 +1,41 @@ +Title: Module caddy.logging.encoders.filter.tls_version - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_version + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.filter.tls_version**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_version#docs "Direct link") +------------------------------------------------------------------------------------------------------------------ + +`{▾ "prefix": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ueffel/caddy-tls-format](https://github.com/ueffel/caddy-tls-format)** + +**Custom builds:**`xcaddy build --with github.com/ueffel/caddy-tls-format` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_version#docs "Direct link") +------------------------------------------------------------------------------------------------------------------ + +caddy.logging.encoders.filter.tls_version is a Caddy log field filter that replaces the numeric TLS version with the string version and optionally adds a prefix. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.filter.tls_version#prefix)prefix +Prefix is a constant string that will be added before the replaced version string. diff --git a/docs/caddy/modules/caddy.logging.encoders.formatted.md b/docs/caddy/modules/caddy.logging.encoders.formatted.md new file mode 100644 index 0000000..91b0308 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.formatted.md @@ -0,0 +1,160 @@ +Title: Module caddy.logging.encoders.formatted - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted + +Markdown Content: +Module caddy.logging.encoders.formatted - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.encoders.formatted +======================================= + + There is more than one module named **Module caddy.logging.encoders.formatted**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#docs "Direct link") +--------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/transform-encoder + +`{▾ "message_key": "", "level_key": "", "time_key": "", "name_key": "", "caller_key": "", "stacktrace_key": "", "line_ending": "", "time_format": "", "duration_format": "", "level_format": "", "template": "", "placeholder": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddyserver/transform-encoder](https://github.com/caddyserver/transform-encoder)** + +**Custom builds:**`xcaddy build --with github.com/caddyserver/transform-encoder` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#docs "Direct link") +--------------------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#message_key)message_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#level_key)level_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#time_key)time_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#name_key)name_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#caller_key)caller_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#stacktrace_key)stacktrace_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#line_ending)line_ending +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#time_format)time_format +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#duration_format)duration_format +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#level_format)level_format +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#template)template +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.formatted#placeholder)placeholder +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.encoders.json.md b/docs/caddy/modules/caddy.logging.encoders.json.md new file mode 100644 index 0000000..2f982f5 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.json.md @@ -0,0 +1,159 @@ +Title: Module caddy.logging.encoders.json - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.json + +Markdown Content: +Module caddy.logging.encoders.json - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.encoders.json +================================== + + There is more than one module named **Module caddy.logging.encoders.json**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "message_key": "", "level_key": "", "time_key": "", "name_key": "", "caller_key": "", "stacktrace_key": "", "line_ending": "", "time_format": "", "time_local": false, "duration_format": "", "level_format": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.json encodes entries as JSON. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#message_key)message_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#level_key)level_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#time_key)time_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#name_key)name_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#caller_key)caller_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#stacktrace_key)stacktrace_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#line_ending)line_ending +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#time_format)time_format +Recognized values are: unix_seconds_float, unix_milli_float, unix_nano, iso8601, rfc3339, rfc3339_nano, wall, wall_milli, wall_nano, common_log. The value may also be custom format per the Go `time` package layout specification, as described [here](https://pkg.go.dev/time#pkg-constants). + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#time_local)time_local +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#duration_format)duration_format +Recognized values are: s/second/seconds, ns/nano/nanos, ms/milli/millis, string. Empty and unrecognized value default to seconds. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.json#level_format)level_format +Recognized values are: lower, upper, color. Empty and unrecognized value default to lower. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.encoders.logfmt.md b/docs/caddy/modules/caddy.logging.encoders.logfmt.md new file mode 100644 index 0000000..de1b964 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.logfmt.md @@ -0,0 +1,160 @@ +Title: Module caddy.logging.encoders.logfmt - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt + +Markdown Content: +Module caddy.logging.encoders.logfmt - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.encoders.logfmt +==================================== + + There is more than one module named **Module caddy.logging.encoders.logfmt**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "message_key": "", "level_key": "", "time_key": "", "name_key": "", "caller_key": "", "stacktrace_key": "", "line_ending": "", "time_format": "", "duration_format": "", "level_format": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +caddy.logging.encoders.logfmt encodes log entries as logfmt: [https://www.brandur.org/logfmt](https://www.brandur.org/logfmt) + +Note that logfmt does not encode nested structures properly, so it is not a good fit for most logs. + +⚠️ DEPRECATED. Do not use. It will eventually be removed from the standard Caddy modules. For more information, see [https://github.com/caddyserver/caddy/issues/3575](https://github.com/caddyserver/caddy/issues/3575). + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#message_key)message_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#level_key)level_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#time_key)time_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#name_key)name_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#caller_key)caller_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#stacktrace_key)stacktrace_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#line_ending)line_ending +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#time_format)time_format +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#duration_format)duration_format +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.logfmt#level_format)level_format +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.encoders.single_field.md b/docs/caddy/modules/caddy.logging.encoders.single_field.md new file mode 100644 index 0000000..fabd10f --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.single_field.md @@ -0,0 +1,44 @@ +Title: Module caddy.logging.encoders.single_field - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.single_field + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.encoders.single_field**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.single_field#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +`{▾ "field": "", "fallback": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.single_field#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +caddy.logging.encoders.single_field writes a log entry that consists entirely of a single string field in the log entry. This is useful for custom, self-encoded log entries that consist of a single field in the structured log entry. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.single_field#field)field +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.single_field#fallback)fallback +There are no docs for this property. diff --git a/docs/caddy/modules/caddy.logging.encoders.transform.md b/docs/caddy/modules/caddy.logging.encoders.transform.md new file mode 100644 index 0000000..4351da0 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.encoders.transform.md @@ -0,0 +1,162 @@ +Title: Module caddy.logging.encoders.transform - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.encoders.transform + +Markdown Content: +Module caddy.logging.encoders.transform - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.encoders.transform +======================================= + + There is more than one module named **Module caddy.logging.encoders.transform**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#docs "Direct link") +--------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/transform-encoder + +`{▾ "message_key": "", "level_key": "", "time_key": "", "name_key": "", "caller_key": "", "stacktrace_key": "", "line_ending": "", "time_format": "", "duration_format": "", "level_format": "", "template": "", "placeholder": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddyserver/transform-encoder](https://github.com/caddyserver/transform-encoder)** + +**Custom builds:**`xcaddy build --with github.com/caddyserver/transform-encoder` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#docs "Direct link") +--------------------------------------------------------------------------------------------------------- + +caddy.logging.encoders.transform allows the user to provide custom template for log prints. The encoder builds atop the json encoder, thus it follows its message structure. The placeholders are namespaced by the name of the app logging the message. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#message_key)message_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#level_key)level_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#time_key)time_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#name_key)name_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#caller_key)caller_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#stacktrace_key)stacktrace_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#line_ending)line_ending +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#time_format)time_format +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#duration_format)duration_format +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#level_format)level_format +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#template)template +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.encoders.transform#placeholder)placeholder +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.writers.discard.md b/docs/caddy/modules/caddy.logging.writers.discard.md new file mode 100644 index 0000000..54adc7e --- /dev/null +++ b/docs/caddy/modules/caddy.logging.writers.discard.md @@ -0,0 +1,126 @@ +Title: Module caddy.logging.writers.discard - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.writers.discard + +Markdown Content: +Module caddy.logging.writers.discard - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.writers.discard +==================================== + + There is more than one module named **Module caddy.logging.writers.discard**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.discard#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.discard#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +caddy.logging.writers.discard discards all writes. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.writers.file.md b/docs/caddy/modules/caddy.logging.writers.file.md new file mode 100644 index 0000000..c781fb4 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.writers.file.md @@ -0,0 +1,154 @@ +Title: Module caddy.logging.writers.file - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.writers.file + +Markdown Content: +Module caddy.logging.writers.file - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.writers.file +================================= + + There is more than one module named **Module caddy.logging.writers.file**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.file#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "filename": "", "mode": 0, "roll": false, "roll_size_mb": 0, "roll_gzip": false, "roll_local_time": false, "roll_keep": 0, "roll_keep_days": 0}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.file#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +caddy.logging.writers.file can write logs to files. By default, log files are rotated ("rolled") when they get large, and old log files get deleted, to ensure that the process does not exhaust disk space. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.file#filename)filename +Filename is the name of the file to write. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.file#mode)mode +The file permissions mode. 0600 by default. + +fileMode is a string made of 1 to 4 octal digits representing a numeric mode as specified with the `chmod` unix command. `"0777"` and `"777"` are thus equivalent values. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.file#roll)roll +Roll toggles log rolling or rotation, which is enabled by default. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.file#roll_size_mb)roll_size_mb +When a log file reaches approximately this size, it will be rotated. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.file#roll_gzip)roll_gzip +Whether to compress rolled files. Default: true + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.file#roll_local_time)roll_local_time +Whether to use local timestamps in rolled filenames. Default: false + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.file#roll_keep)roll_keep +The maximum number of rolled log files to keep. Default: 10 + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.file#roll_keep_days)roll_keep_days +How many days to keep rolled log files. Default: 90 + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fcaddy.logging.writers.file&r=&sid=GVMGKAKP&qs=%7B%7D&cid=72582079) diff --git a/docs/caddy/modules/caddy.logging.writers.graphite.md b/docs/caddy/modules/caddy.logging.writers.graphite.md new file mode 100644 index 0000000..bde43a3 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.writers.graphite.md @@ -0,0 +1,80 @@ +Title: Module caddy.logging.writers.graphite - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.writers.graphite + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.writers.graphite**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.graphite#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +`{▾ "server": "", "port": 0, "path": "", "value": "", "methods": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ybizeul/caddy-logger-graphite](https://github.com/ybizeul/caddy-logger-graphite)** + +**Custom builds:**`xcaddy build --with github.com/ybizeul/caddy-logger-graphite` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.graphite#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +caddy.logging.writers.graphite is a Caddy logger used to send server activity to a Graphite database. + +Templating is available as follow : + +``` +.Level +.Date +.Logger +.Msg +.Request + .RemoteIP + .RemotePort + .ClientIP + .Proto + .Method + .Host + .URI + .Headers +.BytesRead +.UserID +.Duration +.Size +.Status +.RespHeaders map[string][]string + +.DirName +.FileName +``` + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.graphite#server)server +IP address or host name of the graphite server + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.graphite#port)port +Port number to be used (usually 2003) + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.graphite#path)path +Metrics Path, can be templated + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.graphite#value)value +Value to be sent, can be templated + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.graphite#methods)methods +Methods to be logged diff --git a/docs/caddy/modules/caddy.logging.writers.influx_log.md b/docs/caddy/modules/caddy.logging.writers.influx_log.md new file mode 100644 index 0000000..c3d3bb7 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.writers.influx_log.md @@ -0,0 +1,58 @@ +Title: Module caddy.logging.writers.influx_log - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.writers.influx_log**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log#docs "Direct link") +--------------------------------------------------------------------------------------------------------- + +``` +{▾ "host": "", "token": "", "org": "", "bucket": "", "measurement": "", "tags": { + "": "" + }} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/neodyme-labs/influx_log](https://github.com/neodyme-labs/influx_log)** + +**Custom builds:**`xcaddy build --with github.com/neodyme-labs/influx_log` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log#docs "Direct link") +--------------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log#host)host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log#token)token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log#org)org +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log#bucket)bucket +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log#measurement)measurement +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.influx_log#tags)tags +There are no docs for this property. diff --git a/docs/caddy/modules/caddy.logging.writers.influxlog.md b/docs/caddy/modules/caddy.logging.writers.influxlog.md new file mode 100644 index 0000000..039e0ca --- /dev/null +++ b/docs/caddy/modules/caddy.logging.writers.influxlog.md @@ -0,0 +1,38 @@ +Title: Module caddy.logging.writers.influxlog - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.writers.influxlog + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.logging.writers.influxlog**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.influxlog#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sillygod/cdp-cache](https://github.com/sillygod/cdp-cache)** + +**Custom builds:**`xcaddy build --with github.com/sillygod/cdp-cache/extends/influxlog` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.influxlog#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +caddy.logging.writers.influxlog is a influxdb client to write time series data diff --git a/docs/caddy/modules/caddy.logging.writers.net.md b/docs/caddy/modules/caddy.logging.writers.net.md new file mode 100644 index 0000000..59ee5a5 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.writers.net.md @@ -0,0 +1,137 @@ +Title: Module caddy.logging.writers.net - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.writers.net + +Markdown Content: +Module caddy.logging.writers.net - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.writers.net +================================ + + There is more than one module named **Module caddy.logging.writers.net**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.net#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "address": "", "dial_timeout": 0, "soft_start": false}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.net#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +caddy.logging.writers.net implements a log writer that outputs to a network socket. If the socket goes down, it will dump logs to stderr while it attempts to reconnect. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.net#address)address +The address of the network socket to which to connect. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.net#dial_timeout)dial_timeout +The timeout to wait while connecting to the socket. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.net#soft_start)soft_start +If enabled, allow connections errors when first opening the writer. The error and subsequent log entries will be reported to stderr instead until a connection can be re-established. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.writers.stderr.md b/docs/caddy/modules/caddy.logging.writers.stderr.md new file mode 100644 index 0000000..33e2811 --- /dev/null +++ b/docs/caddy/modules/caddy.logging.writers.stderr.md @@ -0,0 +1,126 @@ +Title: Module caddy.logging.writers.stderr - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.writers.stderr + +Markdown Content: +Module caddy.logging.writers.stderr - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.writers.stderr +=================================== + + There is more than one module named **Module caddy.logging.writers.stderr**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.stderr#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.stderr#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +caddy.logging.writers.stderr writes logs to standard error. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.logging.writers.stdout.md b/docs/caddy/modules/caddy.logging.writers.stdout.md new file mode 100644 index 0000000..82b4d9b --- /dev/null +++ b/docs/caddy/modules/caddy.logging.writers.stdout.md @@ -0,0 +1,126 @@ +Title: Module caddy.logging.writers.stdout - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.logging.writers.stdout + +Markdown Content: +Module caddy.logging.writers.stdout - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.logging.writers.stdout +=================================== + + There is more than one module named **Module caddy.logging.writers.stdout**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.stdout#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.logging.writers.stdout#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +caddy.logging.writers.stdout writes logs to standard out. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.network_proxy.none.md b/docs/caddy/modules/caddy.network_proxy.none.md new file mode 100644 index 0000000..d03cd28 --- /dev/null +++ b/docs/caddy/modules/caddy.network_proxy.none.md @@ -0,0 +1,126 @@ +Title: Module caddy.network_proxy.none - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.network_proxy.none + +Markdown Content: +Module caddy.network_proxy.none - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.network_proxy.none +=============================== + + There is more than one module named **Module caddy.network_proxy.none**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.network_proxy.none#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.network_proxy.none#docs "Direct link") +------------------------------------------------------------------------------------------------- + +The "none" proxy source module disables the use of network proxy. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.network_proxy.url.md b/docs/caddy/modules/caddy.network_proxy.url.md new file mode 100644 index 0000000..2398687 --- /dev/null +++ b/docs/caddy/modules/caddy.network_proxy.url.md @@ -0,0 +1,41 @@ +Title: Module caddy.network_proxy.url - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.network_proxy.url + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.network_proxy.url**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.network_proxy.url#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "url": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.network_proxy.url#docs "Direct link") +------------------------------------------------------------------------------------------------ + +The "url" proxy source uses the defined URL as the proxy + +[🔗](https://caddyserver.com/docs/modules/caddy.network_proxy.url#url)url +There are no docs for this property. diff --git a/docs/caddy/modules/caddy.storage.cloudflare_kv.md b/docs/caddy/modules/caddy.storage.cloudflare_kv.md new file mode 100644 index 0000000..6c13d30 --- /dev/null +++ b/docs/caddy/modules/caddy.storage.cloudflare_kv.md @@ -0,0 +1,47 @@ +Title: Module caddy.storage.cloudflare_kv - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.storage.cloudflare_kv**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾ "api_token": "", "account_id": "", "namespace_id": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mentimeter/caddy-storage-cf-kv](https://github.com/mentimeter/caddy-storage-cf-kv)** + +**Custom builds:**`xcaddy build --with github.com/mentimeter/caddy-storage-cf-kv` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +caddy.storage.cloudflare_kv implements a Caddy storage backend for Cloudflare KV + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv#api_token)api_token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv#account_id)account_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv#namespace_id)namespace_id +There are no docs for this property. diff --git a/docs/caddy/modules/caddy.storage.consul.md b/docs/caddy/modules/caddy.storage.consul.md new file mode 100644 index 0000000..7a05a17 --- /dev/null +++ b/docs/caddy/modules/caddy.storage.consul.md @@ -0,0 +1,210 @@ +Title: Module caddy.storage.consul - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.consul + +Markdown Content: +Module caddy.storage.consul - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.storage.consul +=========================== + + There is more than one module named **caddy.storage.consul**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/pteich/caddy-tlsconsul + +`{▾ "address": "", "token": "", "timeout": 0, "prefix": "", "value_prefix": "", "aes_key": [0], "tls_enabled": false, "tls_insecure": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/pteich/caddy-tlsconsul](https://github.com/pteich/caddy-tlsconsul)** + +**Custom builds:**`xcaddy build --with github.com/pteich/caddy-tlsconsul` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#docs "Direct link") +--------------------------------------------------------------------------------------------- + +caddy.storage.consul allows to store certificates and other TLS resources in a shared cluster environment using Consul's key/value-store. It uses distributed locks to ensure consistency. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#address)address +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#token)token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#timeout)timeout +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#prefix)prefix +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#value_prefix)value_prefix +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#aes_key)aes_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#tls_enabled)tls_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#tls_insecure)tls_insecure +There are no docs for this property. + +▸github.com/pteich/caddy-tlsconsul + +`{▾ "address": "", "token": "", "timeout": 0, "prefix": "", "value_prefix": "", "aes_key": [0], "tls_enabled": false, "tls_insecure": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/pteich/caddy-tlsconsul](https://github.com/pteich/caddy-tlsconsul)** + +**Custom builds:**`xcaddy build --with github.com/pteich/caddy-tlsconsul` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#docs "Direct link") +--------------------------------------------------------------------------------------------- + +caddy.storage.consul holds all parameters for the Consul connection + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#address)address +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#token)token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#timeout)timeout +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#prefix)prefix +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#value_prefix)value_prefix +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#aes_key)aes_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#tls_enabled)tls_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#tls_insecure)tls_insecure +There are no docs for this property. + +▸github.com/sillygod/cdp-cache + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sillygod/cdp-cache](https://github.com/sillygod/cdp-cache)** + +**Custom builds:**`xcaddy build --with github.com/sillygod/cdp-cache/extends/storage` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.consul#docs "Direct link") +--------------------------------------------------------------------------------------------- + +caddy.storage.consul implements the certmagic storage's interface This holds the consul client and kv store + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.storage.dynamodb.md b/docs/caddy/modules/caddy.storage.dynamodb.md new file mode 100644 index 0000000..d053067 --- /dev/null +++ b/docs/caddy/modules/caddy.storage.dynamodb.md @@ -0,0 +1,148 @@ +Title: Module caddy.storage.dynamodb - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.dynamodb + +Markdown Content: +Module caddy.storage.dynamodb - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.storage.dynamodb +============================= + + There is more than one module named **Module caddy.storage.dynamodb**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/silinternational/certmagic-storage-dynamodb + +`{▾ "table": "", "aws_endpoint": "", "aws_region": "", "aws_disable_ssl": false, "lock_timeout": 0, "lock_polling_interval": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/silinternational/certmagic-storage-dynamodb](https://github.com/silinternational/certmagic-storage-dynamodb)** + +**Custom builds:**`xcaddy build --with github.com/silinternational/certmagic-storage-dynamodb/v3` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#docs "Direct link") +----------------------------------------------------------------------------------------------- + +caddy.storage.dynamodb implements certmagic.Storage to facilitate storage of certificates in DynamoDB for a clustered environment. Also implements certmagic.Locker to facilitate locking and unlocking of cert data during storage + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#table)table +Table - [required] DynamoDB table name + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#aws_endpoint)aws_endpoint +AwsEndpoint - [optional] provide an override for DynamoDB service. By default it'll use the standard production DynamoDB endpoints. Useful for testing with a local DynamoDB instance. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#aws_region)aws_region +AwsRegion - [optional] region using DynamoDB in. Useful for testing with a local DynamoDB instance. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#aws_disable_ssl)aws_disable_ssl +AwsDisableSSL - [optional] disable SSL for DynamoDB connections. Default: false Only useful for local testing, do not use outside of local testing. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#lock_timeout)lock_timeout +LockTimeout - [optional] how long to wait for a lock to be created. Default: 5 minutes + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.dynamodb#lock_polling_interval)lock_polling_interval +LockPollingInterval - [optional] how often to check for lock released. Default: 5 seconds + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.storage.encrypted.key.age.md b/docs/caddy/modules/caddy.storage.encrypted.key.age.md new file mode 100644 index 0000000..bc82bf2 --- /dev/null +++ b/docs/caddy/modules/caddy.storage.encrypted.key.age.md @@ -0,0 +1,42 @@ +Title: Module caddy.storage.encrypted.key.age - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.age + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.storage.encrypted.key.age**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.age#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +`{▾ "recipient": "", "identities": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-encrypted-storage](https://github.com/mohammed90/caddy-encrypted-storage)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-encrypted-storage` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.age#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.age#recipient)recipient +The public key generated by `age` + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.age#identities)identities +The private keys generated by `age` diff --git a/docs/caddy/modules/caddy.storage.encrypted.key.gcp_kms.md b/docs/caddy/modules/caddy.storage.encrypted.key.gcp_kms.md new file mode 100644 index 0000000..4b7150e --- /dev/null +++ b/docs/caddy/modules/caddy.storage.encrypted.key.gcp_kms.md @@ -0,0 +1,44 @@ +Title: Module caddy.storage.encrypted.key.gcp_kms - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.gcp_kms + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.storage.encrypted.key.gcp_kms**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.gcp_kms#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +`{▾ "resource_id": "", "credentials": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-encrypted-storage](https://github.com/mohammed90/caddy-encrypted-storage)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-encrypted-storage` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.gcp_kms#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.gcp_kms#resource_id)resource_id +The subject resource ID as obtained from the GCP console. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.gcp_kms#credentials)credentials +The raw JSON credentials as obtained from GCP + +Fulfilled by modules in namespace: **undefined** diff --git a/docs/caddy/modules/caddy.storage.encrypted.md b/docs/caddy/modules/caddy.storage.encrypted.md new file mode 100644 index 0000000..2aff7ad --- /dev/null +++ b/docs/caddy/modules/caddy.storage.encrypted.md @@ -0,0 +1,48 @@ +Title: Module caddy.storage.encrypted - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.encrypted + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.storage.encrypted**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "backend": {•••}, "encryption": [{•••}]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-encrypted-storage](https://github.com/mohammed90/caddy-encrypted-storage)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-encrypted-storage` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted#docs "Direct link") +------------------------------------------------------------------------------------------------ + +caddy.storage.encrypted is the impelementation of certmagic.Storage interface for Caddy with encryption/decryption layer using [SOPS](https://github.com/getsops/sops). The module accepts any Caddy storage module as the backend. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted#backend)backend +The backing storage where the encrypted data is stored. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted#encryption)encryption +The encryption provider: local, remote. Although this is an array, current support is for 1 provider. TODO: implemented the `remote` provider. TODO: multiple providers + +Fulfilled by modules in namespace: **caddy.storage.encrypted.provider** + +* [local](https://caddyserver.com/docs/modules/caddy.storage.encrypted.provider.local)Non-standard diff --git a/docs/caddy/modules/caddy.storage.encrypted.provider.local.md b/docs/caddy/modules/caddy.storage.encrypted.provider.local.md new file mode 100644 index 0000000..2203eaf --- /dev/null +++ b/docs/caddy/modules/caddy.storage.encrypted.provider.local.md @@ -0,0 +1,46 @@ +Title: Module caddy.storage.encrypted.provider.local - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.encrypted.provider.local + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.storage.encrypted.provider.local**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.provider.local#docs "Direct link") +--------------------------------------------------------------------------------------------------------------- + +`{▾ "keys": [{•••}]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-encrypted-storage](https://github.com/mohammed90/caddy-encrypted-storage)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-encrypted-storage` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.provider.local#docs "Direct link") +--------------------------------------------------------------------------------------------------------------- + +caddy.storage.encrypted.provider.local encryption provider avails in-process encryption/decryption capabilities + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.encrypted.provider.local#keys)keys +The encryption/decryption keyset + +Fulfilled by modules in namespace: **caddy.storage.encrypted.key** + +* [age](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.age)Non-standard +* [gcp_kms](https://caddyserver.com/docs/modules/caddy.storage.encrypted.key.gcp_kms)Non-standard diff --git a/docs/caddy/modules/caddy.storage.env_redis.md b/docs/caddy/modules/caddy.storage.env_redis.md new file mode 100644 index 0000000..836e9b3 --- /dev/null +++ b/docs/caddy/modules/caddy.storage.env_redis.md @@ -0,0 +1,108 @@ +Title: Module caddy.storage.env_redis - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.env_redis + +Markdown Content: +Module caddy.storage.env_redis - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.storage.env_redis +============================== + + There is more than one module named **Module caddy.storage.env_redis**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.env_redis#docs "Direct link") +------------------------------------------------------------------------------------------------ + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.storage.file_system.md b/docs/caddy/modules/caddy.storage.file_system.md new file mode 100644 index 0000000..2d42ce9 --- /dev/null +++ b/docs/caddy/modules/caddy.storage.file_system.md @@ -0,0 +1,41 @@ +Title: Module caddy.storage.file_system - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.file_system + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.storage.file_system**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.file_system#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "root": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.file_system#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +caddy.storage.file_system is a certmagic.Storage wrapper for certmagic.FileStorage. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.file_system#root)root +The base path to the folder used for storage. diff --git a/docs/caddy/modules/caddy.storage.gcs.md b/docs/caddy/modules/caddy.storage.gcs.md new file mode 100644 index 0000000..4e04eaf --- /dev/null +++ b/docs/caddy/modules/caddy.storage.gcs.md @@ -0,0 +1,44 @@ +Title: Module caddy.storage.gcs - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.gcs + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.storage.gcs**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.gcs#docs "Direct link") +------------------------------------------------------------------------------------------ + +`{▾ "bucket-name": "", "encryption-key-set": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/grafana/certmagic-gcs](https://github.com/grafana/certmagic-gcs)** + +**Custom builds:**`xcaddy build --with github.com/grafana/certmagic-gcs` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.gcs#docs "Direct link") +------------------------------------------------------------------------------------------ + +caddy.storage.gcs implements a caddy storage backend for Google Cloud Storage. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.gcs#bucket-name)bucket-name +BucketName is the name of the storage bucket. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.gcs#encryption-key-set)encryption-key-set +EncryptionKeySet is the path of a json tink encryption keyset diff --git a/docs/caddy/modules/caddy.storage.mysql.md b/docs/caddy/modules/caddy.storage.mysql.md new file mode 100644 index 0000000..22c5ef6 --- /dev/null +++ b/docs/caddy/modules/caddy.storage.mysql.md @@ -0,0 +1,45 @@ +Title: Module caddy.storage.mysql - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.mysql + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.storage.mysql**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.mysql#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾ "query_timeout": 0, "lock_timeout": 0, "dsn": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/zhangjiayin/caddy-mysql-storage](https://github.com/zhangjiayin/caddy-mysql-storage)** + +**Custom builds:**`xcaddy build --with github.com/zhangjiayin/caddy-mysql-storage` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.mysql#docs "Direct link") +-------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.mysql#query_timeout)query_timeout +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.mysql#lock_timeout)lock_timeout +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.mysql#dsn)dsn +There are no docs for this property. diff --git a/docs/caddy/modules/caddy.storage.nats.md b/docs/caddy/modules/caddy.storage.nats.md new file mode 100644 index 0000000..fc6e50c --- /dev/null +++ b/docs/caddy/modules/caddy.storage.nats.md @@ -0,0 +1,51 @@ +Title: Module caddy.storage.nats - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.nats + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module caddy.storage.nats**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.nats#docs "Direct link") +------------------------------------------------------------------------------------------- + +`{▾ "hosts": "", "bucket": "", "creds": "", "inbox_prefix": "", "connection_name": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/HeavyHorst/certmagic-nats](https://github.com/HeavyHorst/certmagic-nats)** + +**Custom builds:**`xcaddy build --with github.com/HeavyHorst/certmagic-nats` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.nats#docs "Direct link") +------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.nats#hosts)hosts +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.nats#bucket)bucket +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.nats#creds)creds +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.nats#inbox_prefix)inbox_prefix +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.nats#connection_name)connection_name +There are no docs for this property. diff --git a/docs/caddy/docs/docs/modules/http.md b/docs/caddy/modules/caddy.storage.postgres.md similarity index 73% rename from docs/caddy/docs/docs/modules/http.md rename to docs/caddy/modules/caddy.storage.postgres.md index 4809cb3..2f19e2b 100644 --- a/docs/caddy/docs/docs/modules/http.md +++ b/docs/caddy/modules/caddy.storage.postgres.md @@ -1,21 +1,21 @@ -Title: Module http - Caddy Documentation +Title: Modules - Caddy Documentation -URL Source: https://caddyserver.com/docs/modules/http +URL Source: https://caddyserver.com/docs/modules/caddy.storage.postgres Markdown Content: -Module http - Caddy Documentation -=============== +Modules - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== -Documentation +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +Documentation -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +27,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +40,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,9 +59,10 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) All Modules =========== @@ -71,13 +74,13 @@ We recommend using your browser's "Find in page" feature for quick lookups. | | Module ID | Description | | --- | --- | --- | -There is more than one module named . Choose one by its repository. + There is more than one module named . Choose one by its repository. -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` Description ----------- @@ -89,9 +92,12 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.storage.redis.md b/docs/caddy/modules/caddy.storage.redis.md new file mode 100644 index 0000000..fc74b6f --- /dev/null +++ b/docs/caddy/modules/caddy.storage.redis.md @@ -0,0 +1,231 @@ +Title: Module caddy.storage.redis - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.redis + +Markdown Content: +Module caddy.storage.redis - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.storage.redis +========================== + + There is more than one module named **caddy.storage.redis**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/gamalan/caddy-tlsredis + +`{▾ "address": "", "host": "", "port": "", "db": 0, "password": "", "timeout": 0, "key_prefix": "", "value_prefix": "", "aes_key": "", "tls_enabled": false, "tls_insecure": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/gamalan/caddy-tlsredis](https://github.com/gamalan/caddy-tlsredis)** + +**Custom builds:**`xcaddy build --with github.com/gamalan/caddy-tlsredis` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#docs "Direct link") +-------------------------------------------------------------------------------------------- + +caddy.storage.redis contain Redis client, and plugin option + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#address)address +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#host)host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#port)port +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#db)db +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#password)password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#timeout)timeout +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#key_prefix)key_prefix +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#value_prefix)value_prefix +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#aes_key)aes_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#tls_enabled)tls_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#tls_insecure)tls_insecure +There are no docs for this property. + +▸github.com/pberkel/caddy-storage-redis + +`{▾ "client_type": "", "address": [""], "host": [""], "port": [""], "db": 0, "timeout": "", "username": "", "password": "", "master_name": "", "key_prefix": "", "encryption_key": "", "compression": false, "tls_enabled": false, "tls_insecure": false, "tls_server_certs_pem": "", "tls_server_certs_path": "", "route_by_latency": false, "route_randomly": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/pberkel/caddy-storage-redis](https://github.com/pberkel/caddy-storage-redis)** + +**Custom builds:**`xcaddy build --with github.com/pberkel/caddy-storage-redis` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#docs "Direct link") +-------------------------------------------------------------------------------------------- + +caddy.storage.redis implements a Caddy storage backend for Redis It supports Single (Standalone), Cluster, or Sentinal (Failover) Redis server configurations. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#client_type)client_type +ClientType specifies the Redis client type. Valid values are "cluster" or "failover" + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#address)address +Address The full address of the Redis server. Example: "127.0.0.1:6379" If not defined, will be generated from Host and Port parameters. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#host)host +Host The Redis server hostname or IP address. Default: "127.0.0.1" + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#port)port +Host The Redis server port number. Default: "6379" + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#db)db +DB The Redis server database number. Default: 0 + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#timeout)timeout +Timeout The Redis server timeout in seconds. Default: 5 + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#username)username +Username The username for authenticating with the Redis server. Default: "" (No authentication) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#password)password +Password The password for authenticating with the Redis server. Default: "" (No authentication) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#master_name)master_name +MasterName Only required when connecting to Redis via Sentinal (Failover mode). Default "" + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#key_prefix)key_prefix +KeyPrefix A string prefix that is appended to Redis keys. Default: "caddy" Useful when the Redis server is used by multiple applications. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#encryption_key)encryption_key +EncryptionKey A key string used to symmetrically encrypt and decrypt data stored in Redis. The key must be exactly 32 characters, longer values will be truncated. Default: "" (No encryption) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#compression)compression +Compression Specifies whether values should be compressed before storing in Redis. Default: false + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#tls_enabled)tls_enabled +TlsEnabled controls whether TLS will be used to connect to the Redis server. False by default. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#tls_insecure)tls_insecure +TlsInsecure controls whether the client will verify the server certificate. See `InsecureSkipVerify` in `tls.Config` for details. True by default. [https://pkg.go.dev/crypto/tls#Config](https://pkg.go.dev/crypto/tls#Config) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#tls_server_certs_pem)tls_server_certs_pem +TlsServerCertsPEM is a series of PEM encoded certificates that will be used by the client to validate trust in the Redis server's certificate instead of the system trust store. May not be specified alongside `TlsServerCertsPath`. See `x509.CertPool.AppendCertsFromPem` for details. [https://pkg.go.dev/crypto/x509#CertPool.AppendCertsFromPEM](https://pkg.go.dev/crypto/x509#CertPool.AppendCertsFromPEM) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#tls_server_certs_path)tls_server_certs_path +TlsServerCertsPath is the path to a file containing a series of PEM encoded certificates that will be used by the client to validate trust in the Redis server's certificate instead of the system trust store. May not be specified alongside `TlsServerCertsPem`. See `x509.CertPool.AppendCertsFromPem` for details. [https://pkg.go.dev/crypto/x509#CertPool.AppendCertsFromPEM](https://pkg.go.dev/crypto/x509#CertPool.AppendCertsFromPEM) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#route_by_latency)route_by_latency +RouteByLatency Route commands by latency, only used in Cluster mode. Default: false + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.redis#route_randomly)route_randomly +RouteRandomly Route commands randomly, only used in Cluster mode. Default: false + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.storage.s3.md b/docs/caddy/modules/caddy.storage.s3.md new file mode 100644 index 0000000..06e640e --- /dev/null +++ b/docs/caddy/modules/caddy.storage.s3.md @@ -0,0 +1,173 @@ +Title: Module caddy.storage.s3 - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.s3 + +Markdown Content: +Module caddy.storage.s3 - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.storage.s3 +======================= + + There is more than one module named **caddy.storage.s3**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#docs "Direct link") +----------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/ss098/certmagic-s3 + +`{▾ "host": "", "bucket": "", "access_id": "", "secret_key": "", "prefix": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ss098/certmagic-s3](https://github.com/ss098/certmagic-s3)** + +**Custom builds:**`xcaddy build --with github.com/ss098/certmagic-s3` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#docs "Direct link") +----------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#host)host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#bucket)bucket +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#access_id)access_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#secret_key)secret_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#prefix)prefix +There are no docs for this property. + +▸github.com/techknowlogick/certmagic-s3 + +`{▾ "host": "", "bucket": "", "access_key": "", "secret_key": "", "prefix": "", "encryption_key": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/techknowlogick/certmagic-s3](https://github.com/techknowlogick/certmagic-s3)** + +**Custom builds:**`xcaddy build --with github.com/techknowlogick/certmagic-s3` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#docs "Direct link") +----------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#host)host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#bucket)bucket +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#access_key)access_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#secret_key)secret_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#prefix)prefix +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.s3#encryption_key)encryption_key +EncryptionKey is optional. If you do not wish to encrypt your certficates and key inside the S3 bucket, leave it empty. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/caddy.storage.vault.md b/docs/caddy/modules/caddy.storage.vault.md new file mode 100644 index 0000000..f2e9695 --- /dev/null +++ b/docs/caddy/modules/caddy.storage.vault.md @@ -0,0 +1,149 @@ +Title: Module caddy.storage.vault - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/caddy.storage.vault + +Markdown Content: +Module caddy.storage.vault - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module caddy.storage.vault +========================== + + There is more than one module named **Module caddy.storage.vault**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.vault#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/gerolf-vent/caddy-vault-storage + +`{▾ "addresses": [""], "token_path": "", "secrets_mount_path": "", "secrets_path_prefix": "", "max_retries": 0, "lock_timeout": 0, "lock_check_interval": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/gerolf-vent/caddy-vault-storage](https://github.com/gerolf-vent/caddy-vault-storage)** + +**Custom builds:**`xcaddy build --with github.com/gerolf-vent/caddy-vault-storage` + +Description[🔗](https://caddyserver.com/docs/modules/caddy.storage.vault#docs "Direct link") +-------------------------------------------------------------------------------------------- + +A highly available storage module that integrates with HashiCorp Vault. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.vault#addresses)addresses +One or more address(es) to Vault servers on the same cluster. (At least one address is required.) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.vault#token_path)token_path +Local path to read the access token from. Updates on that file will be detected and automatically read. (As fallback the the environment variable "VAULT_TOKEN" will be used, but it will only be read once on startup.) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.vault#secrets_mount_path)secrets_mount_path +Path of the KVv2 mount to use. (Default is "kv".) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.vault#secrets_path_prefix)secrets_path_prefix +Path in the KVv2 mount to use. (Default is "caddy".) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.vault#max_retries)max_retries +Limit of connection retries after which to fail a request. (Default is 3.) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.vault#lock_timeout)lock_timeout +Timeout for locks (in seconds). (Default is 60.) + +[🔗](https://caddyserver.com/docs/modules/caddy.storage.vault#lock_check_interval)lock_check_interval +Interval for checking lock status (in seconds). (Default is 5.) + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fcaddy.storage.vault&r=&sid=GVMGKAKP&qs=%7B%7D&cid=74108125) diff --git a/docs/caddy/modules/crowdsec.md b/docs/caddy/modules/crowdsec.md new file mode 100644 index 0000000..c13050b --- /dev/null +++ b/docs/caddy/modules/crowdsec.md @@ -0,0 +1,141 @@ +Title: Module crowdsec - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/crowdsec + +Markdown Content: +Module crowdsec - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module crowdsec +=============== + + There is more than one module named **Module crowdsec**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/crowdsec#docs "Direct link") +--------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/hslatman/caddy-crowdsec-bouncer + +`{▾ "api_key": "", "api_url": "", "ticker_interval": "", "enable_streaming": false, "enable_hard_fails": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/hslatman/caddy-crowdsec-bouncer](https://github.com/hslatman/caddy-crowdsec-bouncer)** + +**Custom builds:**`xcaddy build --with github.com/hslatman/caddy-crowdsec-bouncer/crowdsec` + +Description[🔗](https://caddyserver.com/docs/modules/crowdsec#docs "Direct link") +--------------------------------------------------------------------------------- + +crowdsec is a Caddy App that functions as a CrowdSec bouncer. It acts as a CrowdSec API client as well as a local cache for CrowdSec decisions, which can be used by the HTTP handler and Layer4 matcher to decide if a request or connection is allowed or not. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/crowdsec#api_key)api_key +APIKey for the CrowdSec Local API + +[🔗](https://caddyserver.com/docs/modules/crowdsec#api_url)api_url +APIUrl for the CrowdSec Local API. Defaults to [http://127.0.0.1:8080/](http://127.0.0.1:8080/) + +[🔗](https://caddyserver.com/docs/modules/crowdsec#ticker_interval)ticker_interval +TickerInterval is the interval the StreamBouncer uses for querying the CrowdSec Local API. Defaults to "10s". + +[🔗](https://caddyserver.com/docs/modules/crowdsec#enable_streaming)enable_streaming +EnableStreaming indicates whether the StreamBouncer should be used. If it's false, the LiveBouncer is used. The StreamBouncer keeps CrowdSec decisions in memory, resulting in quicker lookups. The LiveBouncer will perform an API call to your CrowdSec instance. Defaults to true. + +[🔗](https://caddyserver.com/docs/modules/crowdsec#enable_hard_fails)enable_hard_fails +EnableHardFails indicates whether calls to the CrowdSec API should result in hard failures, resulting in Caddy quitting vs. Caddy continuing operation (with a chance of not performing) validations. Defaults to false. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/modules/http.handlers.vars.md b/docs/caddy/modules/distributed.consul.md similarity index 72% rename from docs/caddy/docs/docs/modules/http.handlers.vars.md rename to docs/caddy/modules/distributed.consul.md index 829029b..6e5d8c2 100644 --- a/docs/caddy/docs/docs/modules/http.handlers.vars.md +++ b/docs/caddy/modules/distributed.consul.md @@ -1,21 +1,21 @@ -Title: Module http.handlers.vars - Caddy Documentation +Title: Modules - Caddy Documentation -URL Source: https://caddyserver.com/docs/modules/http.handlers.vars +URL Source: https://caddyserver.com/docs/modules/distributed.consul Markdown Content: -Module http.handlers.vars - Caddy Documentation -=============== +Modules - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== -Documentation +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +Documentation -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +27,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +40,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,9 +59,10 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) All Modules =========== @@ -71,13 +74,13 @@ We recommend using your browser's "Find in page" feature for quick lookups. | | Module ID | Description | | --- | --- | --- | -There is more than one module named . Choose one by its repository. + There is more than one module named . Choose one by its repository. -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` Description ----------- @@ -89,9 +92,12 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/dns.providers.acmedns.md b/docs/caddy/modules/dns.providers.acmedns.md new file mode 100644 index 0000000..3c76a9d --- /dev/null +++ b/docs/caddy/modules/dns.providers.acmedns.md @@ -0,0 +1,163 @@ +Title: Module dns.providers.acmedns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.acmedns + +Markdown Content: +Module dns.providers.acmedns - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.acmedns +============================ + + There is more than one module named **Module dns.providers.acmedns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/acmedns + +``` +{▾ "config": { + "": {▾ "username": "", "password": "", "subdomain": "", "fulldomain": "", "server_url": "" } + }, "username": "", "password": "", "subdomain": "", "server_url": "", "config_file_path": ""} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/acmedns](https://github.com/caddy-dns/acmedns)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/acmedns` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.acmedns lets Caddy read and manipulate DNS records hosted by this DNS provider. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#config)config +Provider.Configs defines a map from domain string to DomainConfig. It uses the same structure as ACME-DNS client JSON storage file ([https://github.com/acme-dns/acme-dns-client](https://github.com/acme-dns/acme-dns-client)). + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#config/username)config/username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#config/password)config/password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#config/subdomain)config/subdomain +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#config/fulldomain)config/fulldomain +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#config/server_url)config/server_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#username)username +ACME-DNS account username as returned by ACME-DNS API /register endpoint. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#password)password +ACME-DNS account password as returned by ACME-DNS API /register endpoint. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#subdomain)subdomain +ACME-DNS account subdomain as returned by ACME-DNS API /register endpoint. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#server_url)server_url +ACME-DNS API base URL. For example, [https://auth.acme-dns.io](https://auth.acme-dns.io/) + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmedns#config_file_path)config_file_path +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/dns.providers.acmeproxy.md b/docs/caddy/modules/dns.providers.acmeproxy.md new file mode 100644 index 0000000..8578dc4 --- /dev/null +++ b/docs/caddy/modules/dns.providers.acmeproxy.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.acmeproxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.acmeproxy + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.acmeproxy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.acmeproxy#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "username": "", "password": "", "endpoint": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/acmeproxy](https://github.com/caddy-dns/acmeproxy)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/acmeproxy` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.acmeproxy#docs "Direct link") +------------------------------------------------------------------------------------------------ + +dns.providers.acmeproxy wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmeproxy#username)username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmeproxy#password)password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.acmeproxy#endpoint)endpoint +Endpoint is the URL of the ACMEProxy server. diff --git a/docs/caddy/modules/dns.providers.alidns.md b/docs/caddy/modules/dns.providers.alidns.md new file mode 100644 index 0000000..0725033 --- /dev/null +++ b/docs/caddy/modules/dns.providers.alidns.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.alidns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.alidns + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.alidns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.alidns#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "access_key_id": "", "access_key_secret": "", "region_id": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/alidns](https://github.com/caddy-dns/alidns)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/alidns` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.alidns#docs "Direct link") +--------------------------------------------------------------------------------------------- + +dns.providers.alidns wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.alidns#access_key_id)access_key_id +The API Key ID Required by Aliyun's for accessing the Aliyun's API + +[🔗](https://caddyserver.com/docs/modules/dns.providers.alidns#access_key_secret)access_key_secret +The API Key Secret Required by Aliyun's for accessing the Aliyun's API + +[🔗](https://caddyserver.com/docs/modules/dns.providers.alidns#region_id)region_id +Optional for identifing the region of the Aliyun's Service,The default is zh-hangzhou diff --git a/docs/caddy/modules/dns.providers.azure.md b/docs/caddy/modules/dns.providers.azure.md new file mode 100644 index 0000000..7bd2b92 --- /dev/null +++ b/docs/caddy/modules/dns.providers.azure.md @@ -0,0 +1,143 @@ +Title: Module dns.providers.azure - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.azure + +Markdown Content: +Module dns.providers.azure - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.azure +========================== + + There is more than one module named **Module dns.providers.azure**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.azure#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/azure + +`{▾ "subscription_id": "", "resource_group_name": "", "tenant_id": "", "client_id": "", "client_secret": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/azure](https://github.com/caddy-dns/azure)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/azure` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.azure#docs "Direct link") +-------------------------------------------------------------------------------------------- + +dns.providers.azure wraps the provider implementation as a Caddy module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.azure#subscription_id)subscription_id +Subscription ID is the ID of the subscription in which the DNS zone is located. Required. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.azure#resource_group_name)resource_group_name +Resource Group Name is the name of the resource group in which the DNS zone is located. Required. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.azure#tenant_id)tenant_id +(Optional) Tenant ID is the ID of the tenant of the Microsoft Entra ID in which the application is located. Required only when authenticating using a service principal with a secret. Do not set any value to authenticate using a managed identity. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.azure#client_id)client_id +(Optional) Client ID is the ID of the application. Required only when authenticating using a service principal with a secret. Do not set any value to authenticate using a managed identity. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.azure#client_secret)client_secret +(Optional) Client Secret is the client secret of the application. Required only when authenticating using a service principal with a secret. Do not set any value to authenticate using a managed identity. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fdns.providers.azure&r=&sid=GVMGKAKP&qs=%7B%7D&cid=54965598) diff --git a/docs/caddy/modules/dns.providers.bunny.md b/docs/caddy/modules/dns.providers.bunny.md new file mode 100644 index 0000000..f760bba --- /dev/null +++ b/docs/caddy/modules/dns.providers.bunny.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.bunny - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.bunny + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.bunny**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.bunny#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾ "access_key": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/bunny](https://github.com/caddy-dns/bunny)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/bunny` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.bunny#docs "Direct link") +-------------------------------------------------------------------------------------------- + +dns.providers.bunny lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.bunny#access_key)access_key +AccessKey is the Bunny.net API key - see [https://docs.bunny.net/reference/bunnynet-api-overview](https://docs.bunny.net/reference/bunnynet-api-overview) diff --git a/docs/caddy/modules/dns.providers.civo.md b/docs/caddy/modules/dns.providers.civo.md new file mode 100644 index 0000000..4fa3039 --- /dev/null +++ b/docs/caddy/modules/dns.providers.civo.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.civo - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.civo + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.civo**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.civo#docs "Direct link") +------------------------------------------------------------------------------------------- + +`{▾ "api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/civo](https://github.com/caddy-dns/civo)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/civo` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.civo#docs "Direct link") +------------------------------------------------------------------------------------------- + +dns.providers.civo lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.civo#api_token)api_token +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.cloudflare.md b/docs/caddy/modules/dns.providers.cloudflare.md new file mode 100644 index 0000000..88dc2fa --- /dev/null +++ b/docs/caddy/modules/dns.providers.cloudflare.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.cloudflare - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.cloudflare + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.cloudflare**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.cloudflare#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/cloudflare](https://github.com/caddy-dns/cloudflare)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/cloudflare` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.cloudflare#docs "Direct link") +------------------------------------------------------------------------------------------------- + +dns.providers.cloudflare wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.cloudflare#api_token)api_token +API token is used for authentication. Make sure to use a scoped API **token**, NOT a global API **key**. It will need two permissions: Zone-Zone-Read and Zone-DNS-Edit, unless you are only using `GetRecords()`, in which case the second can be changed to Read. diff --git a/docs/caddy/modules/dns.providers.cloudns.md b/docs/caddy/modules/dns.providers.cloudns.md new file mode 100644 index 0000000..5671f04 --- /dev/null +++ b/docs/caddy/modules/dns.providers.cloudns.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.cloudns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.cloudns + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.cloudns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.cloudns#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "auth_id": "", "sub_auth_id": "", "auth_password": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/cloudns](https://github.com/caddy-dns/cloudns)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/cloudns` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.cloudns#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.cloudns lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.cloudns#auth_id)auth_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.cloudns#sub_auth_id)sub_auth_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.cloudns#auth_password)auth_password +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.ddnss.md b/docs/caddy/modules/dns.providers.ddnss.md new file mode 100644 index 0000000..929df9a --- /dev/null +++ b/docs/caddy/modules/dns.providers.ddnss.md @@ -0,0 +1,103 @@ +Title: Modules - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.ddnss + +Markdown Content: +Modules - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/dns.providers.desec.md b/docs/caddy/modules/dns.providers.desec.md new file mode 100644 index 0000000..c39a5b4 --- /dev/null +++ b/docs/caddy/modules/dns.providers.desec.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.desec - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.desec + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.desec**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.desec#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾ "token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/desec](https://github.com/caddy-dns/desec)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/desec` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.desec#docs "Direct link") +-------------------------------------------------------------------------------------------- + +dns.providers.desec lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.desec#token)token +Token is a token created on [https://desec.io/tokens](https://desec.io/tokens). A basic token without the permission to manage tokens is sufficient. diff --git a/docs/caddy/modules/dns.providers.digitalocean.md b/docs/caddy/modules/dns.providers.digitalocean.md new file mode 100644 index 0000000..475ff05 --- /dev/null +++ b/docs/caddy/modules/dns.providers.digitalocean.md @@ -0,0 +1,131 @@ +Title: Module dns.providers.digitalocean - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.digitalocean + +Markdown Content: +Module dns.providers.digitalocean - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.digitalocean +================================= + + There is more than one module named **Module dns.providers.digitalocean**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.digitalocean#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/digitalocean + +`{▾ "auth_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/digitalocean](https://github.com/caddy-dns/digitalocean)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/digitalocean` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.digitalocean#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +dns.providers.digitalocean wraps the provider implementation as a Caddy module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.digitalocean#auth_token)auth_token +auth_token is the DigitalOcean API token - see [https://www.digitalocean.com/docs/apis-clis/api/create-personal-access-token/](https://www.digitalocean.com/docs/apis-clis/api/create-personal-access-token/) + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fdns.providers.digitalocean&r=&sid=GVMGKAKP&qs=%7B%7D&cid=17107834) diff --git a/docs/caddy/modules/dns.providers.dinahosting.md b/docs/caddy/modules/dns.providers.dinahosting.md new file mode 100644 index 0000000..e22aa2d --- /dev/null +++ b/docs/caddy/modules/dns.providers.dinahosting.md @@ -0,0 +1,44 @@ +Title: Module dns.providers.dinahosting - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.dinahosting + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.dinahosting**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dinahosting#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "username": "", "password": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/dinahosting](https://github.com/caddy-dns/dinahosting)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/dinahosting` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dinahosting#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +dns.providers.dinahosting lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dinahosting#username)username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dinahosting#password)password +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.directadmin.md b/docs/caddy/modules/dns.providers.directadmin.md new file mode 100644 index 0000000..dff6ae1 --- /dev/null +++ b/docs/caddy/modules/dns.providers.directadmin.md @@ -0,0 +1,149 @@ +Title: Module dns.providers.directadmin - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.directadmin + +Markdown Content: +Module dns.providers.directadmin - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.directadmin +================================ + + There is more than one module named **Module dns.providers.directadmin**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.directadmin#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/directadmin + +`{▾ "host": "", "user": "", "login_key": "", "insecure_requests": false, "debug": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/directadmin](https://github.com/caddy-dns/directadmin)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/directadmin` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.directadmin#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +dns.providers.directadmin lets Caddy read and manipulate DNS records hosted by this DNS provider. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.directadmin#host)host +ServerURL should be the hostname (with port if necessary) of the DirectAdmin instance you are trying to use + +[🔗](https://caddyserver.com/docs/modules/dns.providers.directadmin#user)user +User should be the DirectAdmin username that the Login Key is created under + +[🔗](https://caddyserver.com/docs/modules/dns.providers.directadmin#login_key)login_key +LoginKey is used for authentication + +The key will need two permissions: + +`CMD_API_SHOW_DOMAINS` + +`CMD_API_DNS_CONTROL` + +Unless you are only using `GetRecords()`, in which case `CMD_API_DNS_CONTROL` can be omitted + +[🔗](https://caddyserver.com/docs/modules/dns.providers.directadmin#insecure_requests)insecure_requests +InsecureRequests is an optional parameter used to ignore SSL related errors on the DirectAdmin host + +[🔗](https://caddyserver.com/docs/modules/dns.providers.directadmin#debug)debug +Debug - can set this to stdout or stderr to dump debugging information about the API interaction with powerdns. This will dump your auth token in plain text so be careful. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/dns.providers.dnsexit.md b/docs/caddy/modules/dns.providers.dnsexit.md new file mode 100644 index 0000000..c64d3df --- /dev/null +++ b/docs/caddy/modules/dns.providers.dnsexit.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.dnsexit - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.dnsexit + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.dnsexit**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsexit#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "api_key": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/dnsexit](https://github.com/caddy-dns/dnsexit)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/dnsexit` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsexit#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.dnsexit lets Caddy read and manipulate DNS records hosted by DNSExit. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsexit#api_key)api_key +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.dnsimple.md b/docs/caddy/modules/dns.providers.dnsimple.md new file mode 100644 index 0000000..1553a33 --- /dev/null +++ b/docs/caddy/modules/dns.providers.dnsimple.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.dnsimple - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.dnsimple + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.dnsimple**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsimple#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾ "api_access_token": "", "account_id": "", "api_url": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/dnsimple](https://github.com/caddy-dns/dnsimple)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/dnsimple` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsimple#docs "Direct link") +----------------------------------------------------------------------------------------------- + +dns.providers.dnsimple lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsimple#api_access_token)api_access_token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsimple#account_id)account_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsimple#api_url)api_url +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.dnsmadeeasy.md b/docs/caddy/modules/dns.providers.dnsmadeeasy.md new file mode 100644 index 0000000..07bd479 --- /dev/null +++ b/docs/caddy/modules/dns.providers.dnsmadeeasy.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.dnsmadeeasy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.dnsmadeeasy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "api_key": "", "secret_key": "", "api_endpoint": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/dnsmadeeasy](https://github.com/caddy-dns/dnsmadeeasy)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/dnsmadeeasy` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +dns.providers.dnsmadeeasy wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy#api_key)api_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy#secret_key)secret_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy#api_endpoint)api_endpoint +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.dnspod.md b/docs/caddy/modules/dns.providers.dnspod.md new file mode 100644 index 0000000..4e1b07c --- /dev/null +++ b/docs/caddy/modules/dns.providers.dnspod.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.dnspod - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.dnspod + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.dnspod**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dnspod#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "auth_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/dnspod](https://github.com/caddy-dns/dnspod)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/dnspod` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dnspod#docs "Direct link") +--------------------------------------------------------------------------------------------- + +dns.providers.dnspod wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dnspod#auth_token)auth_token +auth_token is the DNSPOD API token - see [https://www.dnspod.cn/docs/info.html#common-parameters](https://www.dnspod.cn/docs/info.html#common-parameters) diff --git a/docs/caddy/modules/dns.providers.domainnameshop.md b/docs/caddy/modules/dns.providers.domainnameshop.md new file mode 100644 index 0000000..e5d11c1 --- /dev/null +++ b/docs/caddy/modules/dns.providers.domainnameshop.md @@ -0,0 +1,134 @@ +Title: Module dns.providers.domainnameshop - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.domainnameshop + +Markdown Content: +Module dns.providers.domainnameshop - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.domainnameshop +=================================== + + There is more than one module named **Module dns.providers.domainnameshop**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.domainnameshop#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/domainnameshop + +`{▾ "api_token": "", "api_secret": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/domainnameshop](https://github.com/caddy-dns/domainnameshop)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/domainnameshop` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.domainnameshop#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +dns.providers.domainnameshop lets Caddy read and manipulate DNS records hosted by this DNS provider. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.domainnameshop#api_token)api_token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.domainnameshop#api_secret)api_secret +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fdns.providers.domainnameshop&r=&sid=GVMGKAKP&qs=%7B%7D&cid=14221821) diff --git a/docs/caddy/modules/dns.providers.dreamhost.md b/docs/caddy/modules/dns.providers.dreamhost.md new file mode 100644 index 0000000..2e18c9d --- /dev/null +++ b/docs/caddy/modules/dns.providers.dreamhost.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.dreamhost - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.dreamhost + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.dreamhost**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dreamhost#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "api_key": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/dreamhost](https://github.com/caddy-dns/dreamhost)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/dreamhost` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dreamhost#docs "Direct link") +------------------------------------------------------------------------------------------------ + +dns.providers.dreamhost lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dreamhost#api_key)api_key +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.duckdns.md b/docs/caddy/modules/dns.providers.duckdns.md new file mode 100644 index 0000000..1468acf --- /dev/null +++ b/docs/caddy/modules/dns.providers.duckdns.md @@ -0,0 +1,44 @@ +Title: Module dns.providers.duckdns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.duckdns + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.duckdns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.duckdns#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "api_token": "", "override_domain": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/duckdns](https://github.com/caddy-dns/duckdns)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/duckdns` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.duckdns#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.duckdns wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.duckdns#api_token)api_token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.duckdns#override_domain)override_domain +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.dynu.md b/docs/caddy/modules/dns.providers.dynu.md new file mode 100644 index 0000000..303037b --- /dev/null +++ b/docs/caddy/modules/dns.providers.dynu.md @@ -0,0 +1,44 @@ +Title: Module dns.providers.dynu - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.dynu + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.dynu**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dynu#docs "Direct link") +------------------------------------------------------------------------------------------- + +`{▾ "api_token": "", "own_domain": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/dynu](https://github.com/caddy-dns/dynu)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/dynu` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.dynu#docs "Direct link") +------------------------------------------------------------------------------------------- + +dns.providers.dynu lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dynu#api_token)api_token +config fields (with snake_case json struct tags on exported fields) + +[🔗](https://caddyserver.com/docs/modules/dns.providers.dynu#own_domain)own_domain +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.easydns.md b/docs/caddy/modules/dns.providers.easydns.md new file mode 100644 index 0000000..47bc8b4 --- /dev/null +++ b/docs/caddy/modules/dns.providers.easydns.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.easydns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.easydns + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.easydns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.easydns#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "api_token": "", "api_key": "", "api_url": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/easydns](https://github.com/caddy-dns/easydns)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/easydns` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.easydns#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.easydns lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.easydns#api_token)api_token +EasyDNS API Token (required) + +[🔗](https://caddyserver.com/docs/modules/dns.providers.easydns#api_key)api_key +EasyDNS API Key (required) + +[🔗](https://caddyserver.com/docs/modules/dns.providers.easydns#api_url)api_url +EasyDNS API URL (defaults to [https://rest.easydns.net](https://rest.easydns.net/)) diff --git a/docs/caddy/modules/dns.providers.edgeone.md b/docs/caddy/modules/dns.providers.edgeone.md new file mode 100644 index 0000000..f9b601d --- /dev/null +++ b/docs/caddy/modules/dns.providers.edgeone.md @@ -0,0 +1,38 @@ +Title: Module dns.providers.edgeone - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.edgeone + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.edgeone**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.edgeone#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/LeenHawk/edgeone](https://github.com/LeenHawk/edgeone)** + +**Custom builds:**`xcaddy build --with github.com/LeenHawk/edgeone` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.edgeone#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.edgeone wraps the provider implementation as a Caddy module. diff --git a/docs/caddy/modules/dns.providers.gandi.md b/docs/caddy/modules/dns.providers.gandi.md new file mode 100644 index 0000000..c2855a3 --- /dev/null +++ b/docs/caddy/modules/dns.providers.gandi.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.gandi - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.gandi + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.gandi**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.gandi#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾ "bearer_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/gandi](https://github.com/caddy-dns/gandi)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/gandi` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.gandi#docs "Direct link") +-------------------------------------------------------------------------------------------- + +dns.providers.gandi wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.gandi#bearer_token)bearer_token +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.glesys.md b/docs/caddy/modules/dns.providers.glesys.md new file mode 100644 index 0000000..00d3330 --- /dev/null +++ b/docs/caddy/modules/dns.providers.glesys.md @@ -0,0 +1,44 @@ +Title: Module dns.providers.glesys - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.glesys + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.glesys**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.glesys#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "project": "", "api_key": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/glesys](https://github.com/caddy-dns/glesys)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/glesys` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.glesys#docs "Direct link") +--------------------------------------------------------------------------------------------- + +dns.providers.glesys lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.glesys#project)project +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.glesys#api_key)api_key +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.godaddy.md b/docs/caddy/modules/dns.providers.godaddy.md new file mode 100644 index 0000000..4f0d1d4 --- /dev/null +++ b/docs/caddy/modules/dns.providers.godaddy.md @@ -0,0 +1,157 @@ +Title: Module dns.providers.godaddy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.godaddy + +Markdown Content: +Module dns.providers.godaddy - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.godaddy +============================ + + There is more than one module named **dns.providers.godaddy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.godaddy#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/godaddy + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/godaddy](https://github.com/caddy-dns/godaddy)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/godaddy` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.godaddy#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.godaddy wraps the provider implementation as a Caddy module. + +Field List +---------- + +▸github.com/xcaddyplugins/caddy-dns-godaddy + +`{▾ "api_key": "", "api_secret": "", "http_timeout": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/xcaddyplugins/caddy-dns-godaddy](https://github.com/xcaddyplugins/caddy-dns-godaddy)** + +**Custom builds:**`xcaddy build --with github.com/xcaddyplugins/caddy-dns-godaddy` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.godaddy#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.godaddy implements the libdns interfaces for GoDaddy DNS + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.godaddy#api_key)api_key +GoDaddy API Key + +[🔗](https://caddyserver.com/docs/modules/dns.providers.godaddy#api_secret)api_secret +GoDaddy API Secret + +[🔗](https://caddyserver.com/docs/modules/dns.providers.godaddy#http_timeout)http_timeout +HTTP request timeout + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fdns.providers.godaddy&r=&sid=GVMGKAKP&qs=%7B%7D&cid=71934191) diff --git a/docs/caddy/modules/dns.providers.google_domains.md b/docs/caddy/modules/dns.providers.google_domains.md new file mode 100644 index 0000000..763fb9c --- /dev/null +++ b/docs/caddy/modules/dns.providers.google_domains.md @@ -0,0 +1,134 @@ +Title: Module dns.providers.google_domains - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.google_domains + +Markdown Content: +Module dns.providers.google_domains - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.google_domains +=================================== + + There is more than one module named **Module dns.providers.google_domains**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.google_domains#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/google-domains + +`{▾ "access_token": "", "keep_expired_records": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/google-domains](https://github.com/caddy-dns/google-domains)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/google-domains` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.google_domains#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +dns.providers.google_domains lets Caddy read and manipulate DNS records hosted by this DNS provider. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.google_domains#access_token)access_token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.google_domains#keep_expired_records)keep_expired_records +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fdns.providers.google_domains&r=&sid=GVMGKAKP&qs=%7B%7D&cid=43701793) diff --git a/docs/caddy/modules/dns.providers.googleclouddns.md b/docs/caddy/modules/dns.providers.googleclouddns.md new file mode 100644 index 0000000..e91a82f --- /dev/null +++ b/docs/caddy/modules/dns.providers.googleclouddns.md @@ -0,0 +1,44 @@ +Title: Module dns.providers.googleclouddns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.googleclouddns + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.googleclouddns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.googleclouddns#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +`{▾ "gcp_project": "", "gcp_application_default": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/googleclouddns](https://github.com/caddy-dns/googleclouddns)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/googleclouddns` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.googleclouddns#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +dns.providers.googleclouddns lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.googleclouddns#gcp_project)gcp_project +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.googleclouddns#gcp_application_default)gcp_application_default +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.he.md b/docs/caddy/modules/dns.providers.he.md new file mode 100644 index 0000000..f101f0d --- /dev/null +++ b/docs/caddy/modules/dns.providers.he.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.he - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.he + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.he**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.he#docs "Direct link") +----------------------------------------------------------------------------------------- + +`{▾ "api_key": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/he](https://github.com/caddy-dns/he)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/he` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.he#docs "Direct link") +----------------------------------------------------------------------------------------- + +dns.providers.he lets Caddy read and manipulate DNS records hosted by Hurricane Electric. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.he#api_key)api_key +Hurricane Electric DDNS key to use for authentication when modifying DNS records. diff --git a/docs/caddy/modules/dns.providers.hetzner.md b/docs/caddy/modules/dns.providers.hetzner.md new file mode 100644 index 0000000..3c282ef --- /dev/null +++ b/docs/caddy/modules/dns.providers.hetzner.md @@ -0,0 +1,131 @@ +Title: Module dns.providers.hetzner - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.hetzner + +Markdown Content: +Module dns.providers.hetzner - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.hetzner +============================ + + There is more than one module named **Module dns.providers.hetzner**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.hetzner#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/hetzner + +`{▾ "auth_api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/hetzner](https://github.com/caddy-dns/hetzner)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/hetzner` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.hetzner#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.hetzner wraps the provider implementation as a Caddy module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.hetzner#auth_api_token)auth_api_token +auth_api_token is the Hetzner Auth API token - see [https://dns.hetzner.com/api-docs#section/Authentication/Auth-API-Token](https://dns.hetzner.com/api-docs#section/Authentication/Auth-API-Token) + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fdns.providers.hetzner&r=&sid=GVMGKAKP&qs=%7B%7D&cid=51355273) diff --git a/docs/caddy/modules/dns.providers.hexonet.md b/docs/caddy/modules/dns.providers.hexonet.md new file mode 100644 index 0000000..1f1b2d2 --- /dev/null +++ b/docs/caddy/modules/dns.providers.hexonet.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.hexonet - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.hexonet + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.hexonet**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.hexonet#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "username": "", "password": "", "debug": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/hexonet](https://github.com/caddy-dns/hexonet)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/hexonet` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.hexonet#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.hexonet wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.hexonet#username)username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.hexonet#password)password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.hexonet#debug)debug +Debug - can set this to stdout or stderr to dump debugging information about the API interaction with hexonet. This will dump your auth token in plain text so be careful. diff --git a/docs/caddy/modules/dns.providers.hosttech.md b/docs/caddy/modules/dns.providers.hosttech.md new file mode 100644 index 0000000..db65078 --- /dev/null +++ b/docs/caddy/modules/dns.providers.hosttech.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.hosttech - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.hosttech + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.hosttech**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.hosttech#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾ "api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/hosttech](https://github.com/caddy-dns/hosttech)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/hosttech` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.hosttech#docs "Direct link") +----------------------------------------------------------------------------------------------- + +dns.providers.hosttech lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.hosttech#api_token)api_token +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.huaweicloud.md b/docs/caddy/modules/dns.providers.huaweicloud.md new file mode 100644 index 0000000..3e04f9f --- /dev/null +++ b/docs/caddy/modules/dns.providers.huaweicloud.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.huaweicloud - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.huaweicloud + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.huaweicloud**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.huaweicloud#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "access_key_id": "", "secret_access_key": "", "region_id": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/huaweicloud](https://github.com/caddy-dns/huaweicloud)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/huaweicloud` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.huaweicloud#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +dns.providers.huaweicloud lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.huaweicloud#access_key_id)access_key_id +AccessKeyId is required by the Huawei Cloud API for authentication. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.huaweicloud#secret_access_key)secret_access_key +SecretAccessKey is required by the Huawei Cloud API for authentication. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.huaweicloud#region_id)region_id +RegionId is optional and defaults to "cn-south-1". diff --git a/docs/caddy/modules/dns.providers.immosquare.md b/docs/caddy/modules/dns.providers.immosquare.md new file mode 100644 index 0000000..2e2450b --- /dev/null +++ b/docs/caddy/modules/dns.providers.immosquare.md @@ -0,0 +1,44 @@ +Title: Module dns.providers.immosquare - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.immosquare + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.immosquare**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.immosquare#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "api_token": "", "endpoint": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/immosquare/caddy-dns-immosquare](https://github.com/immosquare/caddy-dns-immosquare)** + +**Custom builds:**`xcaddy build --with github.com/immosquare/caddy-dns-immosquare` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.immosquare#docs "Direct link") +------------------------------------------------------------------------------------------------- + +dns.providers.immosquare lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.immosquare#api_token)api_token +Token d'authentification pour l'API immosquare + +[🔗](https://caddyserver.com/docs/modules/dns.providers.immosquare#endpoint)endpoint +Endpoint de l'API DNS (par défaut: [https://immosquare.me:4005/api/dns](https://immosquare.me:4005/api/dns)) diff --git a/docs/caddy/modules/dns.providers.infomaniak.md b/docs/caddy/modules/dns.providers.infomaniak.md new file mode 100644 index 0000000..111093d --- /dev/null +++ b/docs/caddy/modules/dns.providers.infomaniak.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.infomaniak - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.infomaniak + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.infomaniak**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.infomaniak#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/infomaniak](https://github.com/caddy-dns/infomaniak)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/infomaniak` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.infomaniak#docs "Direct link") +------------------------------------------------------------------------------------------------- + +dns.providers.infomaniak lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.infomaniak#api_token)api_token +infomaniak API token diff --git a/docs/caddy/modules/dns.providers.inwx.md b/docs/caddy/modules/dns.providers.inwx.md new file mode 100644 index 0000000..7123d67 --- /dev/null +++ b/docs/caddy/modules/dns.providers.inwx.md @@ -0,0 +1,50 @@ +Title: Module dns.providers.inwx - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.inwx + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.inwx**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.inwx#docs "Direct link") +------------------------------------------------------------------------------------------- + +`{▾ "username": "", "password": "", "shared_secret": "", "endpoint_url": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/inwx](https://github.com/caddy-dns/inwx)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/inwx` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.inwx#docs "Direct link") +------------------------------------------------------------------------------------------- + +dns.providers.inwx lets Caddy read and manipulate DNS records hosted by INWX. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.inwx#username)username +Username of your INWX account. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.inwx#password)password +Password of your INWX account. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.inwx#shared_secret)shared_secret +The shared secret is used to generate a TAN if you have activated "Mobile TAN" for your INWX account. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.inwx#endpoint_url)endpoint_url +URL of the JSON-RPC API endpoint. It defaults to the production endpoint. diff --git a/docs/caddy/modules/dns.providers.ionos.md b/docs/caddy/modules/dns.providers.ionos.md new file mode 100644 index 0000000..fb5739a --- /dev/null +++ b/docs/caddy/modules/dns.providers.ionos.md @@ -0,0 +1,131 @@ +Title: Module dns.providers.ionos - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.ionos + +Markdown Content: +Module dns.providers.ionos - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.ionos +========================== + + There is more than one module named **Module dns.providers.ionos**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.ionos#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/ionos + +`{▾ "auth_api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/ionos](https://github.com/caddy-dns/ionos)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/ionos` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.ionos#docs "Direct link") +-------------------------------------------------------------------------------------------- + +dns.providers.ionos wraps the provider implementation as a Caddy module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.ionos#auth_api_token)auth_api_token +AuthAPIToken is the IONOS Auth API token - see [https://dns.ionos.com/api-docs#section/Authentication/Auth-API-Token](https://dns.ionos.com/api-docs#section/Authentication/Auth-API-Token) + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fdns.providers.ionos&r=&sid=GVMGKAKP&qs=%7B%7D&cid=81542038) diff --git a/docs/caddy/modules/dns.providers.katapult.md b/docs/caddy/modules/dns.providers.katapult.md new file mode 100644 index 0000000..9162608 --- /dev/null +++ b/docs/caddy/modules/dns.providers.katapult.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.katapult - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.katapult + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.katapult**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.katapult#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾ "api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/katapult](https://github.com/caddy-dns/katapult)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/katapult` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.katapult#docs "Direct link") +----------------------------------------------------------------------------------------------- + +dns.providers.katapult lets Caddy read and manipulate DNS records hosted by Katapult. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.katapult#api_token)api_token +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.leaseweb.md b/docs/caddy/modules/dns.providers.leaseweb.md new file mode 100644 index 0000000..2d6d749 --- /dev/null +++ b/docs/caddy/modules/dns.providers.leaseweb.md @@ -0,0 +1,103 @@ +Title: Module dns.providers.leaseweb - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.leaseweb + +Markdown Content: +Module dns.providers.leaseweb - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/dns.providers.lego_deprecated.md b/docs/caddy/modules/dns.providers.lego_deprecated.md new file mode 100644 index 0000000..ee038c9 --- /dev/null +++ b/docs/caddy/modules/dns.providers.lego_deprecated.md @@ -0,0 +1,45 @@ +Title: Module dns.providers.lego_deprecated - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.lego_deprecated + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.lego_deprecated**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +`{▾ "provider_name": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/lego-deprecated](https://github.com/caddy-dns/lego-deprecated)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/lego-deprecated` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +dns.providers.lego_deprecated is a shim module that allows any and all of the DNS providers in go-acme/lego to be used with Caddy. They must be configured via environment variables, they do not support cancellation in the case of frequent config changes. + +Even though this module is in the dns.providers namespace, it is only a special case for solving ACME challenges, intended to replace the modules that used to be in the now-defunct tls.dns namespace. Using it in other places of the Caddy config will result in errors. + +This module will eventually go away in favor of the modules that make use of the libdns APIs: [https://github.com/libdns](https://github.com/libdns) + +[🔗](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated#provider_name)provider_name +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.linode.md b/docs/caddy/modules/dns.providers.linode.md new file mode 100644 index 0000000..d77ff20 --- /dev/null +++ b/docs/caddy/modules/dns.providers.linode.md @@ -0,0 +1,156 @@ +Title: Module dns.providers.linode - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.linode + +Markdown Content: +Module dns.providers.linode - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.linode +=========================== + + There is more than one module named **dns.providers.linode**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.linode#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/linode + +`{▾ "api_token": "", "api_url": "", "api_version": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/linode](https://github.com/caddy-dns/linode)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/linode` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.linode#docs "Direct link") +--------------------------------------------------------------------------------------------- + +dns.providers.linode lets Caddy read and manipulate DNS records hosted by this DNS provider. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.linode#api_token)api_token +APIToken is the Linode Personal Access Token, see [https://cloud.linode.com/profile/tokens](https://cloud.linode.com/profile/tokens). + +[🔗](https://caddyserver.com/docs/modules/dns.providers.linode#api_url)api_url +APIURL is the Linode API hostname, i.e. "api.linode.com". + +[🔗](https://caddyserver.com/docs/modules/dns.providers.linode#api_version)api_version +APIVersion is the Linode API version, i.e. "v4". + +▸github.com/tosie/caddy-dns-linode + +`{▾ "auth_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/tosie/caddy-dns-linode](https://github.com/tosie/caddy-dns-linode)** + +**Custom builds:**`xcaddy build --with github.com/tosie/caddy-dns-linode` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.linode#docs "Direct link") +--------------------------------------------------------------------------------------------- + +dns.providers.linode wraps the provider implementation as a Caddy module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.linode#auth_token)auth_token +APIToken is the Linode personal access token - see [https://cloud.linode.com/profile/tokens](https://cloud.linode.com/profile/tokens). + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/dns.providers.loopia.md b/docs/caddy/modules/dns.providers.loopia.md new file mode 100644 index 0000000..bd7a29b --- /dev/null +++ b/docs/caddy/modules/dns.providers.loopia.md @@ -0,0 +1,45 @@ +Title: Module dns.providers.loopia - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.loopia + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.loopia**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.loopia#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "username": "", "password": "", "customer": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/loopia](https://github.com/caddy-dns/loopia)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/loopia` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.loopia#docs "Direct link") +--------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.loopia#username)username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.loopia#password)password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.loopia#customer)customer +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.mailinabox.md b/docs/caddy/modules/dns.providers.mailinabox.md new file mode 100644 index 0000000..e96e9f8 --- /dev/null +++ b/docs/caddy/modules/dns.providers.mailinabox.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.mailinabox - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.mailinabox + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.mailinabox**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.mailinabox#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "api_url": "", "email_address": "", "password": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/mailinabox](https://github.com/caddy-dns/mailinabox)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/mailinabox` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.mailinabox#docs "Direct link") +------------------------------------------------------------------------------------------------- + +dns.providers.mailinabox lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.mailinabox#api_url)api_url +APIURL is the URL provided by the mailinabox admin interface, found on your box here: [https://box.[your-domain.com]/admin#custom_dns](https://box.%5Byour-domain.com%5D/admin#custom_dns)[https://box.[your-domain.com]/admin/dns/custom](https://box.%5Byour-domain.com%5D/admin/dns/custom) + +[🔗](https://caddyserver.com/docs/modules/dns.providers.mailinabox#email_address)email_address +EmailAddress of an admin account. It's recommended that a dedicated account be created especially for managing DNS. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.mailinabox#password)password +Password of the admin account that corresponds to the email. diff --git a/docs/caddy/modules/dns.providers.metaname.md b/docs/caddy/modules/dns.providers.metaname.md new file mode 100644 index 0000000..af3c005 --- /dev/null +++ b/docs/caddy/modules/dns.providers.metaname.md @@ -0,0 +1,137 @@ +Title: Module dns.providers.metaname - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.metaname + +Markdown Content: +Module dns.providers.metaname - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.metaname +============================= + + There is more than one module named **Module dns.providers.metaname**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.metaname#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/metaname + +`{▾ "api_key": "", "account_reference": "", "endpoint": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/metaname](https://github.com/caddy-dns/metaname)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/metaname` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.metaname#docs "Direct link") +----------------------------------------------------------------------------------------------- + +dns.providers.metaname wraps the provider implementation as a Caddy module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.metaname#api_key)api_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.metaname#account_reference)account_reference +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.metaname#endpoint)endpoint +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fdns.providers.metaname&r=&sid=GVMGKAKP&qs=%7B%7D&cid=21042255) diff --git a/docs/caddy/modules/dns.providers.namecheap.md b/docs/caddy/modules/dns.providers.namecheap.md new file mode 100644 index 0000000..c20cca5 --- /dev/null +++ b/docs/caddy/modules/dns.providers.namecheap.md @@ -0,0 +1,50 @@ +Title: Module dns.providers.namecheap - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.namecheap + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.namecheap**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.namecheap#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "api_key": "", "user": "", "api_endpoint": "", "client_ip": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/namecheap](https://github.com/caddy-dns/namecheap)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/namecheap` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.namecheap#docs "Direct link") +------------------------------------------------------------------------------------------------ + +dns.providers.namecheap wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.namecheap#api_key)api_key +APIKey is your namecheap API key. See: [https://www.namecheap.com/support/api/intro/](https://www.namecheap.com/support/api/intro/) for more details. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.namecheap#user)user +User is your namecheap API user. This can be the same as your username. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.namecheap#api_endpoint)api_endpoint +APIEndpoint to use. If testing, you can use the "sandbox" endpoint instead of the production one. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.namecheap#client_ip)client_ip +ClientIP is the IP address of the requesting client. If this is not set, a discovery service will be used to determine the public ip of the machine. You must first whitelist your IP in the namecheap console before using the API. diff --git a/docs/caddy/modules/dns.providers.namedotcom.md b/docs/caddy/modules/dns.providers.namedotcom.md new file mode 100644 index 0000000..98561e1 --- /dev/null +++ b/docs/caddy/modules/dns.providers.namedotcom.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.namedotcom - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.namedotcom + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.namedotcom**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.namedotcom#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "api_token": "", "user": "", "server": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/namedotcom](https://github.com/caddy-dns/namedotcom)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/namedotcom` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.namedotcom#docs "Direct link") +------------------------------------------------------------------------------------------------- + +dns.providers.namedotcom wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.namedotcom#api_token)api_token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.namedotcom#user)user +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.namedotcom#server)server +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.namesilo.md b/docs/caddy/modules/dns.providers.namesilo.md new file mode 100644 index 0000000..122d81a --- /dev/null +++ b/docs/caddy/modules/dns.providers.namesilo.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.namesilo - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.namesilo + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.namesilo**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.namesilo#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾ "api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/namesilo](https://github.com/caddy-dns/namesilo)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/namesilo` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.namesilo#docs "Direct link") +----------------------------------------------------------------------------------------------- + +dns.providers.namesilo lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.namesilo#api_token)api_token +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.nanelo.md b/docs/caddy/modules/dns.providers.nanelo.md new file mode 100644 index 0000000..45deb82 --- /dev/null +++ b/docs/caddy/modules/dns.providers.nanelo.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.nanelo - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.nanelo + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.nanelo**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.nanelo#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/nanelo](https://github.com/caddy-dns/nanelo)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/nanelo` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.nanelo#docs "Direct link") +--------------------------------------------------------------------------------------------- + +dns.providers.nanelo lets Caddy read and manipulate DNS records hosted by Nanelo DNS. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.nanelo#api_token)api_token +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.neoserv.md b/docs/caddy/modules/dns.providers.neoserv.md new file mode 100644 index 0000000..61a8950 --- /dev/null +++ b/docs/caddy/modules/dns.providers.neoserv.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.neoserv - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.neoserv + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.neoserv**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.neoserv#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "username": "", "password": "", "unsupported_ttl_is_error": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/neoserv](https://github.com/caddy-dns/neoserv)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/neoserv` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.neoserv#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.neoserv lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.neoserv#username)username +Email used to authenticate with moj.neoserv.si + +[🔗](https://caddyserver.com/docs/modules/dns.providers.neoserv#password)password +Password used to authenticate with moj.neoserv.si + +[🔗](https://caddyserver.com/docs/modules/dns.providers.neoserv#unsupported_ttl_is_error)unsupported_ttl_is_error +UnsupportedTTLisError determines whether an unsupported TTL value should be treated as an error. If set to true, the provider will return an error if an unsupported TTL value is requested. If set to false, the provider will set the TTL to the nearest supported value that is at least the requested value. diff --git a/docs/caddy/modules/dns.providers.netcup.md b/docs/caddy/modules/dns.providers.netcup.md new file mode 100644 index 0000000..f47640b --- /dev/null +++ b/docs/caddy/modules/dns.providers.netcup.md @@ -0,0 +1,47 @@ +Title: Module dns.providers.netcup - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.netcup + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.netcup**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.netcup#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "customer_number": "", "api_key": "", "api_password": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/netcup](https://github.com/caddy-dns/netcup)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/netcup` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.netcup#docs "Direct link") +--------------------------------------------------------------------------------------------- + +dns.providers.netcup lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.netcup#customer_number)customer_number +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.netcup#api_key)api_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.netcup#api_password)api_password +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.netlify.md b/docs/caddy/modules/dns.providers.netlify.md new file mode 100644 index 0000000..2a02ba2 --- /dev/null +++ b/docs/caddy/modules/dns.providers.netlify.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.netlify - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.netlify + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.netlify**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.netlify#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "personal_access_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/netlify](https://github.com/caddy-dns/netlify)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/netlify` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.netlify#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.netlify wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.netlify#personal_access_token)personal_access_token +Personal Access Token is required to Authenticate yourself to Netlify's API diff --git a/docs/caddy/modules/dns.providers.njalla.md b/docs/caddy/modules/dns.providers.njalla.md new file mode 100644 index 0000000..6be7829 --- /dev/null +++ b/docs/caddy/modules/dns.providers.njalla.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.njalla - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.njalla + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.njalla**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.njalla#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/njalla](https://github.com/caddy-dns/njalla)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/njalla` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.njalla#docs "Direct link") +--------------------------------------------------------------------------------------------- + +dns.providers.njalla lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.njalla#api_token)api_token +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.openstack-designate.md b/docs/caddy/modules/dns.providers.openstack-designate.md new file mode 100644 index 0000000..bb21f02 --- /dev/null +++ b/docs/caddy/modules/dns.providers.openstack-designate.md @@ -0,0 +1,155 @@ +Title: Module dns.providers.openstack-designate - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.openstack-designate + +Markdown Content: +Module dns.providers.openstack-designate - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.openstack-designate +======================================== + + There is more than one module named **Module dns.providers.openstack-designate**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/openstack-designate + +`{▾ "auth_open_stack": {▾ "region_name": "", "tenant_id": "", "identity_api_version": "", "password": "", "auth_url": "", "username": "", "tenant_name": "", "endpoint_type": "" }}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/openstack-designate](https://github.com/caddy-dns/openstack-designate)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/openstack-designate` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +dns.providers.openstack-designate wraps the provider implementation as a Caddy module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#auth_open_stack)auth_open_stack +AuthOpenStack contains credentials for OpenStack Designate. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#auth_open_stack/region_name)auth_open_stack/region_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#auth_open_stack/tenant_id)auth_open_stack/tenant_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#auth_open_stack/identity_api_version)auth_open_stack/identity_api_version +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#auth_open_stack/password)auth_open_stack/password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#auth_open_stack/auth_url)auth_open_stack/auth_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#auth_open_stack/username)auth_open_stack/username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#auth_open_stack/tenant_name)auth_open_stack/tenant_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.openstack-designate#auth_open_stack/endpoint_type)auth_open_stack/endpoint_type +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fdns.providers.openstack-designate&r=&sid=GVMGKAKP&qs=%7B%7D&cid=77938411) diff --git a/docs/caddy/modules/dns.providers.ovh.md b/docs/caddy/modules/dns.providers.ovh.md new file mode 100644 index 0000000..0668abf --- /dev/null +++ b/docs/caddy/modules/dns.providers.ovh.md @@ -0,0 +1,50 @@ +Title: Module dns.providers.ovh - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.ovh + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.ovh**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.ovh#docs "Direct link") +------------------------------------------------------------------------------------------ + +`{▾ "endpoint": "", "application_key": "", "application_secret": "", "consumer_key": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/ovh](https://github.com/caddy-dns/ovh)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/ovh` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.ovh#docs "Direct link") +------------------------------------------------------------------------------------------ + +dns.providers.ovh wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.ovh#endpoint)endpoint +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.ovh#application_key)application_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.ovh#application_secret)application_secret +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.ovh#consumer_key)consumer_key +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.porkbun.md b/docs/caddy/modules/dns.providers.porkbun.md new file mode 100644 index 0000000..a4f9bf8 --- /dev/null +++ b/docs/caddy/modules/dns.providers.porkbun.md @@ -0,0 +1,44 @@ +Title: Module dns.providers.porkbun - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.porkbun + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.porkbun**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.porkbun#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "api_key": "", "api_secret_key": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/porkbun](https://github.com/caddy-dns/porkbun)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/porkbun` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.porkbun#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.porkbun lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.porkbun#api_key)api_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.porkbun#api_secret_key)api_secret_key +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.powerdns.md b/docs/caddy/modules/dns.providers.powerdns.md new file mode 100644 index 0000000..937a547 --- /dev/null +++ b/docs/caddy/modules/dns.providers.powerdns.md @@ -0,0 +1,50 @@ +Title: Module dns.providers.powerdns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.powerdns + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.powerdns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.powerdns#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾ "server_url": "", "server_id": "", "api_token": "", "debug": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/powerdns](https://github.com/caddy-dns/powerdns)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/powerdns` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.powerdns#docs "Direct link") +----------------------------------------------------------------------------------------------- + +dns.providers.powerdns wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.powerdns#server_url)server_url +ServerURL is the location of the pdns server. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.powerdns#server_id)server_id +ServerID is the id of the server. localhost will be used if this is omitted. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.powerdns#api_token)api_token +APIToken is the auth token. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.powerdns#debug)debug +Debug - can set this to stdout or stderr to dump debugging information about the API interaction with powerdns. This will dump your auth token in plain text so be careful. diff --git a/docs/caddy/modules/dns.providers.rfc2136.md b/docs/caddy/modules/dns.providers.rfc2136.md new file mode 100644 index 0000000..bbc8d5e --- /dev/null +++ b/docs/caddy/modules/dns.providers.rfc2136.md @@ -0,0 +1,48 @@ +Title: Module dns.providers.rfc2136 - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.rfc2136 + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.rfc2136**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.rfc2136#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "key_name": "", "key_alg": "", "key": "", "server": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/rfc2136](https://github.com/caddy-dns/rfc2136)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/rfc2136` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.rfc2136#docs "Direct link") +---------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.rfc2136#key_name)key_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.rfc2136#key_alg)key_alg +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.rfc2136#key)key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.rfc2136#server)server +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.route53.md b/docs/caddy/modules/dns.providers.route53.md new file mode 100644 index 0000000..ddce09a --- /dev/null +++ b/docs/caddy/modules/dns.providers.route53.md @@ -0,0 +1,190 @@ +Title: Module dns.providers.route53 - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.route53 + +Markdown Content: +Module dns.providers.route53 - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module dns.providers.route53 +============================ + + There is more than one module named **dns.providers.route53**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddy-dns/route53 + +`{▾ "max_retries": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/route53](https://github.com/caddy-dns/route53)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/route53` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.route53 wraps the provider implementation as a Caddy module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#max_retries)max_retries +There are no docs for this property. + +▸github.com/ryantiger658/route53 + +`{▾ "region": "", "aws_profile": "", "profile": "", "access_key_id": "", "secret_access_key": "", "token": "", "session_token": "", "max_retries": 0, "max_wait_dur": 0, "wait_for_propagation": false, "hosted_zone_id": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ryantiger658/route53](https://github.com/ryantiger658/route53)** + +**Custom builds:**`xcaddy build --with github.com/ryantiger658/route53` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.route53 wraps the provider implementation as a Caddy module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#region)region +Region is the AWS Region to use. If not set, it will use AWS_REGION environment variable. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#aws_profile)aws_profile +AWSProfile is the AWS Profile to use. If not set, it will use AWS_PROFILE environment variable. + +Deprecated: Use Profile instead + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#profile)profile +AWSProfile is the AWS Profile to use. If not set, it will use AWS_PROFILE environment variable. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#access_key_id)access_key_id +AccessKeyId is the AWS Access Key ID to use. If not set, it will use AWS_ACCESS_KEY_ID + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#secret_access_key)secret_access_key +SecretAccessKey is the AWS Secret Access Key to use. If not set, it will use AWS_SECRET_ACCESS_KEY environment variable. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#token)token +Token is the AWS Session Token to use. If not set, it will use AWS_SESSION_TOKEN environment variable. + +Deprecated: Use SessionToken instead. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#session_token)session_token +SessionToken is the AWS Session Token to use. If not set, it will use AWS_SESSION_TOKEN environment variable. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#max_retries)max_retries +MaxRetries is the maximum number of retries to make when a request fails. If not set, it will use 5 retries. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#max_wait_dur)max_wait_dur +MaxWaitDur is the maximum amount of time to wait for a record to be propagated. If not set, it will use 1 minutes. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#wait_for_propagation)wait_for_propagation +WaitForPropagation if set to true, it will wait for the record to be propagated before returning. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.route53#hosted_zone_id)hosted_zone_id +HostedZoneID is the ID of the hosted zone to use. If not set, it will be discovered from the zone name. + +This option should contain only the ID; the "/hostedzone/" prefix will be added automatically. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fdns.providers.route53&r=&sid=GVMGKAKP&qs=%7B%7D&cid=52057550) diff --git a/docs/caddy/modules/dns.providers.scaleway.md b/docs/caddy/modules/dns.providers.scaleway.md new file mode 100644 index 0000000..0562de8 --- /dev/null +++ b/docs/caddy/modules/dns.providers.scaleway.md @@ -0,0 +1,44 @@ +Title: Module dns.providers.scaleway - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.scaleway + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.scaleway**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.scaleway#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾ "secret_key": "", "organization_id": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/scaleway](https://github.com/caddy-dns/scaleway)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/scaleway` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.scaleway#docs "Direct link") +----------------------------------------------------------------------------------------------- + +dns.providers.scaleway lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.scaleway#secret_key)secret_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.scaleway#organization_id)organization_id +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.selectel.md b/docs/caddy/modules/dns.providers.selectel.md new file mode 100644 index 0000000..d39013e --- /dev/null +++ b/docs/caddy/modules/dns.providers.selectel.md @@ -0,0 +1,103 @@ +Title: Module dns.providers.selectel - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.selectel + +Markdown Content: +Module dns.providers.selectel - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/dns.providers.spaceship.md b/docs/caddy/modules/dns.providers.spaceship.md new file mode 100644 index 0000000..bb0f464 --- /dev/null +++ b/docs/caddy/modules/dns.providers.spaceship.md @@ -0,0 +1,50 @@ +Title: Module dns.providers.spaceship - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.spaceship + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.spaceship**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.spaceship#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "api_key": "", "api_secret": "", "base_url": "", "page_size": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/spaceship](https://github.com/caddy-dns/spaceship)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/spaceship` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.spaceship#docs "Direct link") +------------------------------------------------------------------------------------------------ + +dns.providers.spaceship lets Caddy read and manipulate DNS records hosted by the Spaceship DNS provider. It adapts the libdns spaceship provider for use in Caddy. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.spaceship#api_key)api_key +APIKey is the Spaceship API key for authentication + +[🔗](https://caddyserver.com/docs/modules/dns.providers.spaceship#api_secret)api_secret +APISecret is the Spaceship API secret for authentication + +[🔗](https://caddyserver.com/docs/modules/dns.providers.spaceship#base_url)base_url +BaseURL is the base URL for the Spaceship API (defaults to [https://spaceship.dev/api](https://spaceship.dev/api)) + +[🔗](https://caddyserver.com/docs/modules/dns.providers.spaceship#page_size)page_size +PageSize controls pagination size used by GetRecords (defaults to 100) diff --git a/docs/caddy/modules/dns.providers.tencentcloud.md b/docs/caddy/modules/dns.providers.tencentcloud.md new file mode 100644 index 0000000..5ee6ee3 --- /dev/null +++ b/docs/caddy/modules/dns.providers.tencentcloud.md @@ -0,0 +1,38 @@ +Title: Module dns.providers.tencentcloud - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.tencentcloud + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.tencentcloud**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.tencentcloud#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/tencentcloud](https://github.com/caddy-dns/tencentcloud)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/tencentcloud` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.tencentcloud#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +dns.providers.tencentcloud wraps the provider implementation as a Caddy module. diff --git a/docs/caddy/modules/dns.providers.transip.md b/docs/caddy/modules/dns.providers.transip.md new file mode 100644 index 0000000..ab13f31 --- /dev/null +++ b/docs/caddy/modules/dns.providers.transip.md @@ -0,0 +1,44 @@ +Title: Module dns.providers.transip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.transip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.transip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.transip#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "account_name": "", "private_key_path": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/transip](https://github.com/caddy-dns/transip)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/transip` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.transip#docs "Direct link") +---------------------------------------------------------------------------------------------- + +dns.providers.transip lets Caddy read and manipulate DNS records hosted by this DNS provider. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.transip#account_name)account_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.transip#private_key_path)private_key_path +There are no docs for this property. diff --git a/docs/caddy/modules/dns.providers.vercel.md b/docs/caddy/modules/dns.providers.vercel.md new file mode 100644 index 0000000..250c1c3 --- /dev/null +++ b/docs/caddy/modules/dns.providers.vercel.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.vercel - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.vercel + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.vercel**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.vercel#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "auth_api_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/vercel](https://github.com/caddy-dns/vercel)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/vercel` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.vercel#docs "Direct link") +--------------------------------------------------------------------------------------------- + +dns.providers.vercel wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.vercel#auth_api_token)auth_api_token +AuthAPIToken is the Vercel Authentication Token - see [https://vercel.com/docs/api#api-basics/authentication](https://vercel.com/docs/api#api-basics/authentication) diff --git a/docs/caddy/modules/dns.providers.vultr.md b/docs/caddy/modules/dns.providers.vultr.md new file mode 100644 index 0000000..f315803 --- /dev/null +++ b/docs/caddy/modules/dns.providers.vultr.md @@ -0,0 +1,41 @@ +Title: Module dns.providers.vultr - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns.providers.vultr + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dns.providers.vultr**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.vultr#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾ "auth_token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddy-dns/vultr](https://github.com/caddy-dns/vultr)** + +**Custom builds:**`xcaddy build --with github.com/caddy-dns/vultr` + +Description[🔗](https://caddyserver.com/docs/modules/dns.providers.vultr#docs "Direct link") +-------------------------------------------------------------------------------------------- + +dns.providers.vultr wraps the provider implementation as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/dns.providers.vultr#auth_token)auth_token +auth_token is the Vultr API token see [https://my.vultr.com/settings/#settingsapi](https://my.vultr.com/settings/#settingsapi) diff --git a/docs/caddy/modules/dns01proxy.md b/docs/caddy/modules/dns01proxy.md new file mode 100644 index 0000000..4ec95aa --- /dev/null +++ b/docs/caddy/modules/dns01proxy.md @@ -0,0 +1,122 @@ +Title: Module dns01proxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dns01proxy + +Markdown Content: +A proxy server for ACME DNS-01 challenges. Designed to work with acme.sh's `acmeproxy`, lego's `httpreq`, and Caddy's `acmeproxy` DNS providers. + +This is a Caddy application module. + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#dns)dns +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#dns/provider)dns/provider +The DNS provider for publishing DNS-01 responses. + +Fulfilled by modules in namespace: **dns.providers** + +* [acmedns](https://caddyserver.com/docs/modules/dns.providers.acmedns)Non-standard +* [acmeproxy](https://caddyserver.com/docs/modules/dns.providers.acmeproxy)Non-standard +* [alidns](https://caddyserver.com/docs/modules/dns.providers.alidns)Non-standard +* [azure](https://caddyserver.com/docs/modules/dns.providers.azure)Non-standard +* [bunny](https://caddyserver.com/docs/modules/dns.providers.bunny)Non-standard +* [civo](https://caddyserver.com/docs/modules/dns.providers.civo)Non-standard +* [cloudflare](https://caddyserver.com/docs/modules/dns.providers.cloudflare)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [ddnss](https://caddyserver.com/docs/modules/dns.providers.ddnss)Non-standard +* [desec](https://caddyserver.com/docs/modules/dns.providers.desec)Non-standard +* [digitalocean](https://caddyserver.com/docs/modules/dns.providers.digitalocean)Non-standard +* [dinahosting](https://caddyserver.com/docs/modules/dns.providers.dinahosting)Non-standard +* [directadmin](https://caddyserver.com/docs/modules/dns.providers.directadmin)Non-standard +* [dnsexit](https://caddyserver.com/docs/modules/dns.providers.dnsexit)Non-standard +* [dnsimple](https://caddyserver.com/docs/modules/dns.providers.dnsimple)Non-standard +* [dnsmadeeasy](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy)Non-standard +* [dnspod](https://caddyserver.com/docs/modules/dns.providers.dnspod)Non-standard +* [domainnameshop](https://caddyserver.com/docs/modules/dns.providers.domainnameshop)Non-standard +* [dreamhost](https://caddyserver.com/docs/modules/dns.providers.dreamhost)Non-standard +* [duckdns](https://caddyserver.com/docs/modules/dns.providers.duckdns)Non-standard +* [dynu](https://caddyserver.com/docs/modules/dns.providers.dynu)Non-standard +* [easydns](https://caddyserver.com/docs/modules/dns.providers.easydns)Non-standard +* [edgeone](https://caddyserver.com/docs/modules/dns.providers.edgeone)Non-standard +* [gandi](https://caddyserver.com/docs/modules/dns.providers.gandi)Non-standard +* [glesys](https://caddyserver.com/docs/modules/dns.providers.glesys)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [google_domains](https://caddyserver.com/docs/modules/dns.providers.google_domains)Non-standard +* [googleclouddns](https://caddyserver.com/docs/modules/dns.providers.googleclouddns)Non-standard +* [he](https://caddyserver.com/docs/modules/dns.providers.he)Non-standard +* [hetzner](https://caddyserver.com/docs/modules/dns.providers.hetzner)Non-standard +* [hexonet](https://caddyserver.com/docs/modules/dns.providers.hexonet)Non-standard +* [hosttech](https://caddyserver.com/docs/modules/dns.providers.hosttech)Non-standard +* [huaweicloud](https://caddyserver.com/docs/modules/dns.providers.huaweicloud)Non-standard +* [immosquare](https://caddyserver.com/docs/modules/dns.providers.immosquare)Non-standard +* [infomaniak](https://caddyserver.com/docs/modules/dns.providers.infomaniak)Non-standard +* [inwx](https://caddyserver.com/docs/modules/dns.providers.inwx)Non-standard +* [ionos](https://caddyserver.com/docs/modules/dns.providers.ionos)Non-standard +* [katapult](https://caddyserver.com/docs/modules/dns.providers.katapult)Non-standard +* [leaseweb](https://caddyserver.com/docs/modules/dns.providers.leaseweb)Non-standard +* [lego_deprecated](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [loopia](https://caddyserver.com/docs/modules/dns.providers.loopia)Non-standard +* [mailinabox](https://caddyserver.com/docs/modules/dns.providers.mailinabox)Non-standard +* [metaname](https://caddyserver.com/docs/modules/dns.providers.metaname)Non-standard +* [namecheap](https://caddyserver.com/docs/modules/dns.providers.namecheap)Non-standard +* [namedotcom](https://caddyserver.com/docs/modules/dns.providers.namedotcom)Non-standard +* [namesilo](https://caddyserver.com/docs/modules/dns.providers.namesilo)Non-standard +* [nanelo](https://caddyserver.com/docs/modules/dns.providers.nanelo)Non-standard +* [neoserv](https://caddyserver.com/docs/modules/dns.providers.neoserv)Non-standard +* [netcup](https://caddyserver.com/docs/modules/dns.providers.netcup)Non-standard +* [netlify](https://caddyserver.com/docs/modules/dns.providers.netlify)Non-standard +* [njalla](https://caddyserver.com/docs/modules/dns.providers.njalla)Non-standard +* [openstack-designate](https://caddyserver.com/docs/modules/dns.providers.openstack-designate)Non-standard +* [ovh](https://caddyserver.com/docs/modules/dns.providers.ovh)Non-standard +* [porkbun](https://caddyserver.com/docs/modules/dns.providers.porkbun)Non-standard +* [powerdns](https://caddyserver.com/docs/modules/dns.providers.powerdns)Non-standard +* [rfc2136](https://caddyserver.com/docs/modules/dns.providers.rfc2136)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [scaleway](https://caddyserver.com/docs/modules/dns.providers.scaleway)Non-standard +* [selectel](https://caddyserver.com/docs/modules/dns.providers.selectel)Non-standard +* [spaceship](https://caddyserver.com/docs/modules/dns.providers.spaceship)Non-standard +* [tencentcloud](https://caddyserver.com/docs/modules/dns.providers.tencentcloud)Non-standard +* [transip](https://caddyserver.com/docs/modules/dns.providers.transip)Non-standard +* [vercel](https://caddyserver.com/docs/modules/dns.providers.vercel)Non-standard +* [vultr](https://caddyserver.com/docs/modules/dns.providers.vultr)Non-standard + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#dns/ttl)dns/ttl +The TTL to use in DNS TXT records when answering challenges. Optional. Not usually needed. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#dns/resolvers)dns/resolvers +Custom DNS resolvers to prefer over system or built-in defaults. Set this to a public resolver if you are using split-horizon DNS. + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#accounts)accounts +Configures HTTP basic authentication and the domains for which each user can get TLS certificates. + +(During provisioning, this is used to fill in [Authentication] and [ClientRegistry].) + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#accounts/user_id)accounts/user_id +Identifies the client to which this policy applies. + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#accounts/allow_domains)accounts/allow_domains +Determines the domains for which the user can get TLS certificates. This largely follows Smallstep's domain name rules: [https://smallstep.com/docs/step-ca/policies/#domain-names](https://smallstep.com/docs/step-ca/policies/#domain-names) + +Due to a limitation in ACME and DNS-01, allowing a domain alsow allows wildcard certificates for that domain. + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#accounts/deny_domains)accounts/deny_domains +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#accounts/password)accounts/password +The user's password, hashed using `caddy hash-password`. Optional. If omitted, then clients must be authenticated by an `http.handlers.authentication` instance earlier in the handler chain. + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#hostnames)hostnames +The server's hostnames. Used for obtaining TLS certificates. + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#listen)listen +The sockets on which to listen. For example, "127.0.0.1:9095" or ":443". + +[🔗](https://caddyserver.com/docs/modules/dns01proxy#trusted_proxies)trusted_proxies +Configures the set of trusted proxies, for accurate logging of client IP addresses. diff --git a/docs/caddy/modules/dynamic_dns.ip_sources.command.md b/docs/caddy/modules/dynamic_dns.ip_sources.command.md new file mode 100644 index 0000000..404abed --- /dev/null +++ b/docs/caddy/modules/dynamic_dns.ip_sources.command.md @@ -0,0 +1,103 @@ +Title: Modules - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.command + +Markdown Content: +Modules - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/dynamic_dns.ip_sources.simple_http.md b/docs/caddy/modules/dynamic_dns.ip_sources.simple_http.md new file mode 100644 index 0000000..02c2bb3 --- /dev/null +++ b/docs/caddy/modules/dynamic_dns.ip_sources.simple_http.md @@ -0,0 +1,50 @@ +Title: Module dynamic_dns.ip_sources.simple_http - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.simple_http + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dynamic_dns.ip_sources.simple_http**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.simple_http#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +`{▾ "endpoints": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-dynamicdns](https://github.com/mholt/caddy-dynamicdns)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-dynamicdns` + +Description[🔗](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.simple_http#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +dynamic_dns.ip_sources.simple_http is an IP source that looks up the public IP addresses by making HTTP(S) requests to the specified endpoints; it will try each endpoint with IPv4 and IPv6 until at least one returns a valid value. It is OK if an endpoint doesn't support both IP versions; returning a single valid IP address is sufficient. + +The endpoints must return HTTP status 200 and the response body must contain only the IP address in plain text. + +[🔗](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.simple_http#endpoints)endpoints +The list of endpoints to query. If empty, a default list will be used: + +* [https://api64.ipify.org](https://api64.ipify.org/) +* [https://myip.addr.space](https://myip.addr.space/) +* [https://ifconfig.me](https://ifconfig.me/) +* [https://icanhazip.com](https://icanhazip.com/) +* [https://ident.me](https://ident.me/) +* [https://ipecho.net/plain](https://ipecho.net/plain) diff --git a/docs/caddy/modules/dynamic_dns.ip_sources.upnp.md b/docs/caddy/modules/dynamic_dns.ip_sources.upnp.md new file mode 100644 index 0000000..afd5a53 --- /dev/null +++ b/docs/caddy/modules/dynamic_dns.ip_sources.upnp.md @@ -0,0 +1,38 @@ +Title: Module dynamic_dns.ip_sources.upnp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.upnp + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module dynamic_dns.ip_sources.upnp**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.upnp#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-dynamicdns](https://github.com/mholt/caddy-dynamicdns)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-dynamicdns` + +Description[🔗](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.upnp#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +dynamic_dns.ip_sources.upnp gets the IP address from UPnP device. diff --git a/docs/caddy/modules/dynamic_dns.md b/docs/caddy/modules/dynamic_dns.md new file mode 100644 index 0000000..3b2d802 --- /dev/null +++ b/docs/caddy/modules/dynamic_dns.md @@ -0,0 +1,119 @@ +Title: Module dynamic_dns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/dynamic_dns + +Markdown Content: +dynamic_dns is a Caddy app that keeps your DNS records updated with the public IP address of your instance. It updates A and AAAA records. + +[🔗](https://caddyserver.com/docs/modules/dynamic_dns#ip_sources)ip_sources +The sources from which to get the server's public IP address. Multiple sources can be specified for redundancy. Default: simple_http + +Fulfilled by modules in namespace: **dynamic_dns.ip_sources** + +* [command](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.command)Non-standard +* [simple_http](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.simple_http)Non-standard +* [upnp](https://caddyserver.com/docs/modules/dynamic_dns.ip_sources.upnp)Non-standard + +[🔗](https://caddyserver.com/docs/modules/dynamic_dns#dns_provider)dns_provider +The configuration for the DNS provider with which the DNS records will be updated. + +Fulfilled by modules in namespace: **dns.providers** + +* [acmedns](https://caddyserver.com/docs/modules/dns.providers.acmedns)Non-standard +* [acmeproxy](https://caddyserver.com/docs/modules/dns.providers.acmeproxy)Non-standard +* [alidns](https://caddyserver.com/docs/modules/dns.providers.alidns)Non-standard +* [azure](https://caddyserver.com/docs/modules/dns.providers.azure)Non-standard +* [bunny](https://caddyserver.com/docs/modules/dns.providers.bunny)Non-standard +* [civo](https://caddyserver.com/docs/modules/dns.providers.civo)Non-standard +* [cloudflare](https://caddyserver.com/docs/modules/dns.providers.cloudflare)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [ddnss](https://caddyserver.com/docs/modules/dns.providers.ddnss)Non-standard +* [desec](https://caddyserver.com/docs/modules/dns.providers.desec)Non-standard +* [digitalocean](https://caddyserver.com/docs/modules/dns.providers.digitalocean)Non-standard +* [dinahosting](https://caddyserver.com/docs/modules/dns.providers.dinahosting)Non-standard +* [directadmin](https://caddyserver.com/docs/modules/dns.providers.directadmin)Non-standard +* [dnsexit](https://caddyserver.com/docs/modules/dns.providers.dnsexit)Non-standard +* [dnsimple](https://caddyserver.com/docs/modules/dns.providers.dnsimple)Non-standard +* [dnsmadeeasy](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy)Non-standard +* [dnspod](https://caddyserver.com/docs/modules/dns.providers.dnspod)Non-standard +* [domainnameshop](https://caddyserver.com/docs/modules/dns.providers.domainnameshop)Non-standard +* [dreamhost](https://caddyserver.com/docs/modules/dns.providers.dreamhost)Non-standard +* [duckdns](https://caddyserver.com/docs/modules/dns.providers.duckdns)Non-standard +* [dynu](https://caddyserver.com/docs/modules/dns.providers.dynu)Non-standard +* [easydns](https://caddyserver.com/docs/modules/dns.providers.easydns)Non-standard +* [edgeone](https://caddyserver.com/docs/modules/dns.providers.edgeone)Non-standard +* [gandi](https://caddyserver.com/docs/modules/dns.providers.gandi)Non-standard +* [glesys](https://caddyserver.com/docs/modules/dns.providers.glesys)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [google_domains](https://caddyserver.com/docs/modules/dns.providers.google_domains)Non-standard +* [googleclouddns](https://caddyserver.com/docs/modules/dns.providers.googleclouddns)Non-standard +* [he](https://caddyserver.com/docs/modules/dns.providers.he)Non-standard +* [hetzner](https://caddyserver.com/docs/modules/dns.providers.hetzner)Non-standard +* [hexonet](https://caddyserver.com/docs/modules/dns.providers.hexonet)Non-standard +* [hosttech](https://caddyserver.com/docs/modules/dns.providers.hosttech)Non-standard +* [huaweicloud](https://caddyserver.com/docs/modules/dns.providers.huaweicloud)Non-standard +* [immosquare](https://caddyserver.com/docs/modules/dns.providers.immosquare)Non-standard +* [infomaniak](https://caddyserver.com/docs/modules/dns.providers.infomaniak)Non-standard +* [inwx](https://caddyserver.com/docs/modules/dns.providers.inwx)Non-standard +* [ionos](https://caddyserver.com/docs/modules/dns.providers.ionos)Non-standard +* [katapult](https://caddyserver.com/docs/modules/dns.providers.katapult)Non-standard +* [leaseweb](https://caddyserver.com/docs/modules/dns.providers.leaseweb)Non-standard +* [lego_deprecated](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [loopia](https://caddyserver.com/docs/modules/dns.providers.loopia)Non-standard +* [mailinabox](https://caddyserver.com/docs/modules/dns.providers.mailinabox)Non-standard +* [metaname](https://caddyserver.com/docs/modules/dns.providers.metaname)Non-standard +* [namecheap](https://caddyserver.com/docs/modules/dns.providers.namecheap)Non-standard +* [namedotcom](https://caddyserver.com/docs/modules/dns.providers.namedotcom)Non-standard +* [namesilo](https://caddyserver.com/docs/modules/dns.providers.namesilo)Non-standard +* [nanelo](https://caddyserver.com/docs/modules/dns.providers.nanelo)Non-standard +* [neoserv](https://caddyserver.com/docs/modules/dns.providers.neoserv)Non-standard +* [netcup](https://caddyserver.com/docs/modules/dns.providers.netcup)Non-standard +* [netlify](https://caddyserver.com/docs/modules/dns.providers.netlify)Non-standard +* [njalla](https://caddyserver.com/docs/modules/dns.providers.njalla)Non-standard +* [openstack-designate](https://caddyserver.com/docs/modules/dns.providers.openstack-designate)Non-standard +* [ovh](https://caddyserver.com/docs/modules/dns.providers.ovh)Non-standard +* [porkbun](https://caddyserver.com/docs/modules/dns.providers.porkbun)Non-standard +* [powerdns](https://caddyserver.com/docs/modules/dns.providers.powerdns)Non-standard +* [rfc2136](https://caddyserver.com/docs/modules/dns.providers.rfc2136)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [scaleway](https://caddyserver.com/docs/modules/dns.providers.scaleway)Non-standard +* [selectel](https://caddyserver.com/docs/modules/dns.providers.selectel)Non-standard +* [spaceship](https://caddyserver.com/docs/modules/dns.providers.spaceship)Non-standard +* [tencentcloud](https://caddyserver.com/docs/modules/dns.providers.tencentcloud)Non-standard +* [transip](https://caddyserver.com/docs/modules/dns.providers.transip)Non-standard +* [vercel](https://caddyserver.com/docs/modules/dns.providers.vercel)Non-standard +* [vultr](https://caddyserver.com/docs/modules/dns.providers.vultr)Non-standard + +[🔗](https://caddyserver.com/docs/modules/dynamic_dns#domains)domains +The record names, keyed by DNS zone, for which to update the A/AAAA records. Record names are relative to the zone. The zone is usually your registered domain name. To refer to the zone itself, use the record name of "@". + +For example, assuming your zone is example.com, and you want to update A/AAAA records for "example.com" and "[www.example.com"](http://www.example.com"/) so that they resolve to this Caddy instance, configure like so: `"example.com": ["@", "www"]` + +[🔗](https://caddyserver.com/docs/modules/dynamic_dns#dynamic_domains)dynamic_domains +If enabled, the "http" app's config will be scanned to assemble the list of domains for which to enable dynamic DNS updates. + +[🔗](https://caddyserver.com/docs/modules/dynamic_dns#versions)versions +The IP versions to enable. By default, both "ipv4" and "ipv6" will be enabled. To disable IPv6, specify {"ipv6": false}. + +IPVersions is the IP versions to enable for dynamic DNS. Versions are enabled if true or nil, set to false to disable. + +[🔗](https://caddyserver.com/docs/modules/dynamic_dns#versions/ipv4)versions/ipv4 +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dynamic_dns#versions/ipv6)versions/ipv6 +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/dynamic_dns#check_interval)check_interval +How frequently to check the public IP address. Default: 30m + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/dynamic_dns#ttl)ttl +The TTL to set on DNS records. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/modules/events.handlers.exec.md b/docs/caddy/modules/events.handlers.exec.md new file mode 100644 index 0000000..9b5859e --- /dev/null +++ b/docs/caddy/modules/events.handlers.exec.md @@ -0,0 +1,146 @@ +Title: Module events.handlers.exec - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/events.handlers.exec + +Markdown Content: +Module events.handlers.exec - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module events.handlers.exec +=========================== + + There is more than one module named **Module events.handlers.exec**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/events.handlers.exec#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mholt/caddy-events-exec + +`{▾ "command": "", "args": [""], "dir": "", "timeout": 0, "foreground": false, "abort_codes": [0]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-events-exec](https://github.com/mholt/caddy-events-exec)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-events-exec` + +Description[🔗](https://caddyserver.com/docs/modules/events.handlers.exec#docs "Direct link") +--------------------------------------------------------------------------------------------- + +events.handlers.exec implements an event handler that runs a command/program. By default, commands are run in the background so as to not block the Caddy goroutine. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/events.handlers.exec#command)command +The command to execute. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.exec#args)args +Arguments to the command. Placeholders are expanded in arguments, so use caution to not introduce any security vulnerabilities with the command. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.exec#dir)dir +The directory in which to run the command. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.exec#timeout)timeout +How long to wait for the command to terminate before forcefully closing it. Default: 30s + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.exec#foreground)foreground +If true, runs the command in the foreground, which will block and wait for output. Only do this if you know the command will finish quickly! Required if you want to abort the event. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.exec#abort_codes)abort_codes +If the command exits with any of these codes, the event will be signaled to abort with the error. Must be running in the foreground to apply. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/events.handlers.nats.md b/docs/caddy/modules/events.handlers.nats.md new file mode 100644 index 0000000..cdda1ba --- /dev/null +++ b/docs/caddy/modules/events.handlers.nats.md @@ -0,0 +1,56 @@ +Title: Module events.handlers.nats - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/events.handlers.nats + +Markdown Content: +There is more than one module named **Module events.handlers.nats**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/events.handlers.nats#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +`{▾ "must_publish": "", "server_url": "", "subject": "", "auth_user": "", "auth_password": "", "auth_token": "", "auth_nkey": "", "auth_creds": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kmpm/caddy-events-nats](https://github.com/kmpm/caddy-events-nats)** + +**Custom builds:**`xcaddy build --with github.com/kmpm/caddy-events-nats` + +Description[🔗](https://caddyserver.com/docs/modules/events.handlers.nats#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/events.handlers.nats#must_publish)must_publish +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.nats#server_url)server_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.nats#subject)subject +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.nats#auth_user)auth_user +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.nats#auth_password)auth_password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.nats#auth_token)auth_token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.nats#auth_nkey)auth_nkey +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.nats#auth_creds)auth_creds +There are no docs for this property. diff --git a/docs/caddy/modules/events.handlers.store_cert.md b/docs/caddy/modules/events.handlers.store_cert.md new file mode 100644 index 0000000..da7f7bd --- /dev/null +++ b/docs/caddy/modules/events.handlers.store_cert.md @@ -0,0 +1,150 @@ +Title: Module events.handlers.store_cert - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/events.handlers.store_cert + +Markdown Content: +Module events.handlers.store_cert - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module events.handlers.store_cert +================================= + + There is more than one module named **Module events.handlers.store_cert**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/events.handlers.store_cert#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/Lenart12/caddy-events-store_cert + +`{▾ "bucket_url": "", "include_cert": [""], "exclude_cert": [""], "continue_excluded": false, "continue_on_errors": false, "after": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/Lenart12/caddy-events-store_cert](https://github.com/Lenart12/caddy-events-store_cert)** + +**Custom builds:**`xcaddy build --with github.com/Lenart12/caddy-events-store_cert` + +Description[🔗](https://caddyserver.com/docs/modules/events.handlers.store_cert#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +events.handlers.store_cert implements an event handler that stores the cert to a bucket. By default, the bucket is assumed to be a local directory. The handler can be configured to include or exclude specific certificates. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/events.handlers.store_cert#bucket_url)bucket_url +The URL of the bucket where the certificates are stored. See [https://gocloud.dev/howto/blob/#services](https://gocloud.dev/howto/blob/#services) for more information. If no schema is specified, file:// is assumed. Example: "s3://my-bucket-name", "file:///path/to/directory" (same as "/path/to/directory") + +[🔗](https://caddyserver.com/docs/modules/events.handlers.store_cert#include_cert)include_cert +Certificates to include from the store. If empty, all certificates are included. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.store_cert#exclude_cert)exclude_cert +Certificates to exclude from the store. If empty, no certificates are excluded. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.store_cert#continue_excluded)continue_excluded +If true, the handler will continue to the "after" handler even if the certificate is excluded. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.store_cert#continue_on_errors)continue_on_errors +If true, the handler will continue to the "after" handler even if an error during storage occurs. + +[🔗](https://caddyserver.com/docs/modules/events.handlers.store_cert#after)after +The handler to execute after the certificate is stored. + +Fulfilled by modules in namespace: **events.handlers** + +* [exec](https://caddyserver.com/docs/modules/events.handlers.exec)Non-standard +* [nats](https://caddyserver.com/docs/modules/events.handlers.nats)Non-standard +* [store_cert](https://caddyserver.com/docs/modules/events.handlers.store_cert)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/events.md b/docs/caddy/modules/events.md new file mode 100644 index 0000000..1264f51 --- /dev/null +++ b/docs/caddy/modules/events.md @@ -0,0 +1,52 @@ +Title: Module events - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/events + +Markdown Content: +events implements a global eventing system within Caddy. Modules can emit and subscribe to events, providing hooks into deep parts of the code base that aren't otherwise accessible. Events provide information about what and when things are happening, and this facility allows handlers to take action when events occur, add information to the event's metadata, and even control program flow in some cases. + +Events are propagated in a DOM-like fashion. An event emitted from module `a.b.c` (the "origin") will first invoke handlers listening to `a.b.c`, then `a.b`, then `a`, then those listening regardless of origin. If a handler returns the special error Aborted, then propagation immediately stops and the event is marked as aborted. Emitters may optionally choose to adjust program flow based on an abort. + +Modules can subscribe to events by origin and/or name. A handler is invoked only if it is subscribed to the event by name and origin. Subscriptions should be registered during the provisioning phase, before apps are started. + +Event handlers are fired synchronously as part of the regular flow of the program. This allows event handlers to control the flow of the program if the origin permits it and also allows handlers to convey new information back into the origin module before it continues. In essence, event handlers are similar to HTTP middleware handlers. + +Event bindings/subscribers are unordered; i.e. event handlers are invoked in an arbitrary order. Event handlers should not rely on the logic of other handlers to succeed. + +The entirety of this app module is EXPERIMENTAL and subject to change. Pay attention to release notes. + +[🔗](https://caddyserver.com/docs/modules/events#subscriptions)subscriptions +Subscriptions bind handlers to one or more events either globally or scoped to specific modules or module namespaces. + +Subscription represents binding of one or more handlers to one or more events. + +[🔗](https://caddyserver.com/docs/modules/events#subscriptions/events)subscriptions/events +The name(s) of the event(s) to bind to. Default: all events. + +[🔗](https://caddyserver.com/docs/modules/events#subscriptions/modules)subscriptions/modules +The ID or namespace of the module(s) from which events originate to listen to for events. Default: all modules. + +Events propagate up, so events emitted by module "a.b.c" will also trigger the event for "a.b" and "a". Thus, to receive all events from "a.b.c" and "a.b.d", for example, one can subscribe to either "a.b" or all of "a" entirely. + +ModuleID is a string that uniquely identifies a Caddy module. A module ID is lightly structured. It consists of dot-separated labels which form a simple hierarchy from left to right. The last label is the module name, and the labels before that constitute the namespace (or scope). + +Thus, a module ID has the form: . + +An ID with no dot has the empty namespace, which is appropriate for app modules (these are "top-level" modules that Caddy core loads and runs). + +Module IDs should be lowercase and use underscores (_) instead of spaces. + +Examples of valid IDs: + +* http +* http.handlers.file_server +* caddy.logging.encoders.json + +[🔗](https://caddyserver.com/docs/modules/events#subscriptions/handlers)subscriptions/handlers +The event handler modules. These implement the actual behavior to invoke when an event occurs. At least one handler is required. + +Fulfilled by modules in namespace: **events.handlers** + +* [exec](https://caddyserver.com/docs/modules/events.handlers.exec)Non-standard +* [nats](https://caddyserver.com/docs/modules/events.handlers.nats)Non-standard +* [store_cert](https://caddyserver.com/docs/modules/events.handlers.store_cert)Non-standard diff --git a/docs/caddy/modules/exec.md b/docs/caddy/modules/exec.md new file mode 100644 index 0000000..124235f --- /dev/null +++ b/docs/caddy/modules/exec.md @@ -0,0 +1,65 @@ +Title: Module exec - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/exec + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module exec**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/exec#docs "Direct link") +----------------------------------------------------------------------------- + +`{▾ "commands": [{▾ "command": "", "args": [""], "directory": "", "foreground": false, "timeout": "", "at": [""], "log": {•••}, "err_log": {•••} }]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/abiosoft/caddy-exec](https://github.com/abiosoft/caddy-exec)** + +**Custom builds:**`xcaddy build --with github.com/abiosoft/caddy-exec` + +Description[🔗](https://caddyserver.com/docs/modules/exec#docs "Direct link") +----------------------------------------------------------------------------- + +exec is top level module that runs shell commands. + +[🔗](https://caddyserver.com/docs/modules/exec#commands)commands +Cmd is the module configuration + +[🔗](https://caddyserver.com/docs/modules/exec#commands/command)commands/command +The command to run. + +[🔗](https://caddyserver.com/docs/modules/exec#commands/args)commands/args +The command args. + +[🔗](https://caddyserver.com/docs/modules/exec#commands/directory)commands/directory +The directory to run the command from. Defaults to current directory. + +[🔗](https://caddyserver.com/docs/modules/exec#commands/foreground)commands/foreground +If the command should run in the foreground. By default, commands run in the background and doesn't affect Caddy. Setting this makes the command run in the foreground. Note that failure of a startup command running in the foreground may prevent Caddy from starting. + +[🔗](https://caddyserver.com/docs/modules/exec#commands/timeout)commands/timeout +Timeout for the command. The command will be killed after timeout has elapsed if it is still running. Defaults to 10s. + +[🔗](https://caddyserver.com/docs/modules/exec#commands/at)commands/at +When the command should run. This can contain either of "startup" or "shutdown". + +[🔗](https://caddyserver.com/docs/modules/exec#commands/log)commands/log +Standard output log. + +[🔗](https://caddyserver.com/docs/modules/exec#commands/err_log)commands/err_log +Standard error log. diff --git a/docs/caddy/modules/frankenphp.md b/docs/caddy/modules/frankenphp.md new file mode 100644 index 0000000..14dfe2b --- /dev/null +++ b/docs/caddy/modules/frankenphp.md @@ -0,0 +1,55 @@ +Title: Module frankenphp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/frankenphp + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module frankenphp**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/frankenphp#docs "Direct link") +----------------------------------------------------------------------------------- + +``` +{▾ "num_threads": 0, "workers": [{▾ "file_name": "", "num": 0, "env": { + "": "" + } }]} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/dunglas/frankenphp](https://github.com/dunglas/frankenphp)** + +**Custom builds:**`xcaddy build --with github.com/dunglas/frankenphp/caddy` + +Description[🔗](https://caddyserver.com/docs/modules/frankenphp#docs "Direct link") +----------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/frankenphp#num_threads)num_threads +NumThreads sets the number of PHP threads to start. Default: 2x the number of available CPUs. + +[🔗](https://caddyserver.com/docs/modules/frankenphp#workers)workers +Workers configures the worker scripts to start. + +[🔗](https://caddyserver.com/docs/modules/frankenphp#workers/file_name)workers/file_name +FileName sets the path to the worker script. + +[🔗](https://caddyserver.com/docs/modules/frankenphp#workers/num)workers/num +Num sets the number of workers to start. + +[🔗](https://caddyserver.com/docs/modules/frankenphp#workers/env)workers/env +Env sets an extra environment variable to the given value. Can be specified more than once for multiple environment variables. diff --git a/docs/caddy/modules/geoip2.md b/docs/caddy/modules/geoip2.md new file mode 100644 index 0000000..cd3c79a --- /dev/null +++ b/docs/caddy/modules/geoip2.md @@ -0,0 +1,147 @@ +Title: Module geoip2 - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/geoip2 + +Markdown Content: +Module geoip2 - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module geoip2 +============= + + There is more than one module named **Module geoip2**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/geoip2#docs "Direct link") +------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/zhangjiayin/caddy-geoip2 + +`{▾ "accountId": 0, "databaseDirectory": "", "licenseKey": "", "lockFile": "", "editionID": "", "updateUrl": "", "updateFrequency": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/zhangjiayin/caddy-geoip2](https://github.com/zhangjiayin/caddy-geoip2)** + +**Custom builds:**`xcaddy build --with github.com/zhangjiayin/caddy-geoip2` + +Description[🔗](https://caddyserver.com/docs/modules/geoip2#docs "Direct link") +------------------------------------------------------------------------------- + +geoip2 is global caddy app with http.handlers.geoip2 it update geoip2 data automatically by the params + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/geoip2#accountId)accountId +Your MaxMind account ID. This was formerly known as UserId. + +[🔗](https://caddyserver.com/docs/modules/geoip2#databaseDirectory)databaseDirectory +The directory to store the database files. Defaults to DATADIR + +[🔗](https://caddyserver.com/docs/modules/geoip2#licenseKey)licenseKey +Your case-sensitive MaxMind license key. + +[🔗](https://caddyserver.com/docs/modules/geoip2#lockFile)lockFile +The lock file to use. This ensures only one geoipupdate process can run at a time. Note: Once created, this lockfile is not removed from the filesystem. + +[🔗](https://caddyserver.com/docs/modules/geoip2#editionID)editionID +Enter the edition IDs of the databases you would like to update. Should be GeoLite2-City + +[🔗](https://caddyserver.com/docs/modules/geoip2#updateUrl)updateUrl +update url to use. Defaults to [https://updates.maxmind.com](https://updates.maxmind.com/) + +[🔗](https://caddyserver.com/docs/modules/geoip2#updateFrequency)updateFrequency +The Frequency in seconds to run update. Default to 0, only update On Start + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.authentication.hashes.bcrypt.md b/docs/caddy/modules/http.authentication.hashes.bcrypt.md new file mode 100644 index 0000000..7105f63 --- /dev/null +++ b/docs/caddy/modules/http.authentication.hashes.bcrypt.md @@ -0,0 +1,126 @@ +Title: Module http.authentication.hashes.bcrypt - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.authentication.hashes.bcrypt + +Markdown Content: +Module http.authentication.hashes.bcrypt - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.authentication.hashes.bcrypt +======================================== + + There is more than one module named **Module http.authentication.hashes.bcrypt**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.authentication.hashes.bcrypt#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.authentication.hashes.bcrypt#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +http.authentication.hashes.bcrypt implements the bcrypt hash. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.authentication.hashes.scrypt.md b/docs/caddy/modules/http.authentication.hashes.scrypt.md new file mode 100644 index 0000000..c865c33 --- /dev/null +++ b/docs/caddy/modules/http.authentication.hashes.scrypt.md @@ -0,0 +1,52 @@ +Title: Module http.authentication.hashes.scrypt - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.authentication.hashes.scrypt**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +`{▾ "N": 0, "r": 0, "p": 0, "key_length": 0}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +http.authentication.hashes.scrypt implements the scrypt KDF as a hash. + +DEPRECATED, please use 'bcrypt' instead. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt#N)N +scrypt's N parameter. If unset or 0, a safe default is used. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt#r)r +scrypt's r parameter. If unset or 0, a safe default is used. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt#p)p +scrypt's p parameter. If unset or 0, a safe default is used. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt#key_length)key_length +scrypt's key length parameter (in bytes). If unset or 0, a safe default is used. diff --git a/docs/caddy/modules/http.authentication.providers.authorize.md b/docs/caddy/modules/http.authentication.providers.authorize.md new file mode 100644 index 0000000..54b8b4b --- /dev/null +++ b/docs/caddy/modules/http.authentication.providers.authorize.md @@ -0,0 +1,139 @@ +Title: Module http.authentication.providers.authorize - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.authentication.providers.authorize + +Markdown Content: +http.authentication.providers.authorize authorizes access to endpoints based on the presense and content of JWT token. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer)authorizer +Authorizer authorizes access to endpoints based on the presense and content of JWT token. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/context)authorizer/context +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/primary)authorizer/primary +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/auth_url_path)authorizer/auth_url_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/disable_auth_redirect)authorizer/disable_auth_redirect +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/disable_auth_redirect_query)authorizer/disable_auth_redirect_query +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/auth_redirect_query_param)authorizer/auth_redirect_query_param +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/auth_redirect_status_code)authorizer/auth_redirect_status_code +The status code for the HTTP redirect for non-authorized users. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/redirect_with_javascript)authorizer/redirect_with_javascript +Enable the redirect with Javascript, as opposed to HTTP redirect. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/bypass_configs)authorizer/bypass_configs +The list of URI prefixes which bypass authorization. + +BypassConfig contains the entry for the authorization bypass. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/bypass_configs/match_type)authorizer/bypass_configs/match_type +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/bypass_configs/uri)authorizer/bypass_configs/uri +There are no docs for this property. + +The list of mappings between header names and field names. + +HeaderInjectionConfig contains the entry for the authorization bypass. + +There are no docs for this property. + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/access_list_rules)authorizer/access_list_rules +RuleConfiguration consists of a list of conditions and and actions + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/access_list_rules/conditions)authorizer/access_list_rules/conditions +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/access_list_rules/action)authorizer/access_list_rules/action +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs)authorizer/crypto_key_configs +CryptoKeyConfig is common token-related configuration settings. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/seq)authorizer/crypto_key_configs/seq +Seq is the order in which a key would be processed. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/id)authorizer/crypto_key_configs/id +ID is the key ID, aka kid. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/usage)authorizer/crypto_key_configs/usage +Usage is the intended key usage. The values are: sign, verify, both, or auto. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/token_name)authorizer/crypto_key_configs/token_name +TokenName is the token name associated with the key. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/source)authorizer/crypto_key_configs/source +Source is either config or env. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/algorithm)authorizer/crypto_key_configs/algorithm +Algorithm is either hmac, rsa, or ecdsa. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/env_var_name)authorizer/crypto_key_configs/env_var_name +EnvVarName is the name of environment variables holding either the value of a key or the path a directory or file containing a key. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/env_var_type)authorizer/crypto_key_configs/env_var_type +EnvVarType indicates how to interpret the value found in the EnvVarName. If it is blank, then the assumption is the environment variable value contains either public or private key. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/env_var_value)authorizer/crypto_key_configs/env_var_value +EnvVarValue is the value associated with the environment variable set by EnvVarName. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/file_path)authorizer/crypto_key_configs/file_path +FilePath is the path of a file containing either private or public key. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/dir_path)authorizer/crypto_key_configs/dir_path +DirPath is the path to a directory containing crypto keys. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/token_lifetime)authorizer/crypto_key_configs/token_lifetime +TokenLifetime is the expected token grant lifetime in seconds. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/token_secret)authorizer/crypto_key_configs/token_secret +Secret is the shared key used with HMAC algorithm. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/token_sign_method)authorizer/crypto_key_configs/token_sign_method +PreferredSignMethod is the preferred method to sign tokens, e.g. all HMAC keys could use HS256, HS384, and HS512 methods. By default, the preferred method is HS512. However, one may prefer using HS256. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_configs/token_eval_expr)authorizer/crypto_key_configs/token_eval_expr +EvalExpr is a list of expressions evaluated whether a specific key should be used for signing and verification. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/crypto_key_store_config)authorizer/crypto_key_store_config +CryptoKeyStoreConfig hold the default configuration for the keys, e.g. token name and lifetime. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/allowed_token_sources)authorizer/allowed_token_sources +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/strip_token_enabled)authorizer/strip_token_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/forbidden_url)authorizer/forbidden_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/user_identity_field)authorizer/user_identity_field +There are no docs for this property. + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/validate_method_path)authorizer/validate_method_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/validate_access_list_path_claim)authorizer/validate_access_list_path_claim +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorize#authorizer/validate_source_address)authorizer/validate_source_address +There are no docs for this property. + +There are no docs for this property. diff --git a/docs/caddy/modules/http.authentication.providers.authorizer.md b/docs/caddy/modules/http.authentication.providers.authorizer.md new file mode 100644 index 0000000..05c800a --- /dev/null +++ b/docs/caddy/modules/http.authentication.providers.authorizer.md @@ -0,0 +1,44 @@ +Title: Module http.authentication.providers.authorizer - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.authentication.providers.authorizer + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.authentication.providers.authorizer**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorizer#docs "Direct link") +----------------------------------------------------------------------------------------------------------------- + +`{▾ "route_matcher": "", "gatekeeper_name": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/greenpau/caddy-security](https://github.com/greenpau/caddy-security)** + +**Custom builds:**`xcaddy build --with github.com/greenpau/caddy-security` + +Description[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorizer#docs "Direct link") +----------------------------------------------------------------------------------------------------------------- + +http.authentication.providers.authorizer authorizes access to endpoints based on the presense and content of JWT token. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorizer#route_matcher)route_matcher +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.authorizer#gatekeeper_name)gatekeeper_name +There are no docs for this property. diff --git a/docs/caddy/modules/http.authentication.providers.discord.md b/docs/caddy/modules/http.authentication.providers.discord.md new file mode 100644 index 0000000..cf46061 --- /dev/null +++ b/docs/caddy/modules/http.authentication.providers.discord.md @@ -0,0 +1,44 @@ +Title: Module http.authentication.providers.discord - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.authentication.providers.discord + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.authentication.providers.discord**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.discord#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/enum-gg/caddy-discord](https://github.com/enum-gg/caddy-discord)** + +**Custom builds:**`xcaddy build --with github.com/enum-gg/caddy-discord` + +Description[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.discord#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +http.authentication.providers.discord allows you to authenticate caddy routes from a Discord User Identity. + +e.g. Accessing /really-cool-people requires user to have {Role} within {Guild} + +Discord's OAuth flow is used for identity using your own Discord developer application. + +See an example Caddyfile [https://github.com/enum-gg/caddy-discord#caddyfile-example](https://github.com/enum-gg/caddy-discord#caddyfile-example) diff --git a/docs/caddy/modules/http.authentication.providers.forms.md b/docs/caddy/modules/http.authentication.providers.forms.md new file mode 100644 index 0000000..dadd4c6 --- /dev/null +++ b/docs/caddy/modules/http.authentication.providers.forms.md @@ -0,0 +1,103 @@ +Title: Modules - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.authentication.providers.forms + +Markdown Content: +Modules - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.authentication.providers.http_basic.md b/docs/caddy/modules/http.authentication.providers.http_basic.md new file mode 100644 index 0000000..4fb52ee --- /dev/null +++ b/docs/caddy/modules/http.authentication.providers.http_basic.md @@ -0,0 +1,153 @@ +Title: Module http.authentication.providers.http_basic - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.authentication.providers.http_basic + +Markdown Content: +Module http.authentication.providers.http_basic - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.authentication.providers.http_basic +=============================================== + + There is more than one module named **Module http.authentication.providers.http_basic**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.http_basic#docs "Direct link") +----------------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "hash": {•••}, "accounts": [{▾ "username": "", "password": "" }], "realm": "", "hash_cache": {▾ }}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.http_basic#docs "Direct link") +----------------------------------------------------------------------------------------------------------------- + +http.authentication.providers.http_basic facilitates HTTP basic authentication. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.http_basic#hash)hash +The algorithm with which the passwords are hashed. Default: bcrypt + +Fulfilled by modules in namespace: **http.authentication.hashes** + +* [bcrypt](https://caddyserver.com/docs/modules/http.authentication.hashes.bcrypt) +* [scrypt](https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt) + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.http_basic#accounts)accounts +The list of accounts to authenticate. + +Account contains a username and password. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.http_basic#accounts/username)accounts/username +A user's username. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.http_basic#accounts/password)accounts/password +The user's hashed password, in Modular Crypt Format (with `$` prefix) or base64-encoded. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.http_basic#realm)realm +The name of the realm. Default: restricted + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.http_basic#hash_cache)hash_cache +If non-nil, a mapping of plaintext passwords to their hashes will be cached in memory (with random eviction). This can greatly improve the performance of traffic-heavy servers that use secure password hashing algorithms, with the downside that plaintext passwords will be stored in memory for a longer time (this should not be a problem as long as your machine is not compromised, at which point all bets are off, since basicauth necessitates plaintext passwords being received over the wire anyway). Note that a cache hit does not mean it is a valid password. + +Cache enables caching of basic auth results. This is especially helpful for secure password hashes which can be expensive to compute on every HTTP request. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.authentication.providers.jwt.md b/docs/caddy/modules/http.authentication.providers.jwt.md new file mode 100644 index 0000000..5e13791 --- /dev/null +++ b/docs/caddy/modules/http.authentication.providers.jwt.md @@ -0,0 +1,79 @@ +Title: Module http.authentication.providers.jwt - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.authentication.providers.jwt + +Markdown Content: +http.authentication.providers.jwt facilitates JWT (JSON Web Token) authentication. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#sign_key)sign_key +SignKey is the key used by the signing algorithm to verify the signature. + +For symmetric algorithems, use the key directly. e.g. + +`"".` +For asymmetric algorithems, use the public key in x509 PEM format. e.g. + +``` +-----BEGIN PUBLIC KEY----- +... +-----END PUBLIC KEY----- +``` + +This is an optional field. You can instead provide JWKURL to use JWKs. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#jwk_url)jwk_url +JWKURL is the URL where a provider publishes their JWKs. The URL must publish the JWKs in the standard format as described in [https://tools.ietf.org/html/rfc7517](https://tools.ietf.org/html/rfc7517). If you'd like to use JWK, set this field and leave SignKey unset. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#sign_alg)sign_alg +SignAlgorithm is the the signing algorithm used. Available values are defined in [https://www.rfc-editor.org/rfc/rfc7518#section-3.1](https://www.rfc-editor.org/rfc/rfc7518#section-3.1) This is an optional field, which is used for determining the signing algorithm. We will try to determine the algorithm automatically from the following sources: + +1. The "alg" field in the JWT header. +2. The "alg" field in the matched JWK (if JWKURL is provided). +3. The value set here. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#from_query)from_query +FromQuery defines a list of names to get tokens from the query parameters of an HTTP request. + +If multiple keys were given, all the corresponding query values will be treated as candidate tokens. And we will verify each of them until we got a valid one. + +Priority: from_query > from_header > from_cookies. + +FromHeader works like FromQuery. But defines a list of names to get tokens from the HTTP header. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#from_cookies)from_cookies +FromCookie works like FromQuery. But defines a list of names to get tokens from the HTTP cookies. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#issuer_whitelist)issuer_whitelist +IssuerWhitelist defines a list of issuers. A non-empty list turns on "iss verification": the "iss" claim must exist in the given JWT payload. And the value of the "iss" claim must be on the whitelist in order to pass the verification. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#audience_whitelist)audience_whitelist +AudienceWhitelist defines a list of audiences. A non-empty list turns on "aud verification": the "aud" claim must exist in the given JWT payload. The verification will pass as long as one of the "aud" values is on the whitelist. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#user_claims)user_claims +UserClaims defines a list of names to find the ID of the authenticated user. + +By default, this config will be set to []string{"sub"}. + +If multiple names were given, we will use the first non-empty value of the key in the JWT payload as the ID of the authenticated user. i.e. The placeholder {http.auth.user.id} will be set to the ID. + +For example, []string{"uid", "username"} will set "eva" as the final user ID from JWT payload: { "username": "eva" }. + +If no non-empty values found, leaves it unauthenticated. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.jwt#meta_claims)meta_claims +MetaClaims defines a map to populate {http.auth.user.*} metadata placeholders. The key is the claim in the JWT payload, the value is the placeholder name. e.g. {"IsAdmin": "is_admin"} can populate {http.auth.user.is_admin} with the value of `IsAdmin` in the JWT payload if found, otherwise "". + +NOTE: The name in the placeholder should be adhere to Caddy conventions (snake_casing). + +Caddyfile: Use syntax `[-> ]` to define a map item. The placeholder is optional, if not specified, use the same name as the claim. e.g. + +`meta_claims "IsAdmin -> is_admin" "group"` +is equal to {"IsAdmin": "is_admin", "group": "group"}. + +Since v0.6.0, nested claim path is also supported, e.g. For the following JWT payload: + +`{ ..., "user_info": { "role": "admin" }}` +If you want to populate {http.auth.user.role} with "admin", you can use + +`meta_claims "user_info.role -> role"` +Use dot notation to access nested claims. diff --git a/docs/caddy/modules/http.authentication.providers.paseto.md b/docs/caddy/modules/http.authentication.providers.paseto.md new file mode 100644 index 0000000..aba1edd --- /dev/null +++ b/docs/caddy/modules/http.authentication.providers.paseto.md @@ -0,0 +1,69 @@ +Title: Module http.authentication.providers.paseto - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.authentication.providers.paseto + +Markdown Content: +http.authentication.providers.paseto implements PASETO authentication. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#key)key +Key is the key used to verify or decrypt PASETO tokens. It must be the public key if `purpose` is 'public', or the symmetric key if `purpose` is 'local'. It can be specified as either a hex or PEM encoded string. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#purpose)purpose +Purpose is the PASETO protocol purpose. It can either be 'local' for shared-key (symmetric) encryption, or 'public' for public-key (asymmetric) signing. The default is 'public'. + +Purpose represents either local or public paseto mode + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#version)version +Version is the PASETO protocol version. The default is 4. + +Version represents a valid paseto version + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#time_skew_tolerance)time_skew_tolerance +TimeSkewTolerance is the amount of time to allow token claim times (iat, nbf, exp) to be from the current system time to account for clock skew between systems. The default is 30s. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#from_query)from_query +FromQuery defines a list of HTTP request query string parameter names tokens should be retrieved from. + +If multiple names are specified, all the corresponding query values will be treated as candidate tokens, and each one will be verified until a valid one is reached. + +Priority: from_query > from_header > from_cookies. + +FromHeader works like FromQuery, but defines a list of HTTP header names tokens should be retrieved from. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#from_cookies)from_cookies +FromCookie works like FromQuery, but defines a list of HTTP cookie names tokens should be retrieved from. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#user_claims)user_claims +UserClaims defines a list of token claim names from which to extract the ID of the authenticated user. + +By default, this value will be set to []string{"sub"}. + +If multiple names are specified, the first non-empty value of the claim in the token payload will be used as the ID of the authenticated user, and the placeholder `{http.auth.user.id}` will be set to the ID. For example, the value `uid username` will set "eva" as the final user ID from the token payload: `{ "username": "eva" }`. + +If no non-empty values are found, the request fails authentication. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#meta_claims)meta_claims +MetaClaims defines a map to populate {http.auth.user.*} metadata placeholders. The key is the claim in the token payload, the value is the placeholder name. e.g. {"IsAdmin": "is_admin"} can populate {http.auth.user.is_admin} with the value of `IsAdmin` in the token payload if found, otherwise "". + +NOTE: The name in the placeholder should adhere to Caddy conventions (snake casing). + +Caddyfile: Use syntax `[-> ]` to define a map item. The placeholder is optional, if not specified, use the same name as the claim. E.g.: + +`meta_claims "IsAdmin -> is_admin" "group"` +is equal to {"IsAdmin": "is_admin", "group": "group"}. + +Nested claim paths are supported with dot notation. So for the following token payload: + +`{ ..., "user_info": { "role": "admin" }}` +If you want to populate {http.auth.user.role} with "admin", you can use + +`meta_claims "user_info.role -> role"`[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#allow_audiences)allow_audiences +AllowAudiences defines a list of allowed audiences. If non-empty, the "aud" claim must exist in the token payload and its value must be specified here for verification to succeed. Otherwise, the "aud" claim is not required, and any value will be allowed. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#allow_issuers)allow_issuers +AllowIssuers defines a list of allowed issuers. If non-empty, the "iss" claim must exist in the token payload and its value must be specified here for verification to succeed. Otherwise, the "iss" claim is not required, and any value will be allowed. + +[🔗](https://caddyserver.com/docs/modules/http.authentication.providers.paseto#allow_users)allow_users +AllowUsers defines a list of allowed users. If non-empty, and the user claim is defined in the token payload, only specified users will pass the verification. Otherwise, all users will be allowed. diff --git a/docs/caddy/docs/docs/modules/http.matchers.remote_ip.md b/docs/caddy/modules/http.authentication.providers.saml.md similarity index 72% rename from docs/caddy/docs/docs/modules/http.matchers.remote_ip.md rename to docs/caddy/modules/http.authentication.providers.saml.md index 30ab46b..6b82b9f 100644 --- a/docs/caddy/docs/docs/modules/http.matchers.remote_ip.md +++ b/docs/caddy/modules/http.authentication.providers.saml.md @@ -1,21 +1,21 @@ -Title: Module http.matchers.remote_ip - Caddy Documentation +Title: Module http.authentication.providers.saml - Caddy Documentation -URL Source: https://caddyserver.com/docs/modules/http.matchers.remote_ip +URL Source: https://caddyserver.com/docs/modules/http.authentication.providers.saml Markdown Content: -Module http.matchers.remote\_ip - Caddy Documentation -=============== +Module http.authentication.providers.saml - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== -Documentation +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +Documentation -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +27,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +40,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,9 +59,10 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) All Modules =========== @@ -71,13 +74,13 @@ We recommend using your browser's "Find in page" feature for quick lookups. | | Module ID | Description | | --- | --- | --- | -There is more than one module named . Choose one by its repository. + There is more than one module named . Choose one by its repository. -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` Description ----------- @@ -89,9 +92,12 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.encoders.br.md b/docs/caddy/modules/http.encoders.br.md new file mode 100644 index 0000000..9703e55 --- /dev/null +++ b/docs/caddy/modules/http.encoders.br.md @@ -0,0 +1,153 @@ +Title: Module http.encoders.br - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.encoders.br + +Markdown Content: +Module http.encoders.br - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.encoders.br +======================= + + There is more than one module named **http.encoders.br**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.encoders.br#docs "Direct link") +----------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/dunglas/caddy-cbrotli + +`{▾ "quality": 0, "lgwin": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/dunglas/caddy-cbrotli](https://github.com/dunglas/caddy-cbrotli)** + +**Custom builds:**`xcaddy build --with github.com/dunglas/caddy-cbrotli` + +Description[🔗](https://caddyserver.com/docs/modules/http.encoders.br#docs "Direct link") +----------------------------------------------------------------------------------------- + +http.encoders.br can create Brotli encoders. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.encoders.br#quality)quality +Quality controls the compression-speed vs compression-density trade-offs. The higher the quality, the slower the compression. Range is 0 to 11. Defaults to 6. + +[🔗](https://caddyserver.com/docs/modules/http.encoders.br#lgwin)lgwin +LGWin is the base 2 logarithm of the sliding window size. Range is 10 to 24. 0 indicates automatic configuration based on Quality. + +▸github.com/ueffel/caddy-brotli + +`{▾ "level": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ueffel/caddy-brotli](https://github.com/ueffel/caddy-brotli)** + +**Custom builds:**`xcaddy build --with github.com/ueffel/caddy-brotli` + +Description[🔗](https://caddyserver.com/docs/modules/http.encoders.br#docs "Direct link") +----------------------------------------------------------------------------------------- + +http.encoders.br can create brotli encoders. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.encoders.br#level)level +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.encoders.gzip.md b/docs/caddy/modules/http.encoders.gzip.md new file mode 100644 index 0000000..7806a5d --- /dev/null +++ b/docs/caddy/modules/http.encoders.gzip.md @@ -0,0 +1,131 @@ +Title: Module http.encoders.gzip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.encoders.gzip + +Markdown Content: +Module http.encoders.gzip - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.encoders.gzip +========================= + + There is more than one module named **Module http.encoders.gzip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.encoders.gzip#docs "Direct link") +------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "level": 0}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.encoders.gzip#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.encoders.gzip can create gzip encoders. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.encoders.gzip#level)level +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fhttp.encoders.gzip&r=&sid=GVMGKAKP&qs=%7B%7D&cid=98835591) diff --git a/docs/caddy/modules/http.encoders.zstd.md b/docs/caddy/modules/http.encoders.zstd.md new file mode 100644 index 0000000..5697fa4 --- /dev/null +++ b/docs/caddy/modules/http.encoders.zstd.md @@ -0,0 +1,41 @@ +Title: Module http.encoders.zstd - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.encoders.zstd + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.encoders.zstd**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.encoders.zstd#docs "Direct link") +------------------------------------------------------------------------------------------- + +`{▾ "level": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.encoders.zstd#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.encoders.zstd can create Zstandard encoders. + +[🔗](https://caddyserver.com/docs/modules/http.encoders.zstd#level)level +The compression level. Accepted values: fastest, better, best, default. diff --git a/docs/caddy/modules/http.handlers.acme_server.md b/docs/caddy/modules/http.handlers.acme_server.md new file mode 100644 index 0000000..367cf70 --- /dev/null +++ b/docs/caddy/modules/http.handlers.acme_server.md @@ -0,0 +1,61 @@ +Title: Module http.handlers.acme_server - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.acme_server + +Markdown Content: +http.handlers.acme_server is an ACME server handler. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#ca)ca +The ID of the CA to use for signing. This refers to the ID given to the CA in the `pki` app. If omitted, the default ID is "local". + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#lifetime)lifetime +The lifetime for issued certificates + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#host)host +The hostname or IP address by which ACME clients will access the server. This is used to populate the ACME directory endpoint. If not set, the Host header of the request will be used. COMPATIBILITY NOTE / TODO: This property may go away in the future. Do not rely on this property long-term; check release notes. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#path_prefix)path_prefix +The path prefix under which to serve all ACME endpoints. All other requests will not be served by this handler and will be passed through to the next one. Default: "/acme/". COMPATIBILITY NOTE / TODO: This property may go away in the future, as it is currently only required due to limitations in the underlying library. Do not rely on this property long-term; check release notes. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#sign_with_root)sign_with_root +If true, the CA's root will be the issuer instead of the intermediate. This is NOT recommended and should only be used when devices/clients do not properly validate certificate chains. EXPERIMENTAL: Might be changed or removed in the future. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#resolvers)resolvers +The addresses of DNS resolvers to use when looking up the TXT records for solving DNS challenges. It accepts [network addresses](https://caddyserver.com/docs/conventions#network-addresses) with port range of only 1. If the host is an IP address, it will be dialed directly to resolve the upstream server. If the host is not an IP address, the addresses are resolved using the [name resolution convention](https://golang.org/pkg/net/#hdr-Name_Resolution) of the Go standard library. If the array contains more than 1 resolver address, one is chosen at random. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#challenges)challenges +Specify the set of enabled ACME challenges. An empty or absent value means all challenges are enabled. Accepted values are: "http-01", "dns-01", "tls-alpn-01" + +ACMEChallenge is an opaque string that represents supported ACME challenges. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#policy)policy +The policy to use for issuing certificates + +Policy defines the criteria for the ACME server of when to issue a certificate. Refer to the [Certificate Issuance Policy](https://smallstep.com/docs/step-ca/policies/) on Smallstep website for the evaluation criteria. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#policy/allow)policy/allow +If a rule set is configured to allow a certain type of name, all other types of names are automatically denied. + +RuleSet is the specific set of SAN criteria for a certificate to be issued or denied. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#policy/allow/domains)policy/allow/domains +Domains is a list of DNS domains that are allowed to be issued. It can be in the form of FQDN for specific domain name, or a wildcard domain name format, e.g. *.example.com, to allow sub-domains of a domain. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#policy/allow/ip_ranges)policy/allow/ip_ranges +IP ranges in the form of CIDR notation or specific IP addresses to be approved or denied for certificates. Non-CIDR IP addresses are matched exactly. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#policy/deny)policy/deny +If a rule set is configured to deny a certain type of name, all other types of names are still allowed. + +RuleSet is the specific set of SAN criteria for a certificate to be issued or denied. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#policy/deny/domains)policy/deny/domains +Domains is a list of DNS domains that are allowed to be issued. It can be in the form of FQDN for specific domain name, or a wildcard domain name format, e.g. *.example.com, to allow sub-domains of a domain. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#policy/deny/ip_ranges)policy/deny/ip_ranges +IP ranges in the form of CIDR notation or specific IP addresses to be approved or denied for certificates. Non-CIDR IP addresses are matched exactly. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.acme_server#policy/allow_wildcard_names)policy/allow_wildcard_names +If set to true, the ACME server will allow issuing wildcard certificates. diff --git a/docs/caddy/modules/http.handlers.adobe_usage_tracker.md b/docs/caddy/modules/http.handlers.adobe_usage_tracker.md new file mode 100644 index 0000000..5334d97 --- /dev/null +++ b/docs/caddy/modules/http.handlers.adobe_usage_tracker.md @@ -0,0 +1,61 @@ +Title: Module http.handlers.adobe_usage_tracker - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.adobe_usage_tracker**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +`{▾ "endpoint": "", "database": "", "policy": "", "token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/clickonetwo/tracker](https://github.com/clickonetwo/tracker)** + +**Custom builds:**`xcaddy build --with github.com/clickonetwo/tracker` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +http.handlers.adobe_usage_tracker implements HTTP middleware that parses uploaded log files from Adobe desktop applications in order to collect measurements about past launches. These measurements are then uploaded to an InfluxDB (using the v1 HTTP API). + +Configuration of the tracker requires four parameters: + +* the endpoint URL of the influx v1 upload api +* the name of the influx v1 database +* the retention policy of the influx v1 database +* an API token authorized for writes of the database + +Note: this middleware uses the v1 HTTP write API because it's fully supported by both v1 and v3 databases. When using a v3 database, you must specify a "dbrp" mapping from the database and policy names to the specific bucket you want uploads to go to. See the influx docs for details: + +[https://docs.influxdata.com/influxdb/cloud-serverless/write-data/api/v1-http/](https://docs.influxdata.com/influxdb/cloud-serverless/write-data/api/v1-http/) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker#endpoint)endpoint +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker#database)database +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker#policy)policy +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker#token)token +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.argsort.md b/docs/caddy/modules/http.handlers.argsort.md new file mode 100644 index 0000000..dd51f5a --- /dev/null +++ b/docs/caddy/modules/http.handlers.argsort.md @@ -0,0 +1,154 @@ +Title: Module http.handlers.argsort - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.argsort + +Markdown Content: +Module http.handlers.argsort - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.argsort +============================ + + There is more than one module named **http.handlers.argsort**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.argsort#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/teodorescuserban/caddy-argsort + +`{▾ "lowercase": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/teodorescuserban/caddy-argsort](https://github.com/teodorescuserban/caddy-argsort)** + +**Custom builds:**`xcaddy build --with github.com/teodorescuserban/caddy-argsort` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.argsort#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.handlers.argsort sort the query arguments after optionally lowercasing them. + +Syntax: + +`argsort [lowercase]` + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.argsort#lowercase)lowercase +Lowercase the query arguments before sorting them. + +▸github.com/teodorescuserban/caddy-argsort + +`{▾ "lowercase": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/teodorescuserban/caddy-argsort](https://github.com/teodorescuserban/caddy-argsort)** + +**Custom builds:**`xcaddy build --with github.com/teodorescuserban/caddy-argsort` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.argsort#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.handlers.argsort implements an HTTP handler that reorders the query arguments. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.argsort#lowercase)lowercase +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.authelia.md b/docs/caddy/modules/http.handlers.authelia.md new file mode 100644 index 0000000..d35dc4e --- /dev/null +++ b/docs/caddy/modules/http.handlers.authelia.md @@ -0,0 +1,144 @@ +Title: Module http.handlers.authelia - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.authelia + +Markdown Content: +Module http.handlers.authelia - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.authelia +============================= + + There is more than one module named **Module http.handlers.authelia**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.authelia#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/HeavenVolkoff/caddy-authelia + +`{▾ "authelia_url": {▾ }, "redirect_url": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/HeavenVolkoff/caddy-authelia](https://github.com/HeavenVolkoff/caddy-authelia)** + +**Custom builds:**`xcaddy build --with github.com/HeavenVolkoff/caddy-authelia/plugin` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.authelia#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.handlers.authelia implements a plugin for securing routes with authentication + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authelia#authelia_url)authelia_url +Host where the authelia backend can be reached + +A URL represents a parsed URL (technically, a URI reference). + +The general form represented is: + +`[scheme:][//[userinfo@]host][/]path[?query][#fragment]` +URLs that do not start with a slash after the scheme are interpreted as: + +`scheme:opaque[?query][#fragment]` +Note that the Path field is stored in decoded form: /%47%6f%2f becomes /Go/. A consequence is that it is impossible to tell which slashes in the Path were slashes in the raw URL and which were %2f. This distinction is rarely important, but when it is, the code should use RawPath, an optional field which only gets set if the default encoding is different from Path. + +URL's String method uses the EscapedPath method to obtain the path. See the EscapedPath method for more details. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authelia#redirect_url)redirect_url +URL to redirect unauthorized requests (Optional) + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.authentication.md b/docs/caddy/modules/http.handlers.authentication.md new file mode 100644 index 0000000..ce333b7 --- /dev/null +++ b/docs/caddy/modules/http.handlers.authentication.md @@ -0,0 +1,47 @@ +Title: Module http.handlers.authentication - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.authentication + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.authentication**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.authentication#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +`{▾ "providers": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.authentication#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +http.handlers.authentication is a middleware which provides user authentication. Rejects requests with HTTP 401 if the request is not authenticated. + +After a successful authentication, the placeholder `{http.auth.user.id}` will be set to the username, and also `{http.auth.user.*}` placeholders may be set for any authentication modules that provide user metadata. + +Its API is still experimental and may be subject to change. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authentication#providers)providers +A set of authentication providers. If none are specified, all requests will always be unauthenticated. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. diff --git a/docs/caddy/modules/http.handlers.authenticator.md b/docs/caddy/modules/http.handlers.authenticator.md new file mode 100644 index 0000000..8b8021a --- /dev/null +++ b/docs/caddy/modules/http.handlers.authenticator.md @@ -0,0 +1,44 @@ +Title: Module http.handlers.authenticator - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.authenticator + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.authenticator**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.authenticator#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾ "route_matcher": "", "portal_name": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/greenpau/caddy-security](https://github.com/greenpau/caddy-security)** + +**Custom builds:**`xcaddy build --with github.com/greenpau/caddy-security` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.authenticator#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +http.handlers.authenticator implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0, SAML Authentication. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authenticator#route_matcher)route_matcher +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authenticator#portal_name)portal_name +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.authp.md b/docs/caddy/modules/http.handlers.authp.md new file mode 100644 index 0000000..36fa148 --- /dev/null +++ b/docs/caddy/modules/http.handlers.authp.md @@ -0,0 +1,403 @@ +Title: Module http.handlers.authp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.authp + +Markdown Content: +http.handlers.authp implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0, SAML Authentication. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp)authp +Authenticator implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0, SAML Authentication. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/primary)authp/primary +PrimaryInstance indicates, when it is set to true, the instance of the portal is primary. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/context)authp/context +Context is the context whether the portal operates. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui)authp/ui +UI holds the configuration for the user interface. + +Parameters represent a common set of configuration settings for HTML UI. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/theme)authp/ui/theme +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/templates)authp/ui/templates +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/allow_role_selection)authp/ui/allow_role_selection +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/title)authp/ui/title +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/logo_url)authp/ui/logo_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/logo_description)authp/ui/logo_description +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/private_links)authp/ui/private_links +Link represents a single HTML link. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/private_links/link)authp/ui/private_links/link +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/private_links/title)authp/ui/private_links/title +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/private_links/style)authp/ui/private_links/style +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/private_links/open_new_window)authp/ui/private_links/open_new_window +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/private_links/target)authp/ui/private_links/target +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/private_links/target_enabled)authp/ui/private_links/target_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/private_links/icon_name)authp/ui/private_links/icon_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/private_links/icon_enabled)authp/ui/private_links/icon_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/auto_redirect_url)authp/ui/auto_redirect_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/realms)authp/ui/realms +UserRealm represents a single authentication realm/domain. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/realms/name)authp/ui/realms/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/realms/label)authp/ui/realms/label +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/password_recovery_enabled)authp/ui/password_recovery_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/custom_css_path)authp/ui/custom_css_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/ui/custom_js_path)authp/ui/custom_js_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_registration_config)authp/user_registration_config +UserRegistrationConfig holds the configuration for the user registration. + +Config represents a common set of configuration settings for user registration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_registration_config/disabled)authp/user_registration_config/disabled +The switch determining whether the registration is enabled/disabled. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_registration_config/title)authp/user_registration_config/title +The title of the registration page + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_registration_config/code)authp/user_registration_config/code +The mandatory registration code. It is possible adding multiple codes, comma separated. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_registration_config/dropbox)authp/user_registration_config/dropbox +The file path to registration database. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_registration_config/require_accept_terms)authp/user_registration_config/require_accept_terms +The switch determining whether a user must accept terms and conditions + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_registration_config/require_domain_mx)authp/user_registration_config/require_domain_mx +The switch determining whether the domain associated with an email has a valid MX DNS record. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_registration_config/privacy_policy_link)authp/user_registration_config/privacy_policy_link +The link to terms and conditions document. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_registration_config/terms_conditions_link)authp/user_registration_config/terms_conditions_link +The link to privacy policy document. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_transformer_config)authp/user_transformer_config +UserTransformerConfig holds the configuration for the user transformer. + +Config represents a common set of configuration settings applicable to the cookies issued by authn.Authenticator. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_transformer_config/matchers)authp/user_transformer_config/matchers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/user_transformer_config/actions)authp/user_transformer_config/actions +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/cookie_config)authp/cookie_config +CookieConfig holds the configuration for the cookies issues by Authenticator. + +Config represents a common set of configuration settings applicable to the cookies issued by authn.Authenticator. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/cookie_config/domain)authp/cookie_config/domain +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/cookie_config/path)authp/cookie_config/path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/cookie_config/lifetime)authp/cookie_config/lifetime +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/cookie_config/insecure)authp/cookie_config/insecure +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/cookie_config/same_site)authp/cookie_config/same_site +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs)authp/backend_configs +BackendConfigs hold the configurations for authentication backends. + +Config holds configuration for one of the supported authentication backends. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/local)authp/backend_configs/local +Config holds the configuration for the backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/local/name)authp/backend_configs/local/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/local/method)authp/backend_configs/local/method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/local/realm)authp/backend_configs/local/realm +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/local/path)authp/backend_configs/local/path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap)authp/backend_configs/ldap +Config holds the configuration for the backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/name)authp/backend_configs/ldap/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/method)authp/backend_configs/ldap/method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/realm)authp/backend_configs/ldap/realm +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/servers)authp/backend_configs/ldap/servers +AuthServer represents an instance of LDAP server. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/servers/addr)authp/backend_configs/ldap/servers/addr +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/servers/ignore_cert_errors)authp/backend_configs/ldap/servers/ignore_cert_errors +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/servers/timeout)authp/backend_configs/ldap/servers/timeout +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/username)authp/backend_configs/ldap/username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/password)authp/backend_configs/ldap/password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/attributes)authp/backend_configs/ldap/attributes +UserAttributes represent the mapping of LDAP attributes to JWT fields. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/attributes/name)authp/backend_configs/ldap/attributes/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/attributes/surname)authp/backend_configs/ldap/attributes/surname +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/attributes/username)authp/backend_configs/ldap/attributes/username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/attributes/member_of)authp/backend_configs/ldap/attributes/member_of +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/attributes/email)authp/backend_configs/ldap/attributes/email +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/search_base_dn)authp/backend_configs/ldap/search_base_dn +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/search_filter)authp/backend_configs/ldap/search_filter +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/groups)authp/backend_configs/ldap/groups +UserGroup represent the binding between BaseDN and a serarch filter. Upon successful authentation for the combination, a user gets assigned the roles associated with the binding. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/groups/dn)authp/backend_configs/ldap/groups/dn +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/groups/roles)authp/backend_configs/ldap/groups/roles +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/ldap/trusted_authorities)authp/backend_configs/ldap/trusted_authorities +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml)authp/backend_configs/saml +Config holds the configuration for the Backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/name)authp/backend_configs/saml/name +Name is the unique name associated with the Backend.. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/method)authp/backend_configs/saml/method +Method the name of the authentication method associated with the Backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/realm)authp/backend_configs/saml/realm +Realm the authentication realm associated with the Backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/provider)authp/backend_configs/saml/provider +Provider is the name of the provider associated with the Backend, e.g. azure. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/idp_metadata_location)authp/backend_configs/saml/idp_metadata_location +IdpMetadataLocation is the path to the Identity Provider metadata. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/idp_sign_cert_location)authp/backend_configs/saml/idp_sign_cert_location +IdpSignCertLocation is the path to the Identity Provider signing certificate. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/tenant_id)authp/backend_configs/saml/tenant_id +TenantID is the tenant ID associated with the Backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/application_id)authp/backend_configs/saml/application_id +ApplicationID is the application ID associated with the Backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/application_name)authp/backend_configs/saml/application_name +ApplicationName is the application name associated with the Backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/entity_id)authp/backend_configs/saml/entity_id +EntityID is the "Identifier (Entity ID)" an administrator specifies in "Set up Single Sign-On with SAML" in Azure AD Enterprise Applications. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/saml/acs_urls)authp/backend_configs/saml/acs_urls +AssertionConsumerServiceURLs is the list of URLs server instance is listening on. These URLs are known as SP Assertion Consumer Service endpoints. For example, users may access a website via [http://app.domain.local](http://app.domain.local/). At the same time the users may access it by IP, e.g. [http://10.10.10.10](http://10.10.10.10/). or by name, i.e. app. Each of the URLs is a separate endpoint. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2)authp/backend_configs/oauth2 +Config holds the configuration for the backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/name)authp/backend_configs/oauth2/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/method)authp/backend_configs/oauth2/method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/realm)authp/backend_configs/oauth2/realm +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/provider)authp/backend_configs/oauth2/provider +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/domain_name)authp/backend_configs/oauth2/domain_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/client_id)authp/backend_configs/oauth2/client_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/client_secret)authp/backend_configs/oauth2/client_secret +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/server_id)authp/backend_configs/oauth2/server_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/app_secret)authp/backend_configs/oauth2/app_secret +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/tenant_id)authp/backend_configs/oauth2/tenant_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/identity_token_name)authp/backend_configs/oauth2/identity_token_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/scopes)authp/backend_configs/oauth2/scopes +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/user_roles)authp/backend_configs/oauth2/user_roles +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/base_auth_url)authp/backend_configs/oauth2/base_auth_url +The URL to OAuth 2.0 Custom Authorization Server. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/backend_configs/oauth2/metadata_url)authp/backend_configs/oauth2/metadata_url +The URL to OAuth 2.0 metadata related to your Custom Authorization Server. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/access_list_configs)authp/access_list_configs +AccessListConfigs hold the configurations for the ACL of the token validator. + +RuleConfiguration consists of a list of conditions and and actions + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/access_list_configs/conditions)authp/access_list_configs/conditions +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/access_list_configs/action)authp/access_list_configs/action +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/token_validator_options)authp/token_validator_options +TokenValidatorOptions holds the configuration for the token validator. + +TokenValidatorOptions provides options for TokenValidator. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/token_validator_options/validate_source_address)authp/token_validator_options/validate_source_address +There are no docs for this property. + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/token_validator_options/validate_method_path)authp/token_validator_options/validate_method_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/token_validator_options/validate_access_list_path_claim)authp/token_validator_options/validate_access_list_path_claim +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs)authp/crypto_key_configs +CryptoKeyConfigs hold the configurations for the keys used to issue and validate user tokens. + +CryptoKeyConfig is common token-related configuration settings. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/seq)authp/crypto_key_configs/seq +Seq is the order in which a key would be processed. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/id)authp/crypto_key_configs/id +ID is the key ID, aka kid. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/usage)authp/crypto_key_configs/usage +Usage is the intended key usage. The values are: sign, verify, both, or auto. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/token_name)authp/crypto_key_configs/token_name +TokenName is the token name associated with the key. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/source)authp/crypto_key_configs/source +Source is either config or env. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/algorithm)authp/crypto_key_configs/algorithm +Algorithm is either hmac, rsa, or ecdsa. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/env_var_name)authp/crypto_key_configs/env_var_name +EnvVarName is the name of environment variables holding either the value of a key or the path a directory or file containing a key. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/env_var_type)authp/crypto_key_configs/env_var_type +EnvVarType indicates how to interpret the value found in the EnvVarName. If it is blank, then the assumption is the environment variable value contains either public or private key. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/env_var_value)authp/crypto_key_configs/env_var_value +EnvVarValue is the value associated with the environment variable set by EnvVarName. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/file_path)authp/crypto_key_configs/file_path +FilePath is the path of a file containing either private or public key. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/dir_path)authp/crypto_key_configs/dir_path +DirPath is the path to a directory containing crypto keys. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/token_lifetime)authp/crypto_key_configs/token_lifetime +TokenLifetime is the expected token grant lifetime in seconds. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/token_secret)authp/crypto_key_configs/token_secret +Secret is the shared key used with HMAC algorithm. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/token_sign_method)authp/crypto_key_configs/token_sign_method +PreferredSignMethod is the preferred method to sign tokens, e.g. all HMAC keys could use HS256, HS384, and HS512 methods. By default, the preferred method is HS512. However, one may prefer using HS256. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/crypto_key_configs/token_eval_expr)authp/crypto_key_configs/token_eval_expr +EvalExpr is a list of expressions evaluated whether a specific key should be used for signing and verification. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/token_grantor_options)authp/token_grantor_options +TokenGrantorOptions holds the configuration for the tokens issues by Authenticator. + +TokenGrantorOptions provides options for TokenGrantor. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.authp#authp/token_grantor_options/enable_source_address)authp/token_grantor_options/enable_source_address +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.authz.md b/docs/caddy/modules/http.handlers.authz.md new file mode 100644 index 0000000..5066d2e --- /dev/null +++ b/docs/caddy/modules/http.handlers.authz.md @@ -0,0 +1,124 @@ +Title: Module http.handlers.authz - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.authz + +Markdown Content: +Module http.handlers.authz - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.authz +========================== + + There is more than one module named **Module http.handlers.authz**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.authz#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/casbin/caddy-authz + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/casbin/caddy-authz](https://github.com/casbin/caddy-authz)** + +**Custom builds:**`xcaddy build --with github.com/casbin/caddy-authz/v2` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.authz#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.basicauthtotp.md b/docs/caddy/modules/http.handlers.basicauthtotp.md new file mode 100644 index 0000000..6c493d9 --- /dev/null +++ b/docs/caddy/modules/http.handlers.basicauthtotp.md @@ -0,0 +1,37 @@ +Title: Module http.handlers.basicauthtotp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.basicauthtotp + +Markdown Content: +http.handlers.basicauthtotp is a Caddy module that enhances Caddy's `basic_auth` directive by adding Time-based One-Time Password (TOTP) two-factor authentication (2FA). This module supplements `basic_auth` and does not replace it; therefore, `basic_auth` must be configured and active for BasicAuthTOTP to function correctly. Together, these two directives provide an additional security layer for sensitive routes by requiring both standard credentials and a valid TOTP code from a compatible authenticator app. + +This module is suitable for scenarios where extra security is necessary but may not be intended for production environments without additional testing, as it is in an experimental phase. + +Key features include: + +* JWT(JSON Web Token)-session-based TOTP authentication with configurable inactivity timeouts. +* IP binding for session validation, requiring re-authentication if the user's IP changes. +* Customizable session cookie options, including name and path scope. + +Instead of server-side session management, this module uses JWTs stored in cookies to manage sessions. This approach simplifies session handling and no sessions are lost when Caddy is reloaded or restarted. However, this approach is less secure than server-side session management, as JWTs are not invalidated or blacklisted and no logout is provided. To mitigate risks, the module uses IP binding to ensure that the JWT is only valid for the client IP address that created it. If the client IP changes, the JWT cookie is removed and the user must re-authenticate. + +Configuration options in BasicAuthTOTP provide flexibility in securing routes, and managing session inactivity timeout. Secrets are loaded from a specified JSON file that maps usernames to TOTP secrets. + +Example use case: BasicAuthTOTP is ideal for protecting sensitive or restricted resources by requiring an additional TOTP code, making it a good fit for applications where higher assurance of identity is required. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp#session_inactivity_timeout)session_inactivity_timeout +SessionInactivityTimeout defines the maximum allowed period of inactivity before a 2FA session expires and requires re-authentication. Default is 60 minutes. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp#secrets_file_path)secrets_file_path +SecretsFilePath specifies the path to the JSON file containing TOTP secrets for each user. This file should contain usernames and their corresponding TOTP secrets. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp#cookie_name)cookie_name +CookieName defines the name of the cookie used to store the session token for 2FA. Default is `batotp_sess`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp#cookie_path)cookie_path +CookiePath specifies the path scope of the session cookie. This restricts where the cookie is sent on the server. Default is `/`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp#sign_key)sign_key +SignKey is the base64 encoded secret key used to sign the JWTs. diff --git a/docs/caddy/modules/http.handlers.blockaws.md b/docs/caddy/modules/http.handlers.blockaws.md new file mode 100644 index 0000000..f59bd18 --- /dev/null +++ b/docs/caddy/modules/http.handlers.blockaws.md @@ -0,0 +1,126 @@ +Title: Module http.handlers.blockaws - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.blockaws + +Markdown Content: +Module http.handlers.blockaws - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.blockaws +============================= + + There is more than one module named **Module http.handlers.blockaws**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.blockaws#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mkalus/caddy_block_aws + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mkalus/caddy_block_aws](https://github.com/mkalus/caddy_block_aws)** + +**Custom builds:**`xcaddy build --with github.com/mkalus/caddy_block_aws` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.blockaws#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.handlers.blockaws is a Caddy module that blocks all AWS IP addresses taken from [https://ip-ranges.amazonaws.com/ip-ranges.json](https://ip-ranges.amazonaws.com/ip-ranges.json) + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.bot_barrier.md b/docs/caddy/modules/http.handlers.bot_barrier.md new file mode 100644 index 0000000..19e10bc --- /dev/null +++ b/docs/caddy/modules/http.handlers.bot_barrier.md @@ -0,0 +1,149 @@ +Title: Module http.handlers.bot_barrier - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.bot_barrier + +Markdown Content: +Module http.handlers.bot_barrier - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.bot_barrier +================================ + + There is more than one module named **Module http.handlers.bot_barrier**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.bot_barrier#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/steffenbusch/caddy-bot-barrier + +`{▾ "secret": "", "complexity": "", "valid_for": 0, "seed_cookie_name": "", "solution_cookie_name": "", "mac_cookie_name": "", "template": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/steffenbusch/caddy-bot-barrier](https://github.com/steffenbusch/caddy-bot-barrier)** + +**Custom builds:**`xcaddy build --with github.com/steffenbusch/caddy-bot-barrier` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.bot_barrier#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +http.handlers.bot_barrier is a Caddy middleware module that requires clients to solve a computational challenge before granting access to HTTP resources. It helps mitigate bot traffic. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.bot_barrier#secret)secret +Secret is the key used to generate and validate HMACs for the challenge seed. If not provided, a random secret will be generated during provisioning. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.bot_barrier#complexity)complexity +Complexity defines the number of leading zero bits required in the hash (SHA512(seed || nonce)) for the challenge to be considered solved. Higher values increase the difficulty of the challenge. This can include placeholders like {vars.complexity}. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.bot_barrier#valid_for)valid_for +ValidFor specifies the duration for which a challenge seed is valid. After this duration, the client must solve a new challenge. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.bot_barrier#seed_cookie_name)seed_cookie_name +SeedCookieName is the name of the cookie that stores the challenge seed. Defaults to "__challenge_seed" if not specified. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.bot_barrier#solution_cookie_name)solution_cookie_name +SolutionCookieName is the name of the cookie that stores the solution (nonce) found by the client to solve the challenge. Defaults to "__challenge_solution". + +[🔗](https://caddyserver.com/docs/modules/http.handlers.bot_barrier#mac_cookie_name)mac_cookie_name +MacCookieName is the name of the cookie that stores the HMAC of the challenge seed. This ensures the seed was generated by the server. Defaults to "__challenge_mac". + +[🔗](https://caddyserver.com/docs/modules/http.handlers.bot_barrier#template)template +TemplatePath specifies the path to a custom HTML template for the challenge page. If not provided, a default embedded template will be used. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.cache.md b/docs/caddy/modules/http.handlers.cache.md new file mode 100644 index 0000000..b679aba --- /dev/null +++ b/docs/caddy/modules/http.handlers.cache.md @@ -0,0 +1,874 @@ +Title: Module http.handlers.cache - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.cache + +Markdown Content: +Module http.handlers.cache - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.cache +========================== + + There is more than one module named **http.handlers.cache**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/cache-handler + +``` +{▾ "log_level": "", "allowed_http_verbs": [""], "headers": [""], "badger": {▾ "url": "", "path": "", "configuration": }, "key": {▾ "disable_body": false, "disable_host": false, "disable_method": false, "disable_query": false, "hide": false, "headers": [""] }, "cache_keys": { + "": {▾ "disable_body": false, "disable_host": false, "disable_method": false, "disable_query": false, "hide": false, "headers": [""] } + }, "nuts": {▾ "url": "", "path": "", "configuration": }, "etcd": {▾ "url": "", "path": "", "configuration": }, "redis": {▾ "url": "", "path": "", "configuration": }, "olric": {▾ "url": "", "path": "", "configuration": }, "timeout": {▾ "backend": {▾ }, "cache": {▾ } }, "ttl": {▾ }, "stale": {▾ }, "default_cache_control": "", "cache_name": ""} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddyserver/cache-handler](https://github.com/caddyserver/cache-handler)** + +**Custom builds:**`xcaddy build --with github.com/caddyserver/cache-handler` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.handlers.cache allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#log_level)log_level +Logger level, fallback on caddy's one when not redefined. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#allowed_http_verbs)allowed_http_verbs +Allowed HTTP verbs to be cached by the system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#headers)headers +Headers to add to the cache key if they are present. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger)badger +Configure the Badger cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/url)badger/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/path)badger/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/configuration)badger/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key)key +Configure the global key generation. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_body)key/disable_body +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_host)key/disable_host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_method)key/disable_method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_query)key/disable_query +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/hide)key/hide +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/headers)key/headers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys)cache_keys +Override the cache key generation matching the pattern. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_body)cache_keys/disable_body +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_host)cache_keys/disable_host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_method)cache_keys/disable_method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_query)cache_keys/disable_query +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/hide)cache_keys/hide +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/headers)cache_keys/headers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts)nuts +Configure the Badger cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/url)nuts/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/path)nuts/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/configuration)nuts/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd)etcd +Enable the Etcd distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/url)etcd/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/path)etcd/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/configuration)etcd/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis)redis +Enable the Redis distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/url)redis/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/path)redis/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/configuration)redis/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric)olric +Enable the Olric distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/url)olric/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/path)olric/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/configuration)olric/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout)timeout +Time to live for a key, using time.duration. + +Timeout configuration to handle the cache provider and the reverse-proxy timeout. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout/backend)timeout/backend +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout/cache)timeout/cache +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#ttl)ttl +Time to live for a key, using time.duration. + +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#stale)stale +Time to live for a stale key, using time.duration. + +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#default_cache_control)default_cache_control +The default Cache-Control header value if none set by the upstream server. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_name)cache_name +The cache name to use in the Cache-Status response header. + +▸github.com/caddyserver/cache-handler + +``` +{▾ "log_level": "", "allowed_http_verbs": [""], "headers": [""], "badger": {▾ "found": false, "url": "", "path": "", "configuration": }, "key": {▾ "disable_body": false, "disable_host": false, "disable_method": false, "disable_query": false, "disable_scheme": false, "hash": false, "hide": false, "template": "", "headers": [""] }, "cache_keys": { + "": {▾ "disable_body": false, "disable_host": false, "disable_method": false } + }, "nuts": {▾ "url": "", "path": "", "configuration": }, "etcd": {▾ "url": "", "path": "", "configuration": }, "redis": {▾ "url": "", "path": "", "configuration": }, "olric": {▾ "url": "", "path": "", "configuration": }, "timeout": {▾ "backend": {▾ }, "cache": {▾ } }, "ttl": {▾ }, "stale": {▾ }, "default_cache_control": "", "cache_name": ""} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddyserver/cache-handler](https://github.com/caddyserver/cache-handler)** + +**Custom builds:**`xcaddy build --with github.com/caddyserver/cache-handler` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.handlers.cache allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#log_level)log_level +Logger level, fallback on caddy's one when not redefined. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#allowed_http_verbs)allowed_http_verbs +Allowed HTTP verbs to be cached by the system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#headers)headers +Headers to add to the cache key if they are present. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger)badger +Configure the Badger cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/found)badger/found +Found to determine if we can use that storage. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/url)badger/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/path)badger/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/configuration)badger/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key)key +Configure the global key generation. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_body)key/disable_body +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_host)key/disable_host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_method)key/disable_method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_query)key/disable_query +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_scheme)key/disable_scheme +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/hash)key/hash +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/hide)key/hide +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/template)key/template +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/headers)key/headers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys)cache_keys +Override the cache key generation matching the pattern. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_body)cache_keys/disable_body +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_host)cache_keys/disable_host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_method)cache_keys/disable_method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts)nuts +Configure the Badger cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/url)nuts/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/path)nuts/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/configuration)nuts/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd)etcd +Enable the Etcd distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/url)etcd/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/path)etcd/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/configuration)etcd/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis)redis +Enable the Redis distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/url)redis/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/path)redis/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/configuration)redis/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric)olric +Enable the Olric distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/url)olric/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/path)olric/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/configuration)olric/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout)timeout +Time to live for a key, using time.duration. + +Timeout configuration to handle the cache provider and the reverse-proxy timeout. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout/backend)timeout/backend +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout/cache)timeout/cache +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#ttl)ttl +Time to live for a key, using time.duration. + +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#stale)stale +Time to live for a stale key, using time.duration. + +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#default_cache_control)default_cache_control +The default Cache-Control header value if none set by the upstream server. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_name)cache_name +The cache name to use in the Cache-Status response header. + +▸github.com/darkweak/souin + +``` +{▾ "log_level": "", "allowed_http_verbs": [""], "headers": [""], "badger": {▾ "found": false, "url": "", "path": "", "configuration": }, "key": {▾ "disable_body": false, "disable_host": false, "disable_method": false, "disable_query": false, "disable_scheme": false, "hash": false, "hide": false, "template": "", "headers": [""] }, "cache_keys": [{ + {▾ }: {▾ "disable_body": false, "disable_host": false, "disable_method": false, "disable_query": false, "disable_scheme": false, "hash": false, "hide": false, "template": "", "headers": [""] } + }], "nats": {▾ "found": false, "url": "", "path": "", "configuration": }, "nuts": {▾ "found": false, "url": "", "path": "", "configuration": }, "otter": {▾ "found": false, "url": "", "path": "", "configuration": }, "etcd": {▾ "found": false, "url": "", "path": "", "configuration": }, "redis": {▾ "found": false, "url": "", "path": "", "configuration": }, "olric": {▾ "found": false, "url": "", "path": "", "configuration": }, "timeout": {▾ "backend": {▾ }, "cache": {▾ } }, "ttl": {▾ }, "simplefs": {▾ "found": false, "url": "", "path": "", "configuration": }, "stale": {▾ }, "storers": [""], "default_cache_control": "", "cache_name": ""} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/darkweak/souin](https://github.com/darkweak/souin)** + +**Custom builds:**`xcaddy build --with github.com/darkweak/souin/plugins/caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.handlers.cache development repository of the cache handler, allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#log_level)log_level +Logger level, fallback on caddy's one when not redefined. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#allowed_http_verbs)allowed_http_verbs +Allowed HTTP verbs to be cached by the system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#headers)headers +Headers to add to the cache key if they are present. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger)badger +Configure the Badger cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/found)badger/found +Found to determine if we can use that storage. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/url)badger/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/path)badger/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/configuration)badger/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key)key +Configure the global key generation. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_body)key/disable_body +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_host)key/disable_host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_method)key/disable_method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_query)key/disable_query +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_scheme)key/disable_scheme +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/hash)key/hash +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/hide)key/hide +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/template)key/template +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/headers)key/headers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys)cache_keys +Override the cache key generation matching the pattern. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_body)cache_keys/disable_body +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_host)cache_keys/disable_host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_method)cache_keys/disable_method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_query)cache_keys/disable_query +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_scheme)cache_keys/disable_scheme +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/hash)cache_keys/hash +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/hide)cache_keys/hide +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/template)cache_keys/template +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/headers)cache_keys/headers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nats)nats +Configure the Nats cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nats/found)nats/found +Found to determine if we can use that storage. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nats/url)nats/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nats/path)nats/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nats/configuration)nats/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts)nuts +Configure the Nuts cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/found)nuts/found +Found to determine if we can use that storage. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/url)nuts/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/path)nuts/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/configuration)nuts/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#otter)otter +Configure the Otter cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#otter/found)otter/found +Found to determine if we can use that storage. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#otter/url)otter/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#otter/path)otter/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#otter/configuration)otter/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd)etcd +Enable the Etcd distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/found)etcd/found +Found to determine if we can use that storage. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/url)etcd/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/path)etcd/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/configuration)etcd/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis)redis +Enable the Redis distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/found)redis/found +Found to determine if we can use that storage. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/url)redis/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/path)redis/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/configuration)redis/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric)olric +Enable the Olric distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/found)olric/found +Found to determine if we can use that storage. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/url)olric/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/path)olric/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/configuration)olric/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout)timeout +Time to live for a key, using time.duration. + +Timeout configuration to handle the cache provider and the reverse-proxy timeout. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout/backend)timeout/backend +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout/cache)timeout/cache +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#ttl)ttl +Time to live for a key, using time.duration. + +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#simplefs)simplefs +Configure the SimpleFS cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#simplefs/found)simplefs/found +Found to determine if we can use that storage. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#simplefs/url)simplefs/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#simplefs/path)simplefs/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#simplefs/configuration)simplefs/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#stale)stale +Time to live for a stale key, using time.duration. + +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#storers)storers +Storage providers chaining and order. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#default_cache_control)default_cache_control +The default Cache-Control header value if none set by the upstream server. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_name)cache_name +The cache name to use in the Cache-Status response header. + +▸github.com/darkweak/souin + +``` +{▾ "log_level": "", "allowed_http_verbs": [""], "headers": [""], "badger": {▾ "url": "", "path": "", "configuration": }, "key": {▾ "disable_body": false, "disable_host": false, "disable_method": false, "hide": false, "headers": [""] }, "cache_keys": { + "": {▾ "disable_body": false, "disable_host": false, "disable_method": false, "hide": false, "headers": [""] } + }, "nuts": {▾ "url": "", "path": "", "configuration": }, "etcd": {▾ "url": "", "path": "", "configuration": }, "redis": {▾ "url": "", "path": "", "configuration": }, "olric": {▾ "url": "", "path": "", "configuration": }, "timeout": {▾ "backend": {▾ }, "cache": {▾ } }, "ttl": {▾ }, "stale": {▾ }, "default_cache_control": "", "cache_name": ""} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/darkweak/souin](https://github.com/darkweak/souin)** + +**Custom builds:**`xcaddy build --with github.com/darkweak/souin/plugins/caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.handlers.cache development repository of the cache handler, allows the user to set up an HTTP cache system, RFC-7234 compliant and supports the tag based cache purge, distributed and not-distributed storage, key generation tweaking. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#log_level)log_level +Logger level, fallback on caddy's one when not redefined. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#allowed_http_verbs)allowed_http_verbs +Allowed HTTP verbs to be cached by the system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#headers)headers +Headers to add to the cache key if they are present. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger)badger +Configure the Badger cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/url)badger/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/path)badger/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#badger/configuration)badger/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key)key +Configure the global key generation. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_body)key/disable_body +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_host)key/disable_host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/disable_method)key/disable_method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/hide)key/hide +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#key/headers)key/headers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys)cache_keys +Override the cache key generation matching the pattern. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_body)cache_keys/disable_body +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_host)cache_keys/disable_host +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/disable_method)cache_keys/disable_method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/hide)cache_keys/hide +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_keys/headers)cache_keys/headers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts)nuts +Configure the Badger cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/url)nuts/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/path)nuts/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#nuts/configuration)nuts/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd)etcd +Enable the Etcd distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/url)etcd/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/path)etcd/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#etcd/configuration)etcd/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis)redis +Enable the Redis distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/url)redis/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/path)redis/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#redis/configuration)redis/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric)olric +Enable the Olric distributed cache storage. + +CacheProvider config + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/url)olric/url +URL to connect to the storage system. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/path)olric/path +Path to the configuration file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#olric/configuration)olric/configuration +Declare the cache provider directly in the Souin configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout)timeout +Time to live for a key, using time.duration. + +Timeout configuration to handle the cache provider and the reverse-proxy timeout. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout/backend)timeout/backend +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#timeout/cache)timeout/cache +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#ttl)ttl +Time to live for a key, using time.duration. + +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#stale)stale +Time to live for a stale key, using time.duration. + +Duration is the super object to wrap the duration and be able to parse it from the configuration + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#default_cache_control)default_cache_control +The default Cache-Control header value if none set by the upstream server. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cache#cache_name)cache_name +The cache name to use in the Cache-Status response header. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fhttp.handlers.cache&r=&sid=GVMGKAKP&qs=%7B%7D&cid=1885832) diff --git a/docs/caddy/modules/http.handlers.cerberus.md b/docs/caddy/modules/http.handlers.cerberus.md new file mode 100644 index 0000000..d53671b --- /dev/null +++ b/docs/caddy/modules/http.handlers.cerberus.md @@ -0,0 +1,158 @@ +Title: Module http.handlers.cerberus - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.cerberus + +Markdown Content: +Module http.handlers.cerberus - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.cerberus +============================= + + There is more than one module named **Module http.handlers.cerberus**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/sjtug/cerberus + +`{▾ "difficulty": 0, "drop": false, "max_pending": 0, "block_ttl": 0, "pending_ttl": 0, "max_mem_usage": 0, "cookie_name": "", "header_name": "", "title": "", "description": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sjtug/cerberus](https://github.com/sjtug/cerberus)** + +**Custom builds:**`xcaddy build --with github.com/sjtug/cerberus` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#difficulty)difficulty +Challenge difficulty (number of leading zeroes in the hash). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#drop)drop +When set to true, the handler will drop the connection instead of returning a 403 if the IP is blocked. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#max_pending)max_pending +MaxPending is the maximum number of pending (and failed) requests. Any IP block (/24 or /64) with more than this number of pending requests will be blocked. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#block_ttl)block_ttl +BlockTTL is the time to live for blocked IPs. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#pending_ttl)pending_ttl +PendingTTL is the time to live for pending requests when considering whether to block an IP. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#max_mem_usage)max_mem_usage +MaxMemUsage is the maximum memory usage for the pending and blocklist caches. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#cookie_name)cookie_name +CookieName is the name of the cookie used to store signed certificate. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#header_name)header_name +HeaderName is the name of the header used to store cerberus status ("PASS-BRIEF", "PASS-FULL", "BLOCK", "FAIL"). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#title)title +Title is the title of the challenge page. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cerberus#description)description +Description is the description of the challenge page. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.cgi.md b/docs/caddy/modules/http.handlers.cgi.md new file mode 100644 index 0000000..3f8a2c2 --- /dev/null +++ b/docs/caddy/modules/http.handlers.cgi.md @@ -0,0 +1,124 @@ +Title: Module http.handlers.cgi - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.cgi + +Markdown Content: +Module http.handlers.cgi - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.cgi +======================== + + There is more than one module named **Module http.handlers.cgi**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cgi#docs "Direct link") +------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/aksdb/caddy-cgi + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/aksdb/caddy-cgi](https://github.com/aksdb/caddy-cgi)** + +**Custom builds:**`xcaddy build --with github.com/aksdb/caddy-cgi/v2` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cgi#docs "Direct link") +------------------------------------------------------------------------------------------ + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.cookiecrypt.md b/docs/caddy/modules/http.handlers.cookiecrypt.md new file mode 100644 index 0000000..d1801c0 --- /dev/null +++ b/docs/caddy/modules/http.handlers.cookiecrypt.md @@ -0,0 +1,48 @@ +Title: Module http.handlers.cookiecrypt - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.cookiecrypt + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.cookiecrypt**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "key": "", "prefix": "", "allowlist": [""], "denylist": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sebdroid/cookiecrypt](https://github.com/sebdroid/cookiecrypt)** + +**Custom builds:**`xcaddy build --with github.com/sebdroid/cookiecrypt` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt#key)key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt#prefix)prefix +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt#allowlist)allowlist +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt#denylist)denylist +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.cookieflag.md b/docs/caddy/modules/http.handlers.cookieflag.md new file mode 100644 index 0000000..9ab7601 --- /dev/null +++ b/docs/caddy/modules/http.handlers.cookieflag.md @@ -0,0 +1,57 @@ +Title: Module http.handlers.cookieflag - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.cookieflag + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.cookieflag**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cookieflag#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "flags": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/teodorescuserban/caddy-cookieflag](https://github.com/teodorescuserban/caddy-cookieflag)** + +**Custom builds:**`xcaddy build --with github.com/teodorescuserban/caddy-cookieflag` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.cookieflag#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.handlers.cookieflag manipulate various flags (Secure, HttpOnly, ...) in the Set-Cookie reponse headers. + +Syntax: + +``` +cookieflag [] [(+|-)] { + + + - +} +``` + +[🔗](https://caddyserver.com/docs/modules/http.handlers.cookieflag#flags)flags +The list of cookie flags to be modified. + +Prepend the flag name with a `+` to add that flag ot with `-` to remove it + +| Flag | Description | +| --- | --- | +| secure | The `Secure` flag | +| httponly | The `HttpOnly` flag | diff --git a/docs/caddy/modules/http.handlers.copy_response.md b/docs/caddy/modules/http.handlers.copy_response.md new file mode 100644 index 0000000..4cbfc1a --- /dev/null +++ b/docs/caddy/modules/http.handlers.copy_response.md @@ -0,0 +1,48 @@ +Title: Module http.handlers.copy_response - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.copy_response + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.copy_response**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.copy_response#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾ "status_code": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.copy_response#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +http.handlers.copy_response is a special HTTP handler which may only be used within reverse_proxy's handle_response routes, to copy the proxy response. EXPERIMENTAL, subject to change. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.copy_response#status_code)status_code +To write the upstream response's body but with a different status code, set this field to the desired status code. + +WeakString is a type that unmarshals any JSON value as a string literal, with the following exceptions: + +1. actual string values are decoded as strings; and +2. null is decoded as empty string; + +and provides methods for getting the value as various primitive types. However, using this type removes any type safety as far as deserializing JSON is concerned. diff --git a/docs/caddy/modules/http.handlers.copy_response_headers.md b/docs/caddy/modules/http.handlers.copy_response_headers.md new file mode 100644 index 0000000..1af38db --- /dev/null +++ b/docs/caddy/modules/http.handlers.copy_response_headers.md @@ -0,0 +1,44 @@ +Title: Module http.handlers.copy_response_headers - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.copy_response_headers + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.copy_response_headers**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +`{▾ "include": [""], "exclude": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +http.handlers.copy_response_headers is a special HTTP handler which may only be used within reverse_proxy's handle_response routes, to copy headers from the proxy response. EXPERIMENTAL; subject to change. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers#include)include +A list of header fields to copy from the response. Cannot be defined at the same time as Exclude. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers#exclude)exclude +A list of header fields to skip copying from the response. Cannot be defined at the same time as Include. diff --git a/docs/caddy/modules/http.handlers.crowdsec.md b/docs/caddy/modules/http.handlers.crowdsec.md new file mode 100644 index 0000000..cba74b4 --- /dev/null +++ b/docs/caddy/modules/http.handlers.crowdsec.md @@ -0,0 +1,38 @@ +Title: Module http.handlers.crowdsec - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.crowdsec + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.crowdsec**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.crowdsec#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/hslatman/caddy-crowdsec-bouncer](https://github.com/hslatman/caddy-crowdsec-bouncer)** + +**Custom builds:**`xcaddy build --with github.com/hslatman/caddy-crowdsec-bouncer/http` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.crowdsec#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.handlers.crowdsec matches request IPs to CrowdSec decisions to (dis)allow access diff --git a/docs/caddy/modules/http.handlers.ct.md b/docs/caddy/modules/http.handlers.ct.md new file mode 100644 index 0000000..1faa087 --- /dev/null +++ b/docs/caddy/modules/http.handlers.ct.md @@ -0,0 +1,47 @@ +Title: Module http.handlers.ct - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.ct + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.ct**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.ct#docs "Direct link") +----------------------------------------------------------------------------------------- + +`{▾ "strict": false, "mime_types": [""], "platform": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/cubic3d/caddy-ct](https://github.com/cubic3d/caddy-ct)** + +**Custom builds:**`xcaddy build --with github.com/cubic3d/caddy-ct` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.ct#docs "Direct link") +----------------------------------------------------------------------------------------- + +http.handlers.ct allows to transpile YAML based configuration into a JSON ignition to be used with Flatcar or Fedora CoreOS. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ct#strict)strict +Fail on non critical errors (default: false) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ct#mime_types)mime_types +Only transpile specific MIME types (default: all) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ct#platform)platform +Only for dynamic data must be one of supported types by ct (default: none) diff --git a/docs/caddy/modules/http.handlers.defender.md b/docs/caddy/modules/http.handlers.defender.md new file mode 100644 index 0000000..5555a07 --- /dev/null +++ b/docs/caddy/modules/http.handlers.defender.md @@ -0,0 +1,230 @@ +Title: Module http.handlers.defender - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.defender + +Markdown Content: +Module http.handlers.defender - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.defender +============================= + + There is more than one module named **http.handlers.defender**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/jasonlovesdoggo/caddy-defender + +``` +{▾ "message": "", "url": "", "raw_responder": "", "ranges": [""], "whitelist": [""], "tarpit_config": {▾ "headers": { + "": "" + }, "timeout": 0, "bytes_per_second": 0, "code": 0 }, "serve_ignore": false} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/jasonlovesdoggo/caddy-defender](https://github.com/jasonlovesdoggo/caddy-defender)** + +**Custom builds:**`xcaddy build --with github.com/jasonlovesdoggo/caddy-defender` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.handlers.defender implements an HTTP middleware that enforces IP-based rules to protect your site from AIs/Scrapers. It allows blocking or manipulating requests based on client IP addresses using CIDR ranges or predefined ranges for services such as AWS, GCP, OpenAI, and GitHub Copilot. + +**JSON Configuration:** + +```json +{ + "handler": "defender", + "raw_responder": "block", + "ranges": ["openai", "10.0.0.0/8"], + "message": "Custom block message" // Only for 'custom' responder + } +``` + +**Caddyfile Syntax:** + +``` +defender { + ranges + message + } +``` + +Supported responder types: + +* `block`: Immediately block requests with 403 Forbidden +* `custom`: Return a custom message (requires `message` field) +* `drop`: Drops the connection +* `garbage`: Respond with random garbage data +* `redirect`: Redirect requests to a URL with 308 permanent redirect +* `tarpit`: Stream data at a slow, but configurable rate to stall bots and pollute AI training. + +For a list of predefined ranges, see the the [readme] [readme]: [https://github.com/JasonLovesDoggo/caddy-defender#embedded-ip-ranges](https://github.com/JasonLovesDoggo/caddy-defender#embedded-ip-ranges) + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#message)message +Message specifies the custom response message for 'custom' responder type. Required only when using 'custom' responder. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#url)url +URL specifies the custom URL to redirect clients to for 'redirect' responder type. Required only when using 'redirect' responder. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#raw_responder)raw_responder +RawResponder defines the response strategy for blocked requests. Required. Must be one of: "block", "custom", "drop", "garbage", "redirect", "tarpit" + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#ranges)ranges +Ranges specifies IP ranges to block, which can be either: + +* CIDR notations (e.g., "192.168.1.0/24") +* Predefined service keys (e.g., "openai", "aws") Default: + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#whitelist)whitelist +An optional whitelist of IP addresses to exclude from blocking. If empty, no IPs are whitelisted. NOTE: this only supports IP addresses, not ranges. Default: [] + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#tarpit_config)tarpit_config +An optional configuration for the 'tarpit' responder Default: {Headers: {}, timeout: 30s, ResponseCode: 200} + +Config holds the tarpit responder's configuration. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#tarpit_config/headers)tarpit_config/headers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#tarpit_config/timeout)tarpit_config/timeout +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#tarpit_config/bytes_per_second)tarpit_config/bytes_per_second +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#tarpit_config/code)tarpit_config/code +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#serve_ignore)serve_ignore +ServeIgnore specifies whether to serve a robots.txt file with a "Disallow: /" directive Default: false + +▸github.com/jasonlovesdoggo/caddy-defender + +`{▾ "additional_ranges": [""], "responder": {•••}, "responder_config": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/jasonlovesdoggo/caddy-defender](https://github.com/jasonlovesdoggo/caddy-defender)** + +**Custom builds:**`xcaddy build --with github.com/jasonlovesdoggo/caddy-defender` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.handlers.defender implements an HTTP middleware that enforces IP-based rules. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#additional_ranges)additional_ranges +Additional IP ranges specified by the user + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#responder)responder +Responder backend to use Use concrete responder type for JSON + +Fulfilled by modules in namespace: **undefined** + +[🔗](https://caddyserver.com/docs/modules/http.handlers.defender#responder_config)responder_config +There are no docs for this property. + +Fulfilled by modules in namespace: **undefined** + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.discord.md b/docs/caddy/modules/http.handlers.discord.md new file mode 100644 index 0000000..9682778 --- /dev/null +++ b/docs/caddy/modules/http.handlers.discord.md @@ -0,0 +1,128 @@ +Title: Module http.handlers.discord - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.discord + +Markdown Content: +Module http.handlers.discord - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.discord +============================ + + There is more than one module named **Module http.handlers.discord**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.discord#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/enum-gg/caddy-discord + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/enum-gg/caddy-discord](https://github.com/enum-gg/caddy-discord)** + +**Custom builds:**`xcaddy build --with github.com/enum-gg/caddy-discord` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.discord#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.handlers.discord is used in combination with http.authentication.providers.discord to provide an authentication layer based on a Discord identity. + +See [https://caddyserver.com/docs/modules/http.authentication.providers.discord](https://caddyserver.com/docs/modules/http.authentication.providers.discord) or [https://github.com/enum-gg/caddy-discord](https://github.com/enum-gg/caddy-discord) + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.dns01proxy.md b/docs/caddy/modules/http.handlers.dns01proxy.md new file mode 100644 index 0000000..0ac843f --- /dev/null +++ b/docs/caddy/modules/http.handlers.dns01proxy.md @@ -0,0 +1,109 @@ +Title: Module http.handlers.dns01proxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.dns01proxy + +Markdown Content: +[🔗](https://caddyserver.com/docs/modules/http.handlers.dns01proxy#dns)dns +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.dns01proxy#dns/provider)dns/provider +The DNS provider for publishing DNS-01 responses. + +Fulfilled by modules in namespace: **dns.providers** + +* [acmedns](https://caddyserver.com/docs/modules/dns.providers.acmedns)Non-standard +* [acmeproxy](https://caddyserver.com/docs/modules/dns.providers.acmeproxy)Non-standard +* [alidns](https://caddyserver.com/docs/modules/dns.providers.alidns)Non-standard +* [azure](https://caddyserver.com/docs/modules/dns.providers.azure)Non-standard +* [bunny](https://caddyserver.com/docs/modules/dns.providers.bunny)Non-standard +* [civo](https://caddyserver.com/docs/modules/dns.providers.civo)Non-standard +* [cloudflare](https://caddyserver.com/docs/modules/dns.providers.cloudflare)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [ddnss](https://caddyserver.com/docs/modules/dns.providers.ddnss)Non-standard +* [desec](https://caddyserver.com/docs/modules/dns.providers.desec)Non-standard +* [digitalocean](https://caddyserver.com/docs/modules/dns.providers.digitalocean)Non-standard +* [dinahosting](https://caddyserver.com/docs/modules/dns.providers.dinahosting)Non-standard +* [directadmin](https://caddyserver.com/docs/modules/dns.providers.directadmin)Non-standard +* [dnsexit](https://caddyserver.com/docs/modules/dns.providers.dnsexit)Non-standard +* [dnsimple](https://caddyserver.com/docs/modules/dns.providers.dnsimple)Non-standard +* [dnsmadeeasy](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy)Non-standard +* [dnspod](https://caddyserver.com/docs/modules/dns.providers.dnspod)Non-standard +* [domainnameshop](https://caddyserver.com/docs/modules/dns.providers.domainnameshop)Non-standard +* [dreamhost](https://caddyserver.com/docs/modules/dns.providers.dreamhost)Non-standard +* [duckdns](https://caddyserver.com/docs/modules/dns.providers.duckdns)Non-standard +* [dynu](https://caddyserver.com/docs/modules/dns.providers.dynu)Non-standard +* [easydns](https://caddyserver.com/docs/modules/dns.providers.easydns)Non-standard +* [edgeone](https://caddyserver.com/docs/modules/dns.providers.edgeone)Non-standard +* [gandi](https://caddyserver.com/docs/modules/dns.providers.gandi)Non-standard +* [glesys](https://caddyserver.com/docs/modules/dns.providers.glesys)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [google_domains](https://caddyserver.com/docs/modules/dns.providers.google_domains)Non-standard +* [googleclouddns](https://caddyserver.com/docs/modules/dns.providers.googleclouddns)Non-standard +* [he](https://caddyserver.com/docs/modules/dns.providers.he)Non-standard +* [hetzner](https://caddyserver.com/docs/modules/dns.providers.hetzner)Non-standard +* [hexonet](https://caddyserver.com/docs/modules/dns.providers.hexonet)Non-standard +* [hosttech](https://caddyserver.com/docs/modules/dns.providers.hosttech)Non-standard +* [huaweicloud](https://caddyserver.com/docs/modules/dns.providers.huaweicloud)Non-standard +* [immosquare](https://caddyserver.com/docs/modules/dns.providers.immosquare)Non-standard +* [infomaniak](https://caddyserver.com/docs/modules/dns.providers.infomaniak)Non-standard +* [inwx](https://caddyserver.com/docs/modules/dns.providers.inwx)Non-standard +* [ionos](https://caddyserver.com/docs/modules/dns.providers.ionos)Non-standard +* [katapult](https://caddyserver.com/docs/modules/dns.providers.katapult)Non-standard +* [leaseweb](https://caddyserver.com/docs/modules/dns.providers.leaseweb)Non-standard +* [lego_deprecated](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [loopia](https://caddyserver.com/docs/modules/dns.providers.loopia)Non-standard +* [mailinabox](https://caddyserver.com/docs/modules/dns.providers.mailinabox)Non-standard +* [metaname](https://caddyserver.com/docs/modules/dns.providers.metaname)Non-standard +* [namecheap](https://caddyserver.com/docs/modules/dns.providers.namecheap)Non-standard +* [namedotcom](https://caddyserver.com/docs/modules/dns.providers.namedotcom)Non-standard +* [namesilo](https://caddyserver.com/docs/modules/dns.providers.namesilo)Non-standard +* [nanelo](https://caddyserver.com/docs/modules/dns.providers.nanelo)Non-standard +* [neoserv](https://caddyserver.com/docs/modules/dns.providers.neoserv)Non-standard +* [netcup](https://caddyserver.com/docs/modules/dns.providers.netcup)Non-standard +* [netlify](https://caddyserver.com/docs/modules/dns.providers.netlify)Non-standard +* [njalla](https://caddyserver.com/docs/modules/dns.providers.njalla)Non-standard +* [openstack-designate](https://caddyserver.com/docs/modules/dns.providers.openstack-designate)Non-standard +* [ovh](https://caddyserver.com/docs/modules/dns.providers.ovh)Non-standard +* [porkbun](https://caddyserver.com/docs/modules/dns.providers.porkbun)Non-standard +* [powerdns](https://caddyserver.com/docs/modules/dns.providers.powerdns)Non-standard +* [rfc2136](https://caddyserver.com/docs/modules/dns.providers.rfc2136)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [scaleway](https://caddyserver.com/docs/modules/dns.providers.scaleway)Non-standard +* [selectel](https://caddyserver.com/docs/modules/dns.providers.selectel)Non-standard +* [spaceship](https://caddyserver.com/docs/modules/dns.providers.spaceship)Non-standard +* [tencentcloud](https://caddyserver.com/docs/modules/dns.providers.tencentcloud)Non-standard +* [transip](https://caddyserver.com/docs/modules/dns.providers.transip)Non-standard +* [vercel](https://caddyserver.com/docs/modules/dns.providers.vercel)Non-standard +* [vultr](https://caddyserver.com/docs/modules/dns.providers.vultr)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.dns01proxy#dns/ttl)dns/ttl +The TTL to use in DNS TXT records when answering challenges. Optional. Not usually needed. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.dns01proxy#dns/resolvers)dns/resolvers +Custom DNS resolvers to prefer over system or built-in defaults. Set this to a public resolver if you are using split-horizon DNS. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.dns01proxy#accounts)accounts +Configures HTTP basic authentication and the domains for which each user can get TLS certificates. + +(During provisioning, this is used to fill in [Authentication] and [ClientRegistry].) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.dns01proxy#accounts/user_id)accounts/user_id +Identifies the client to which this policy applies. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.dns01proxy#accounts/allow_domains)accounts/allow_domains +Determines the domains for which the user can get TLS certificates. This largely follows Smallstep's domain name rules: [https://smallstep.com/docs/step-ca/policies/#domain-names](https://smallstep.com/docs/step-ca/policies/#domain-names) + +Due to a limitation in ACME and DNS-01, allowing a domain alsow allows wildcard certificates for that domain. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.dns01proxy#accounts/deny_domains)accounts/deny_domains +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.dns01proxy#accounts/password)accounts/password +The user's password, hashed using `caddy hash-password`. Optional. If omitted, then clients must be authenticated by an `http.handlers.authentication` instance earlier in the handler chain. diff --git a/docs/caddy/modules/http.handlers.dnsfetcher.md b/docs/caddy/modules/http.handlers.dnsfetcher.md new file mode 100644 index 0000000..08265c8 --- /dev/null +++ b/docs/caddy/modules/http.handlers.dnsfetcher.md @@ -0,0 +1,42 @@ +Title: Module http.handlers.dnsfetcher - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.dnsfetcher + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.dnsfetcher**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "type": "", "name": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/anthemaker/caddy-dns-fetcher](https://github.com/anthemaker/caddy-dns-fetcher)** + +**Custom builds:**`xcaddy build --with github.com/anthemaker/caddy-dns-fetcher` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher#docs "Direct link") +------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher#type)type +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher#name)name +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.encode.md b/docs/caddy/modules/http.handlers.encode.md new file mode 100644 index 0000000..46a03b9 --- /dev/null +++ b/docs/caddy/modules/http.handlers.encode.md @@ -0,0 +1,159 @@ +Title: Module http.handlers.encode - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.encode + +Markdown Content: +Module http.handlers.encode - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.encode +=========================== + + There is more than one module named **Module http.handlers.encode**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.encode#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +``` +{▾ "encodings": {•••}, "prefer": [""], "minimum_length": 0, "match": {▾ "status_code": [0], "headers": { + "": [""] + } }} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.encode#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.handlers.encode is a middleware which can encode responses. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.encode#encodings)encodings +Selection of compression algorithms to choose from. The best one will be chosen based on the client's Accept-Encoding header. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.encoders** + +* [gzip](https://caddyserver.com/docs/modules/http.encoders.gzip) +* [zstd](https://caddyserver.com/docs/modules/http.encoders.zstd) +* [br](https://caddyserver.com/docs/modules/http.encoders.br)Non-standard +* [br](https://caddyserver.com/docs/modules/http.encoders.br)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.encode#prefer)prefer +If the client has no strong preference, choose these encodings in order. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.encode#minimum_length)minimum_length +Only encode responses that are at least this many bytes long. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.encode#match)match +Only encode responses that match against this ResponseMmatcher. The default is a collection of text-based Content-Type headers. + +ResponseMatcher is a type which can determine if an HTTP response matches some criteria. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.encode#match/status_code)match/status_code +If set, one of these status codes would be required. A one-digit status can be used to represent all codes in that class (e.g. 3 for all 3xx codes). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.encode#match/headers)match/headers +If set, each header specified must be one of the specified values, with the same logic used by the [request header matcher](https://caddyserver.com/docs/json/apps/http/servers/routes/match/header/). + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.error.md b/docs/caddy/modules/http.handlers.error.md new file mode 100644 index 0000000..1d9c88c --- /dev/null +++ b/docs/caddy/modules/http.handlers.error.md @@ -0,0 +1,53 @@ +Title: Module http.handlers.error - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.error + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.error**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.error#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾ "error": "", "status_code": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.error#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.handlers.error implements a simple handler that returns an error. This handler returns an error value, but does not write a response. This is useful when you want the server to act as if an error occurred; for example, to invoke your custom error handling logic. + +Since this handler does not write a response, the error information is for use by the server to know how to handle the error. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.error#error)error +The error message. Optional. Default is no error message. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.error#status_code)status_code +The recommended HTTP status code. Can be either an integer or a string if placeholders are needed. Optional. Default is 500. + +WeakString is a type that unmarshals any JSON value as a string literal, with the following exceptions: + +1. actual string values are decoded as strings; and +2. null is decoded as empty string; + +and provides methods for getting the value as various primitive types. However, using this type removes any type safety as far as deserializing JSON is concerned. diff --git a/docs/caddy/modules/http.handlers.esi.md b/docs/caddy/modules/http.handlers.esi.md new file mode 100644 index 0000000..d966e67 --- /dev/null +++ b/docs/caddy/modules/http.handlers.esi.md @@ -0,0 +1,38 @@ +Title: Module http.handlers.esi - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.esi + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.esi**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.esi#docs "Direct link") +------------------------------------------------------------------------------------------ + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/darkweak/go-esi](https://github.com/darkweak/go-esi)** + +**Custom builds:**`xcaddy build --with github.com/darkweak/go-esi/middleware/caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.esi#docs "Direct link") +------------------------------------------------------------------------------------------ + +http.handlers.esi to handle, process and serve ESI tags. diff --git a/docs/caddy/modules/http.handlers.exec.md b/docs/caddy/modules/http.handlers.exec.md new file mode 100644 index 0000000..5c62f83 --- /dev/null +++ b/docs/caddy/modules/http.handlers.exec.md @@ -0,0 +1,62 @@ +Title: Module http.handlers.exec - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.exec + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.exec**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.exec#docs "Direct link") +------------------------------------------------------------------------------------------- + +`{▾ "command": "", "args": [""], "directory": "", "foreground": false, "timeout": "", "at": [""], "log": {•••}, "err_log": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/abiosoft/caddy-exec](https://github.com/abiosoft/caddy-exec)** + +**Custom builds:**`xcaddy build --with github.com/abiosoft/caddy-exec` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.exec#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.handlers.exec implements an HTTP handler that runs shell command. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.exec#command)command +The command to run. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.exec#args)args +The command args. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.exec#directory)directory +The directory to run the command from. Defaults to current directory. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.exec#foreground)foreground +If the command should run in the foreground. By default, commands run in the background and doesn't affect Caddy. Setting this makes the command run in the foreground. Note that failure of a startup command running in the foreground may prevent Caddy from starting. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.exec#timeout)timeout +Timeout for the command. The command will be killed after timeout has elapsed if it is still running. Defaults to 10s. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.exec#at)at +When the command should run. This can contain either of "startup" or "shutdown". + +[🔗](https://caddyserver.com/docs/modules/http.handlers.exec#log)log +Standard output log. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.exec#err_log)err_log +Standard error log. diff --git a/docs/caddy/modules/http.handlers.extra_placeholders.md b/docs/caddy/modules/http.handlers.extra_placeholders.md new file mode 100644 index 0000000..668fffe --- /dev/null +++ b/docs/caddy/modules/http.handlers.extra_placeholders.md @@ -0,0 +1,192 @@ +Title: Module http.handlers.extra_placeholders - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.extra_placeholders + +Markdown Content: +Module http.handlers.extra_placeholders - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.extra_placeholders +======================================= + + There is more than one module named **Module http.handlers.extra_placeholders**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders#docs "Direct link") +--------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/steffenbusch/caddy-extra-placeholders + +`{▾ "rand_int_min": 0, "rand_int_max": 0, "time_format_custom": "", "disable_loadavg_placeholders": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/steffenbusch/caddy-extra-placeholders](https://github.com/steffenbusch/caddy-extra-placeholders)** + +**Custom builds:**`xcaddy build --with github.com/steffenbusch/caddy-extra-placeholders` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders#docs "Direct link") +--------------------------------------------------------------------------------------------------------- + +http.handlers.extra_placeholders provides additional placeholders that can be used within Caddy configurations: + +| Placeholder | Description | +| --- | --- | +| `{extra.caddy.version.simple}` | Simple version information of the Caddy server (e.g., v2.8.4). | +| `{extra.caddy.version.full}` | Full version information of the Caddy server (e.g., v2.8.4 h1:q3pe...k=). | +| `{extra.rand.float}` | Random float value between 0.0 and 1.0. | +| `{extra.rand.int}` | Random integer value between the configured min and max (default is 0 to 100). | +| `{extra.loadavg.1}` | System load average over the last 1 minute. | +| `{extra.loadavg.5}` | System load average over the last 5 minutes. | +| `{extra.loadavg.15}` | System load average over the last 15 minutes. | +| `{extra.hostinfo.uptime}` | System uptime in a human-readable format. | +| `{extra.newline}` | Newline character (\n). | + +Current local time placeholders: + +| Placeholder | Description | +| --- | --- | +| `{extra.time.now.month}` | Current month as an integer (e.g., 5 for May). | +| `{extra.time.now.month_padded}` | Current month as a zero-padded string (e.g., "05" for May). | +| `{extra.time.now.day}` | Current day of the month as an integer. | +| `{extra.time.now.day_padded}` | Current day of the month as a zero-padded string. | +| `{extra.time.now.hour}` | Current hour in 24-hour format as an integer. | +| `{extra.time.now.hour_padded}` | Current hour in 24-hour format as a zero-padded string. | +| `{extra.time.now.minute}` | Current minute as an integer. | +| `{extra.time.now.minute_padded}` | Current minute as a zero-padded string. | +| `{extra.time.now.second}` | Current second as an integer. | +| `{extra.time.now.second_padded}` | Current second as a zero-padded string. | +| `{extra.time.now.timezone_offset}` | Current timezone offset from UTC (e.g., +0200). | +| `{extra.time.now.timezone_name}` | Current timezone abbreviation (e.g., CEST). | +| `{extra.time.now.iso_week}` | Current ISO week number of the year. | +| `{extra.time.now.iso_year}` | ISO year corresponding to the current ISO week. | +| `{extra.time.now.weekday_int}` | Current day of the week as an integer (Sunday = 0, Monday = 1, ..., Saturday = 6). | +| `{extra.time.now.custom}` | Current time in a custom format, configurable via the `time_format_custom` directive. | + +UTC equivalents of the current time placeholders (with `.utc` added): + +| Placeholder | Description | +| --- | --- | +| `{extra.time.now.utc.month}` | Current month in UTC as an integer (e.g., 5 for May). | +| `{extra.time.now.utc.month_padded}` | Current month in UTC as a zero-padded string (e.g., "05" for May). | +| `{extra.time.now.utc.day}` | Current day of the month in UTC as an integer. | +| `{extra.time.now.utc.day_padded}` | Current day of the month in UTC as a zero-padded string. | +| `{extra.time.now.utc.hour}` | Current hour in UTC in 24-hour format as an integer. | +| `{extra.time.now.utc.hour_padded}` | Current hour in UTC in 24-hour format as a zero-padded string. | +| `{extra.time.now.utc.minute}` | Current minute in UTC as an integer. | +| `{extra.time.now.utc.minute_padded}` | Current minute in UTC as a zero-padded string. | +| `{extra.time.now.utc.second}` | Current second in UTC as an integer. | +| `{extra.time.now.utc.second_padded}` | Current second in UTC as a zero-padded string. | +| `{extra.time.now.utc.timezone_offset}` | UTC timezone offset (always +0000). | +| `{extra.time.now.utc.timezone_name}` | UTC timezone abbreviation (always UTC). | +| `{extra.time.now.utc.iso_week}` | Current ISO week number of the year in UTC. | +| `{extra.time.now.utc.iso_year}` | ISO year corresponding to the current ISO week in UTC. | +| `{extra.time.now.utc.weekday_int}` | Current day of the week in UTC as an integer (Sunday = 0, Monday = 1, ..., Saturday = 6). | +| `{extra.time.now.utc.custom}` | Current UTC time in a custom format, configurable via the `time_format_custom` directive. | + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders#rand_int_min)rand_int_min +RandIntMin defines the minimum value (inclusive) for the `{extra.rand.int}` placeholder. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders#rand_int_max)rand_int_max +RandIntMax defines the maximum value (inclusive) for the `{extra.rand.int}` placeholder. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders#time_format_custom)time_format_custom +TimeFormatCustom specifies a custom time format for the `{extra.time.now.custom}` and `{extra.time.now.utc.custom}` placeholder. If left empty, a default format of "2006-01-02 15:04:05" is used. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders#disable_loadavg_placeholders)disable_loadavg_placeholders +DisableLoadavgPlaceholders determines whether to disable setting load average placeholders. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.file_server.md b/docs/caddy/modules/http.handlers.file_server.md new file mode 100644 index 0000000..e61712c --- /dev/null +++ b/docs/caddy/modules/http.handlers.file_server.md @@ -0,0 +1,109 @@ +Title: Module http.handlers.file_server - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.file_server + +Markdown Content: +http.handlers.file_server implements a handler that serves static files. + +The path of the file to serve is constructed by joining the site root and the sanitized request path. Any and all files within the root and links with targets outside the site root may therefore be accessed. For example, with a site root of `/www`, requests to `/foo/bar.txt` will serve the file at `/www/foo/bar.txt`. + +The request path is sanitized using the Go standard library's path.Clean() function ([https://pkg.go.dev/path#Clean](https://pkg.go.dev/path#Clean)) before being joined to the root. Request paths must be valid and well-formed. + +For requests that access directories instead of regular files, Caddy will attempt to serve an index file if present. For example, a request to `/dir/` will attempt to serve `/dir/index.html` if it exists. The index file names to try are configurable. If a requested directory does not have an index file, Caddy writes a 404 response. Alternatively, file browsing can be enabled with the "browse" parameter which shows a list of files when directories are requested if no index file is present. If "browse" is enabled, Caddy may serve a JSON array of the directory listing when the `Accept` header mentions `application/json` with the following structure: + +``` +[{ + "name": "", + "size": 0, + "url": "", + "mod_time": "", + "mode": 0, + "is_dir": false, + "is_symlink": false +}] +``` + +with the `url` being relative to the request path and `mod_time` in the RFC 3339 format with sub-second precision. For any other value for the `Accept` header, the respective browse template is executed with `Content-Type: text/html`. + +By default, this handler will canonicalize URIs so that requests to directories end with a slash, but requests to regular files do not. This is enforced with HTTP redirects automatically and can be disabled. Canonicalization redirects are not issued, however, if a URI rewrite modified the last component of the path (the filename). + +This handler sets the Etag and Last-Modified headers for static files. It does not perform MIME sniffing to determine Content-Type based on contents, but does use the extension (if known); see the Go docs for details: [https://pkg.go.dev/mime#TypeByExtension](https://pkg.go.dev/mime#TypeByExtension) + +The file server properly handles requests with If-Match, If-Unmodified-Since, If-Modified-Since, If-None-Match, Range, and If-Range headers. It includes the file's modification time in the Last-Modified header of the response. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#fs)fs +The file system implementation to use. By default, Caddy uses the local disk file system. + +if a non default filesystem is used, it must be first be registered in the globals section. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#root)root +The path to the root of the site. Default is `{http.vars.root}` if set, or current working directory otherwise. This should be a trusted value. + +Note that a site root is not a sandbox. Although the file server does sanitize the request URI to prevent directory traversal, files (including links) within the site root may be directly accessed based on the request path. Files and folders within the root should be secure and trustworthy. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#hide)hide +A list of files or folders to hide; the file server will pretend as if they don't exist. Accepts globular patterns like `*.ext` or `/foo/*/bar` as well as placeholders. Because site roots can be dynamic, this list uses file system paths, not request paths. To clarify, the base of relative paths is the current working directory, NOT the site root. + +Entries without a path separator (`/` or `\` depending on OS) will match any file or directory of that name regardless of its path. To hide only a specific file with a name that may not be unique, always use a path separator. For example, to hide all files or folder trees named "hidden", put "hidden" in the list. To hide only ./hidden, put "./hidden" in the list. + +When possible, all paths are resolved to their absolute form before comparisons are made. For maximum clarity and explictness, use complete, absolute paths; or, for greater portability, use relative paths instead. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#index_names)index_names +The names of files to try as index files if a folder is requested. Default: index.html, index.txt. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#browse)browse +Enables file listings if a directory was requested and no index file is present. + +Browse configures directory browsing. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#browse/template_file)browse/template_file +Filename of the template to use instead of the embedded browse template. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#browse/reveal_symlinks)browse/reveal_symlinks +Determines whether or not targets of symlinks should be revealed. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#browse/sort)browse/sort +Override the default sort. It includes the following options: + +* sort_by: name(default), namedirfirst, size, time +* order: asc(default), desc eg.: +* `sort time desc` will sort by time in descending order +* `sort size` will sort by size in ascending order The first option must be `sort_by` and the second option must be `order` (if exists). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#browse/file_limit)browse/file_limit +FileLimit limits the number of up to n DirEntry values in directory order. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#canonical_uris)canonical_uris +Use redirects to enforce trailing slashes for directories, or to remove trailing slash from URIs for files. Default is true. + +Canonicalization will not happen if the last element of the request's path (the filename) is changed in an internal rewrite, to avoid clobbering the explicit rewrite with implicit behavior. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#status_code)status_code +Override the status code written when successfully serving a file. Particularly useful when explicitly serving a file as display for an error, like a 404 page. A placeholder may be used. By default, the status code will typically be 200, or 206 for partial content. + +WeakString is a type that unmarshals any JSON value as a string literal, with the following exceptions: + +1. actual string values are decoded as strings; and +2. null is decoded as empty string; + +and provides methods for getting the value as various primitive types. However, using this type removes any type safety as far as deserializing JSON is concerned. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#pass_thru)pass_thru +If pass-thru mode is enabled and a requested file is not found, it will invoke the next handler in the chain instead of returning a 404 error. By default, this is false (disabled). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#precompressed)precompressed +Selection of encoders to use to check for precompressed files. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.precompressed** + +* [br](https://caddyserver.com/docs/modules/http.precompressed.br) +* [gzip](https://caddyserver.com/docs/modules/http.precompressed.gzip) +* [zstd](https://caddyserver.com/docs/modules/http.precompressed.zstd) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#precompressed_order)precompressed_order +If the client has no strong preference (q-factor), choose these encodings in order. If no order specified here, the first encoding from the Accept-Encoding header that both client and server support is used + +[🔗](https://caddyserver.com/docs/modules/http.handlers.file_server#etag_file_extensions)etag_file_extensions +List of file extensions to try to read Etags from. If set, file Etags will be read from sidecar files with any of these suffixes, instead of generating our own Etag. diff --git a/docs/caddy/modules/http.handlers.filter.md b/docs/caddy/modules/http.handlers.filter.md new file mode 100644 index 0000000..f426e9d --- /dev/null +++ b/docs/caddy/modules/http.handlers.filter.md @@ -0,0 +1,53 @@ +Title: Module http.handlers.filter - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.filter + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.filter**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.filter#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "content_type": "", "search_pattern": "", "replacement": "", "max_size": 0, "path": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sjtug/caddy2-filter](https://github.com/sjtug/caddy2-filter)** + +**Custom builds:**`xcaddy build --with github.com/sjtug/caddy2-filter` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.filter#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.handlers.filter implements an HTTP handler that writes the visitor's IP address to a file or stream. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.filter#content_type)content_type +Regex to specify which kind of response should we filter + +[🔗](https://caddyserver.com/docs/modules/http.handlers.filter#search_pattern)search_pattern +Regex to specify which pattern to look up + +[🔗](https://caddyserver.com/docs/modules/http.handlers.filter#replacement)replacement +A string specifying the string used to replace matches + +[🔗](https://caddyserver.com/docs/modules/http.handlers.filter#max_size)max_size +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.filter#path)path +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.floaty.md b/docs/caddy/modules/http.handlers.floaty.md new file mode 100644 index 0000000..57070d2 --- /dev/null +++ b/docs/caddy/modules/http.handlers.floaty.md @@ -0,0 +1,49 @@ +Title: Module http.handlers.floaty - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.floaty + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.floaty**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.floaty#docs "Direct link") +--------------------------------------------------------------------------------------------- + +``` +{▾ "values": { + "": {▾ "length": 0, "duration": 0 } + }} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ltgcgo/floaty](https://github.com/ltgcgo/floaty)** + +**Custom builds:**`xcaddy build --with github.com/ltgcgo/floaty` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.floaty#docs "Direct link") +--------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.floaty#values)values +Initialize! + +[🔗](https://caddyserver.com/docs/modules/http.handlers.floaty#values/length)values/length +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.floaty#values/duration)values/duration +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.forward_auth.md b/docs/caddy/modules/http.handlers.forward_auth.md new file mode 100644 index 0000000..7aca9cb --- /dev/null +++ b/docs/caddy/modules/http.handlers.forward_auth.md @@ -0,0 +1,41 @@ +Title: Module http.handlers.forward_auth - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.forward_auth + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.forward_auth**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.forward_auth#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +`{▾ "url": "", "auth_response_forward_headers": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/firecow/caddy-forward-auth](https://github.com/firecow/caddy-forward-auth)** + +**Custom builds:**`xcaddy build --with github.com/firecow/caddy-forward-auth` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.forward_auth#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.forward_auth#url)url +There are no docs for this property. + +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.gbox.md b/docs/caddy/modules/http.handlers.gbox.md new file mode 100644 index 0000000..27569c0 --- /dev/null +++ b/docs/caddy/modules/http.handlers.gbox.md @@ -0,0 +1,364 @@ +Title: Module http.handlers.gbox - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.gbox + +Markdown Content: +http.handlers.gbox implements an HTTP handler as a GraphQL reverse proxy server for caching, securing, and monitoring. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#rewrite_raw)rewrite_raw +Rewrite + +Fulfilled by modules in namespace: **http.handlers** + +* [acme_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) +* [authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) +* [copy_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) +* [copy_response_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) +* [encode](https://caddyserver.com/docs/modules/http.handlers.encode) +* [error](https://caddyserver.com/docs/modules/http.handlers.error) +* [file_server](https://caddyserver.com/docs/modules/http.handlers.file_server) +* [headers](https://caddyserver.com/docs/modules/http.handlers.headers) +* [intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) +* [invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) +* [log_append](https://caddyserver.com/docs/modules/http.handlers.log_append) +* [map](https://caddyserver.com/docs/modules/http.handlers.map) +* [metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) +* [push](https://caddyserver.com/docs/modules/http.handlers.push) +* [request_body](https://caddyserver.com/docs/modules/http.handlers.request_body) +* [reverse_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) +* [rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) +* [static_response](https://caddyserver.com/docs/modules/http.handlers.static_response) +* [subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) +* [templates](https://caddyserver.com/docs/modules/http.handlers.templates) +* [tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) +* [vars](https://caddyserver.com/docs/modules/http.handlers.vars) +* [adobe_usage_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [authelia](https://caddyserver.com/docs/modules/http.handlers.authelia)Non-standard +* [authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator)Non-standard +* [authp](https://caddyserver.com/docs/modules/http.handlers.authp)Non-standard +* [authz](https://caddyserver.com/docs/modules/http.handlers.authz)Non-standard +* [basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp)Non-standard +* [blockaws](https://caddyserver.com/docs/modules/http.handlers.blockaws)Non-standard +* [bot_barrier](https://caddyserver.com/docs/modules/http.handlers.bot_barrier)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cerberus](https://caddyserver.com/docs/modules/http.handlers.cerberus)Non-standard +* [cgi](https://caddyserver.com/docs/modules/http.handlers.cgi)Non-standard +* [cookiecrypt](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt)Non-standard +* [cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag)Non-standard +* [crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec)Non-standard +* [ct](https://caddyserver.com/docs/modules/http.handlers.ct)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [discord](https://caddyserver.com/docs/modules/http.handlers.discord)Non-standard +* [dns01proxy](https://caddyserver.com/docs/modules/http.handlers.dns01proxy)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher)Non-standard +* [esi](https://caddyserver.com/docs/modules/http.handlers.esi)Non-standard +* [exec](https://caddyserver.com/docs/modules/http.handlers.exec)Non-standard +* [extra_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders)Non-standard +* [filter](https://caddyserver.com/docs/modules/http.handlers.filter)Non-standard +* [floaty](https://caddyserver.com/docs/modules/http.handlers.floaty)Non-standard +* [forward_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth)Non-standard +* [gbox](https://caddyserver.com/docs/modules/http.handlers.gbox)Non-standard +* [geofence](https://caddyserver.com/docs/modules/http.handlers.geofence)Non-standard +* [geoip](https://caddyserver.com/docs/modules/http.handlers.geoip)Non-standard +* [geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2)Non-standard +* [git](https://caddyserver.com/docs/modules/http.handlers.git)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [grpc_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web)Non-standard +* [guard](https://caddyserver.com/docs/modules/http.handlers.guard)Non-standard +* [hmac](https://caddyserver.com/docs/modules/http.handlers.hmac)Non-standard +* [http_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache)Non-standard +* [i18n](https://caddyserver.com/docs/modules/http.handlers.i18n)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor)Non-standard +* [imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy)Non-standard +* [inspect](https://caddyserver.com/docs/modules/http.handlers.inspect)Non-standard +* [ip_filter](https://caddyserver.com/docs/modules/http.handlers.ip_filter)Non-standard +* [ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap)Non-standard +* [jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait)Non-standard +* [json_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse)Non-standard +* [jwt_issuer](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer)Non-standard +* [k8s_admission](https://caddyserver.com/docs/modules/http.handlers.k8s_admission)Non-standard +* [lambda](https://caddyserver.com/docs/modules/http.handlers.lambda)Non-standard +* [ldap_basic_auth](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth)Non-standard +* [listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy)Non-standard +* [lura](https://caddyserver.com/docs/modules/http.handlers.lura)Non-standard +* [mercure](https://caddyserver.com/docs/modules/http.handlers.mercure)Non-standard +* [minifier](https://caddyserver.com/docs/modules/http.handlers.minifier)Non-standard +* [mirror](https://caddyserver.com/docs/modules/http.handlers.mirror)Non-standard +* [myplugin](https://caddyserver.com/docs/modules/http.handlers.myplugin)Non-standard +* [nobots](https://caddyserver.com/docs/modules/http.handlers.nobots)Non-standard +* [oauth2_token_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection)Non-standard +* [olaf](https://caddyserver.com/docs/modules/http.handlers.olaf)Non-standard +* [olo_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature)Non-standard +* [openapi](https://caddyserver.com/docs/modules/http.handlers.openapi)Non-standard +* [openapi_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator)Non-standard +* [php](https://caddyserver.com/docs/modules/http.handlers.php)Non-standard +* [pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch)Non-standard +* [pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster)Non-standard +* [placeholder_dump](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump)Non-standard +* [plausible](https://caddyserver.com/docs/modules/http.handlers.plausible)Non-standard +* [pmtiles_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy)Non-standard +* [pocketbase](https://caddyserver.com/docs/modules/http.handlers.pocketbase)Non-standard +* [postauth2fa](https://caddyserver.com/docs/modules/http.handlers.postauth2fa)Non-standard +* [prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus)Non-standard +* [public_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix)Non-standard +* [quantity_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [realip](https://caddyserver.com/docs/modules/http.handlers.realip)Non-standard +* [redir_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns)Non-standard +* [replace_response](https://caddyserver.com/docs/modules/http.handlers.replace_response)Non-standard +* [request_body_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var)Non-standard +* [request_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug)Non-standard +* [request_id](https://caddyserver.com/docs/modules/http.handlers.request_id)Non-standard +* [s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [save](https://caddyserver.com/docs/modules/http.handlers.save)Non-standard +* [scion](https://caddyserver.com/docs/modules/http.handlers.scion)Non-standard +* [teapot](https://caddyserver.com/docs/modules/http.handlers.teapot)Non-standard +* [trace](https://caddyserver.com/docs/modules/http.handlers.trace)Non-standard +* [trapdoor](https://caddyserver.com/docs/modules/http.handlers.trapdoor)Non-standard +* [trojan](https://caddyserver.com/docs/modules/http.handlers.trojan)Non-standard +* [umami](https://caddyserver.com/docs/modules/http.handlers.umami)Non-standard +* [upload](https://caddyserver.com/docs/modules/http.handlers.upload)Non-standard +* [user_agent_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse)Non-standard +* [vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf_chaitin](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin)Non-standard +* [wafris](https://caddyserver.com/docs/modules/http.handlers.wafris)Non-standard +* [wake_on_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan)Non-standard +* [webdav](https://caddyserver.com/docs/modules/http.handlers.webdav)Non-standard +* [webhook](https://caddyserver.com/docs/modules/http.handlers.webhook)Non-standard +* [x_clacks_overhead](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#reverse_proxy)reverse_proxy +Reverse proxy + +Fulfilled by modules in namespace: **http.handlers** + +* [acme_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) +* [authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) +* [copy_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) +* [copy_response_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) +* [encode](https://caddyserver.com/docs/modules/http.handlers.encode) +* [error](https://caddyserver.com/docs/modules/http.handlers.error) +* [file_server](https://caddyserver.com/docs/modules/http.handlers.file_server) +* [headers](https://caddyserver.com/docs/modules/http.handlers.headers) +* [intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) +* [invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) +* [log_append](https://caddyserver.com/docs/modules/http.handlers.log_append) +* [map](https://caddyserver.com/docs/modules/http.handlers.map) +* [metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) +* [push](https://caddyserver.com/docs/modules/http.handlers.push) +* [request_body](https://caddyserver.com/docs/modules/http.handlers.request_body) +* [reverse_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) +* [rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) +* [static_response](https://caddyserver.com/docs/modules/http.handlers.static_response) +* [subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) +* [templates](https://caddyserver.com/docs/modules/http.handlers.templates) +* [tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) +* [vars](https://caddyserver.com/docs/modules/http.handlers.vars) +* [adobe_usage_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [authelia](https://caddyserver.com/docs/modules/http.handlers.authelia)Non-standard +* [authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator)Non-standard +* [authp](https://caddyserver.com/docs/modules/http.handlers.authp)Non-standard +* [authz](https://caddyserver.com/docs/modules/http.handlers.authz)Non-standard +* [basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp)Non-standard +* [blockaws](https://caddyserver.com/docs/modules/http.handlers.blockaws)Non-standard +* [bot_barrier](https://caddyserver.com/docs/modules/http.handlers.bot_barrier)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cerberus](https://caddyserver.com/docs/modules/http.handlers.cerberus)Non-standard +* [cgi](https://caddyserver.com/docs/modules/http.handlers.cgi)Non-standard +* [cookiecrypt](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt)Non-standard +* [cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag)Non-standard +* [crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec)Non-standard +* [ct](https://caddyserver.com/docs/modules/http.handlers.ct)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [discord](https://caddyserver.com/docs/modules/http.handlers.discord)Non-standard +* [dns01proxy](https://caddyserver.com/docs/modules/http.handlers.dns01proxy)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher)Non-standard +* [esi](https://caddyserver.com/docs/modules/http.handlers.esi)Non-standard +* [exec](https://caddyserver.com/docs/modules/http.handlers.exec)Non-standard +* [extra_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders)Non-standard +* [filter](https://caddyserver.com/docs/modules/http.handlers.filter)Non-standard +* [floaty](https://caddyserver.com/docs/modules/http.handlers.floaty)Non-standard +* [forward_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth)Non-standard +* [gbox](https://caddyserver.com/docs/modules/http.handlers.gbox)Non-standard +* [geofence](https://caddyserver.com/docs/modules/http.handlers.geofence)Non-standard +* [geoip](https://caddyserver.com/docs/modules/http.handlers.geoip)Non-standard +* [geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2)Non-standard +* [git](https://caddyserver.com/docs/modules/http.handlers.git)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [grpc_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web)Non-standard +* [guard](https://caddyserver.com/docs/modules/http.handlers.guard)Non-standard +* [hmac](https://caddyserver.com/docs/modules/http.handlers.hmac)Non-standard +* [http_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache)Non-standard +* [i18n](https://caddyserver.com/docs/modules/http.handlers.i18n)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor)Non-standard +* [imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy)Non-standard +* [inspect](https://caddyserver.com/docs/modules/http.handlers.inspect)Non-standard +* [ip_filter](https://caddyserver.com/docs/modules/http.handlers.ip_filter)Non-standard +* [ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap)Non-standard +* [jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait)Non-standard +* [json_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse)Non-standard +* [jwt_issuer](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer)Non-standard +* [k8s_admission](https://caddyserver.com/docs/modules/http.handlers.k8s_admission)Non-standard +* [lambda](https://caddyserver.com/docs/modules/http.handlers.lambda)Non-standard +* [ldap_basic_auth](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth)Non-standard +* [listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy)Non-standard +* [lura](https://caddyserver.com/docs/modules/http.handlers.lura)Non-standard +* [mercure](https://caddyserver.com/docs/modules/http.handlers.mercure)Non-standard +* [minifier](https://caddyserver.com/docs/modules/http.handlers.minifier)Non-standard +* [mirror](https://caddyserver.com/docs/modules/http.handlers.mirror)Non-standard +* [myplugin](https://caddyserver.com/docs/modules/http.handlers.myplugin)Non-standard +* [nobots](https://caddyserver.com/docs/modules/http.handlers.nobots)Non-standard +* [oauth2_token_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection)Non-standard +* [olaf](https://caddyserver.com/docs/modules/http.handlers.olaf)Non-standard +* [olo_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature)Non-standard +* [openapi](https://caddyserver.com/docs/modules/http.handlers.openapi)Non-standard +* [openapi_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator)Non-standard +* [php](https://caddyserver.com/docs/modules/http.handlers.php)Non-standard +* [pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch)Non-standard +* [pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster)Non-standard +* [placeholder_dump](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump)Non-standard +* [plausible](https://caddyserver.com/docs/modules/http.handlers.plausible)Non-standard +* [pmtiles_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy)Non-standard +* [pocketbase](https://caddyserver.com/docs/modules/http.handlers.pocketbase)Non-standard +* [postauth2fa](https://caddyserver.com/docs/modules/http.handlers.postauth2fa)Non-standard +* [prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus)Non-standard +* [public_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix)Non-standard +* [quantity_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [realip](https://caddyserver.com/docs/modules/http.handlers.realip)Non-standard +* [redir_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns)Non-standard +* [replace_response](https://caddyserver.com/docs/modules/http.handlers.replace_response)Non-standard +* [request_body_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var)Non-standard +* [request_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug)Non-standard +* [request_id](https://caddyserver.com/docs/modules/http.handlers.request_id)Non-standard +* [s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [save](https://caddyserver.com/docs/modules/http.handlers.save)Non-standard +* [scion](https://caddyserver.com/docs/modules/http.handlers.scion)Non-standard +* [teapot](https://caddyserver.com/docs/modules/http.handlers.teapot)Non-standard +* [trace](https://caddyserver.com/docs/modules/http.handlers.trace)Non-standard +* [trapdoor](https://caddyserver.com/docs/modules/http.handlers.trapdoor)Non-standard +* [trojan](https://caddyserver.com/docs/modules/http.handlers.trojan)Non-standard +* [umami](https://caddyserver.com/docs/modules/http.handlers.umami)Non-standard +* [upload](https://caddyserver.com/docs/modules/http.handlers.upload)Non-standard +* [user_agent_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse)Non-standard +* [vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf_chaitin](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin)Non-standard +* [wafris](https://caddyserver.com/docs/modules/http.handlers.wafris)Non-standard +* [wake_on_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan)Non-standard +* [webdav](https://caddyserver.com/docs/modules/http.handlers.webdav)Non-standard +* [webhook](https://caddyserver.com/docs/modules/http.handlers.webhook)Non-standard +* [x_clacks_overhead](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#upstream)upstream +Upstream graphql server url + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#fetch_schema_interval)fetch_schema_interval +Fetch schema interval, disabled by default. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#fetch_schema_timeout)fetch_schema_timeout +Fetch schema request timeout, "30s" by default + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +Fetch schema headers + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#disabled_introspection)disabled_introspection +Whether to disable introspection request of downstream. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#disabled_playgrounds)disabled_playgrounds +Whether to disable playground paths. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#complexity)complexity +Request complexity settings, disabled by default. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#complexity/max_depth)complexity/max_depth +Max query depth accept, disabled by default. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#complexity/node_count_limit)complexity/node_count_limit +Query node count limit, disabled by default. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#complexity/complexity)complexity/complexity +Max query complexity, disabled by default. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#caching)caching +Caching queries result settings, disabled by default. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#caching/store_dsn)caching/store_dsn +Storage DSN currently support redis and freecache only. Redis example: redis://username:password@localhost:6379?db=0&max_retries=3 more dsn options see at [https://github.com/go-redis/redis/blob/v8.11.5/options.go#L31](https://github.com/go-redis/redis/blob/v8.11.5/options.go#L31) Freecache example: freecache://?cache_size=104857600 If not set it will be freecache://?cache_size=104857600 (cache size 100MB) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#caching/rules)caching/rules +Caching rules + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#caching/rules/types)caching/rules/types +GraphQL type to cache ex: `User` will cache all query results have type User ex: `User { is_admin }` will cache all query results have type User and have field `is_admin`. If not set this rule will match all types. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#caching/rules/max_age)caching/rules/max_age +how long query results that match the rule types should be store. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#caching/rules/swr)caching/rules/swr +how long stale query results that match the rule types should be served while fresh data is already being fetched in the background. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#caching/rules/varies)caching/rules/varies +Varies name apply to query results that match the rule types. If not set query results will cache public. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#caching/varies)caching/varies +Caching varies + +CachingVary using to compute query result cache key by http request cookies and headers. + +Headers names for identifier query result cache key. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#caching/varies/cookies)caching/varies/cookies +Cookies names for identifier query result cache key. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#caching/type_keys)caching/type_keys +GraphQL type fields will be used to detect change of cached query results when user execute mutation query. Example when execute mutation query bellow: mutation { updateUser { id } } if `updateUser` field have type User and id returning in example above is 1, all cache results of user id 1 will be purged. If not set default value of it will be `id` for all types. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gbox#cors_origins)cors_origins +Cors origins + +Cors allowed headers diff --git a/docs/caddy/modules/http.handlers.geofence.md b/docs/caddy/modules/http.handlers.geofence.md new file mode 100644 index 0000000..f197b8b --- /dev/null +++ b/docs/caddy/modules/http.handlers.geofence.md @@ -0,0 +1,166 @@ +Title: Module http.handlers.geofence - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.geofence + +Markdown Content: +Module http.handlers.geofence - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.geofence +============================= + + There is more than one module named **Module http.handlers.geofence**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/circa10a/caddy-geofence + +`{▾ "ipbase_api_token": "", "remote_ip": "", "allowlist": [""], "status_code": 0, "cache_ttl": 0, "radius": 0, "allow_private_ip_addresses": false, "redis_enabled": false, "redis_username": "", "redis_password": "", "redis_addr": "", "redis_db": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/circa10a/caddy-geofence](https://github.com/circa10a/caddy-geofence)** + +**Custom builds:**`xcaddy build --with github.com/circa10a/caddy-geofence` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.handlers.geofence implements IP geofencing functionality. [https://github.com/circa10a/caddy-geofence](https://github.com/circa10a/caddy-geofence) + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#ipbase_api_token)ipbase_api_token +ipbase_api_token is REQUIRED and is an API token ipbase.com. Free tier includes 150 requests per month. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#remote_ip)remote_ip +remote_ip is the IP address to geofence against. Not specifying this field results in geofencing the public address of the machine caddy is running on. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#allowlist)allowlist +allowlist is a list of IP addresses that will not be checked for proximity and will be allowed to access the server. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#status_code)status_code +status_code is the HTTP response code that is returned if IP address is not within proximity. Default is 403. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#cache_ttl)cache_ttl +cache_ttl is string parameter for caching ip addresses with their allowed/not allowed state. Not specifying a TTL sets no expiration on cached items and will live until restart. Valid time units are "ms", "s", "m", "h". In-memory cache is used if redis is not enabled. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#radius)radius +radius is the distance of the geofence in kilometers. If not supplied, will default to 0.0 kilometers. 1.0 => 1.0 kilometers. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#allow_private_ip_addresses)allow_private_ip_addresses +allow_private_ip_addresses is a boolean for whether or not to allow private ip ranges such as 192.X, 172.X, 10.X, [::1] (localhost). Default is false. Some cellular networks doing NATing with 172.X addresses, in which case, you may not want to allow. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#redis_enabled)redis_enabled +redis_enabled uses redis for caching. Default is false. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#redis_username)redis_username +redis_username is the username to connect to a redis instance. Default is "". + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#redis_password)redis_password +redis_password is the password to connect to a redis instance. Default is "". + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#redis_addr)redis_addr +redis_addr is the address to connect to a redis instance. Default is localhost:6379. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geofence#redis_db)redis_db +redis_db is the db id. Default is 0. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fhttp.handlers.geofence&r=&sid=GVMGKAKP&qs=%7B%7D&cid=71197474) diff --git a/docs/caddy/modules/http.handlers.geoip.md b/docs/caddy/modules/http.handlers.geoip.md new file mode 100644 index 0000000..ef88290 --- /dev/null +++ b/docs/caddy/modules/http.handlers.geoip.md @@ -0,0 +1,148 @@ +Title: Module http.handlers.geoip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.geoip + +Markdown Content: +Module http.handlers.geoip - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.geoip +========================== + + There is more than one module named **Module http.handlers.geoip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/shift72/caddy-geo-ip + +`{▾ "account_id": 0, "api_key": "", "db_path": "", "download_frequency": 0, "reload_frequency": 0, "trust_header": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/shift72/caddy-geo-ip](https://github.com/shift72/caddy-geo-ip)** + +**Custom builds:**`xcaddy build --with github.com/shift72/caddy-geo-ip` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Allows looking up the Country Code of an IP address based on the Maxmind database + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip#account_id)account_id +The AccountID of the maxmind account + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip#api_key)api_key +The API Key used to download the latest file + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip#db_path)db_path +The path of the MaxMind GeoLite2-Country.mmdb file. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip#download_frequency)download_frequency +The frequency to download a fresh version of the database file + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip#reload_frequency)reload_frequency +The frequency to reload the database file + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip#trust_header)trust_header +The header to trust instead of the `RemoteAddr` + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.geoip2.md b/docs/caddy/modules/http.handlers.geoip2.md new file mode 100644 index 0000000..ba97647 --- /dev/null +++ b/docs/caddy/modules/http.handlers.geoip2.md @@ -0,0 +1,41 @@ +Title: Module http.handlers.geoip2 - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.geoip2 + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.geoip2**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip2#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "enable": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/zhangjiayin/caddy-geoip2](https://github.com/zhangjiayin/caddy-geoip2)** + +**Custom builds:**`xcaddy build --with github.com/zhangjiayin/caddy-geoip2` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip2#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.handlers.geoip2 is an GeoIP2 server handler. it uses GeoIP2 Data to identify the location of the IP + +[🔗](https://caddyserver.com/docs/modules/http.handlers.geoip2#enable)enable +strict: only use remote IP address wild: use X-Forwarded-For if it exists trusted_proxies: use X-Forwarded-For if exists when trusted_proxies if valid default:trusted_proxies diff --git a/docs/caddy/modules/http.handlers.git.md b/docs/caddy/modules/http.handlers.git.md new file mode 100644 index 0000000..197fef6 --- /dev/null +++ b/docs/caddy/modules/http.handlers.git.md @@ -0,0 +1,41 @@ +Title: Module http.handlers.git - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.git + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.git**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.git#docs "Direct link") +------------------------------------------------------------------------------------------ + +`{▾ "authp": {▾ }}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/greenpau/caddy-git](https://github.com/greenpau/caddy-git)** + +**Custom builds:**`xcaddy build --with github.com/greenpau/caddy-git` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.git#docs "Direct link") +------------------------------------------------------------------------------------------ + +http.handlers.git implements git repository manager. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.git#authp)authp +Endpoint handles git management requests. diff --git a/docs/caddy/modules/http.handlers.gopkg.md b/docs/caddy/modules/http.handlers.gopkg.md new file mode 100644 index 0000000..8fda03a --- /dev/null +++ b/docs/caddy/modules/http.handlers.gopkg.md @@ -0,0 +1,170 @@ +Title: Module http.handlers.gopkg - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.gopkg + +Markdown Content: +Module http.handlers.gopkg - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.gopkg +========================== + + There is more than one module named **http.handlers.gopkg**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.gopkg#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/MagnaXSoftware/gopkg + +`{▾ "path": "", "vcs": "", "url": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/MagnaXSoftware/gopkg](https://github.com/MagnaXSoftware/gopkg)** + +**Custom builds:**`xcaddy build --with magnax.ca/caddy/gopkg` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.gopkg#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.handlers.gopkg implements vanity go package import paths. + +Vanity go package import paths give a cleaner appearance to go projects by separating the source code location from the import path. It also gives flexibility to developers by allowing them to change a project's source code hosting platform without requiring the project to be renamed. Finally, it allows projects hosted on various platforms to be grouped under a common import path. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gopkg#path)path +Path is the HTTP path component of the vanity import path. + +Given a vanity import path of `web.site/package/name`, the path would be `/package/name`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gopkg#vcs)vcs +Vcs is the version control system used by the package. + +If empty, the default is `git`. Valid values include `git`, `hg`, `svn`, `bzr`, `cvs`. Basically, any version control system that go knows how to address. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gopkg#url)url +URL is the URL of the package's source. + +This is where the go tool will go to download the source code. + +▸github.com/MagnaXSoftware/gopkg + +`{▾ "path": "", "vcs": "", "uri": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/MagnaXSoftware/gopkg](https://github.com/MagnaXSoftware/gopkg)** + +**Custom builds:**`xcaddy build --with magnax.ca/caddy/gopkg` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.gopkg#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.handlers.gopkg represents the GoPkg Caddy module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gopkg#path)path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gopkg#vcs)vcs +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.gopkg#uri)uri +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.grpc_web.md b/docs/caddy/modules/http.handlers.grpc_web.md new file mode 100644 index 0000000..d03d0d6 --- /dev/null +++ b/docs/caddy/modules/http.handlers.grpc_web.md @@ -0,0 +1,49 @@ +Title: Module http.handlers.grpc_web - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.grpc_web + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.grpc_web**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.grpc_web#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +`{▾ "websocket_ping": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-grpc-web](https://github.com/mholt/caddy-grpc-web)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-grpc-web` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.grpc_web#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.handlers.grpc_web is an HTTP handler that bridges gRPC-Web <--> gRPC requests. This module is EXPERIMENTAL and subject to change. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.grpc_web#websocket_ping)websocket_ping +Enable WebSocket keep-alive pinging. Default: 0 (no pinging). Minimum to enable: 1s. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/modules/http.handlers.guard.md b/docs/caddy/modules/http.handlers.guard.md new file mode 100644 index 0000000..92c7676 --- /dev/null +++ b/docs/caddy/modules/http.handlers.guard.md @@ -0,0 +1,49 @@ +Title: Module http.handlers.guard - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.guard + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.guard**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.guard#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾ "timeout": 0, "ip_headers": [""], "rotating_proxy": "", "pass_thru": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/z3ntl3/caddyguard](https://github.com/z3ntl3/caddyguard)** + +**Custom builds:**`xcaddy build --with github.com/z3ntl3/caddyguard` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.guard#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.handlers.guard is an elegant IPQS plugin for Caddy. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.guard#timeout)timeout +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.guard#rotating_proxy)rotating_proxy +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.guard#pass_thru)pass_thru +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.headers.md b/docs/caddy/modules/http.handlers.headers.md new file mode 100644 index 0000000..43ce1ca --- /dev/null +++ b/docs/caddy/modules/http.handlers.headers.md @@ -0,0 +1,81 @@ +Title: Module http.handlers.headers - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.headers + +Markdown Content: +http.handlers.headers is a middleware which modifies request and response headers. + +Changes to headers are applied immediately, except for the response headers when Deferred is true or when Required is set. In those cases, the changes are applied when the headers are written to the response. Note that deferred changes do not take effect if an error occurs later in the middleware chain. + +Properties in this module accept placeholders. + +Response header operations can be conditioned upon response status code and/or other header values. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#request)request +HeaderOps defines manipulations for HTTP headers. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#request/add)request/add +Adds HTTP headers; does not replace any existing header fields. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#request/set)request/set +Sets HTTP headers; replaces existing header fields. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#request/delete)request/delete +Names of HTTP header fields to delete. Basic wildcards are supported: + +* Start with `*` for all field names with the given suffix; +* End with `*` for all field names with the given prefix; +* Start and end with `*` for all field names containing a substring. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#request/replace)request/replace +Performs in-situ substring replacements of HTTP headers. Keys are the field names on which to perform the associated replacements. If the field name is `*`, the replacements are performed on all header fields. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#request/replace/search)request/replace/search +The substring to search for. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#request/replace/search_regexp)request/replace/search_regexp +The regular expression to search with. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#request/replace/replace)request/replace/replace +The string with which to replace matches. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response)response +RespHeaderOps defines manipulations for response headers. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response/add)response/add +Adds HTTP headers; does not replace any existing header fields. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response/set)response/set +Sets HTTP headers; replaces existing header fields. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response/delete)response/delete +Names of HTTP header fields to delete. Basic wildcards are supported: + +* Start with `*` for all field names with the given suffix; +* End with `*` for all field names with the given prefix; +* Start and end with `*` for all field names containing a substring. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response/replace)response/replace +Performs in-situ substring replacements of HTTP headers. Keys are the field names on which to perform the associated replacements. If the field name is `*`, the replacements are performed on all header fields. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response/replace/search)response/replace/search +The substring to search for. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response/replace/search_regexp)response/replace/search_regexp +The regular expression to search with. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response/replace/replace)response/replace/replace +The string with which to replace matches. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response/require)response/require +If set, header operations will be deferred until they are written out and only performed if the response matches these criteria. + +ResponseMatcher is a type which can determine if an HTTP response matches some criteria. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response/require/status_code)response/require/status_code +If set, one of these status codes would be required. A one-digit status can be used to represent all codes in that class (e.g. 3 for all 3xx codes). + +If set, each header specified must be one of the specified values, with the same logic used by the [request header matcher](https://caddyserver.com/docs/json/apps/http/servers/routes/match/header/). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.headers#response/deferred)response/deferred +If true, header operations will be deferred until they are written out. Superseded if Require is set. Usually you will need to set this to true if any fields are being deleted. diff --git a/docs/caddy/modules/http.handlers.hmac.md b/docs/caddy/modules/http.handlers.hmac.md new file mode 100644 index 0000000..f31b8a4 --- /dev/null +++ b/docs/caddy/modules/http.handlers.hmac.md @@ -0,0 +1,47 @@ +Title: Module http.handlers.hmac - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.hmac + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.hmac**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.hmac#docs "Direct link") +------------------------------------------------------------------------------------------- + +`{▾ "algorithm": "", "secret": "", "name": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/abiosoft/caddy-hmac](https://github.com/abiosoft/caddy-hmac)** + +**Custom builds:**`xcaddy build --with github.com/abiosoft/caddy-hmac` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.hmac#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.handlers.hmac implements an HTTP handler that validates request body with hmac. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.hmac#algorithm)algorithm +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.hmac#secret)secret +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.hmac#name)name +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.http_cache.md b/docs/caddy/modules/http.handlers.http_cache.md new file mode 100644 index 0000000..a6d2b99 --- /dev/null +++ b/docs/caddy/modules/http.handlers.http_cache.md @@ -0,0 +1,172 @@ +Title: Module http.handlers.http_cache - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.http_cache + +Markdown Content: +Module http.handlers.http_cache - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.http_cache +=============================== + + There is more than one module named **Module http.handlers.http_cache**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/sillygod/cdp-cache + +`{▾ "config": {▾ "type": "", "status_header": "", "default_max_age": 0, "lock_timeout": 0, "rule_matcher_raws": [{▾ }], "match_methods": [""], "cache_buckets_num": 0, "cache_max_memory_size": 0, "path": "", "cache_key_template": "", "redis_connection_setting": "", "stale_max_age": 0 }, "distributed": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sillygod/cdp-cache](https://github.com/sillygod/cdp-cache)** + +**Custom builds:**`xcaddy build --with github.com/sillygod/cdp-cache` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.handlers.http_cache is a http handler as a middleware to cache the response + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config)config +Config is the configuration for cache process + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/type)config/type +CacheType is the type of cache which means the backend for storing cache content. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/status_header)config/status_header +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/default_max_age)config/default_max_age +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/lock_timeout)config/lock_timeout +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/rule_matcher_raws)config/rule_matcher_raws +RuleMatcherRawWithType stores the marshal content for unmarshalling in provision stage + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/match_methods)config/match_methods +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/cache_buckets_num)config/cache_buckets_num +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/cache_max_memory_size)config/cache_max_memory_size +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/path)config/path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/cache_key_template)config/cache_key_template +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/redis_connection_setting)config/redis_connection_setting +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#config/stale_max_age)config/stale_max_age +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.http_cache#distributed)distributed +There are no docs for this property. + +Fulfilled by modules in namespace: **distributed** + +* [consul](https://caddyserver.com/docs/modules/distributed.consul)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.i18n.md b/docs/caddy/modules/http.handlers.i18n.md new file mode 100644 index 0000000..6716f15 --- /dev/null +++ b/docs/caddy/modules/http.handlers.i18n.md @@ -0,0 +1,142 @@ +Title: Module http.handlers.i18n - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.i18n + +Markdown Content: +Module http.handlers.i18n - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.i18n +========================= + + There is more than one module named **Module http.handlers.i18n**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.i18n#docs "Direct link") +------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/ewen-lbh/caddy-i18n + +`{▾ "translations": "", "html_attribute": "", "html_tag": "", "source_language": "", "languages": [""], "update_translations": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ewen-lbh/caddy-i18n](https://github.com/ewen-lbh/caddy-i18n)** + +**Custom builds:**`xcaddy build --with github.com/ewen-lbh/caddy-i18n` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.i18n#docs "Direct link") +------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.i18n#translations)translations +The directory where the .po files are stored. The files must be named LANGUAGE.po, where LANGUAGE is the language code (see the languages field). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.i18n#html_attribute)html_attribute +The HTML attribute used to mark inner content of the tag it is placed on as translatable strings. Defaults to i18n. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.i18n#html_tag)html_tag +The HTML tag used to mark inner content of the tag it is placed on as translatable strings. Defaults to i18n. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.i18n#source_language)source_language +The language code of the content the original responses are written in. Defaults to en. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.i18n#languages)languages +The target languages we should attempt to translate to. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.i18n#update_translations)update_translations +Update the .po files with new translatable strings found in the HTML responses. Disabled by default. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.image_filter.filter.crop.md b/docs/caddy/modules/http.handlers.image_filter.filter.crop.md new file mode 100644 index 0000000..ada7978 --- /dev/null +++ b/docs/caddy/modules/http.handlers.image_filter.filter.crop.md @@ -0,0 +1,103 @@ +Title: Module http.handlers.image_filter.filter.crop - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.crop + +Markdown Content: +Module http.handlers.image_filter.filter.crop - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.image_filter.filter.fit.md b/docs/caddy/modules/http.handlers.image_filter.filter.fit.md new file mode 100644 index 0000000..d67cfeb --- /dev/null +++ b/docs/caddy/modules/http.handlers.image_filter.filter.fit.md @@ -0,0 +1,103 @@ +Title: Module http.handlers.image_filter.filter.fit - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.fit + +Markdown Content: +Module http.handlers.image_filter.filter.fit - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.image_filter.filter.flip.md b/docs/caddy/modules/http.handlers.image_filter.filter.flip.md new file mode 100644 index 0000000..3e4bab8 --- /dev/null +++ b/docs/caddy/modules/http.handlers.image_filter.filter.flip.md @@ -0,0 +1,103 @@ +Title: Module http.handlers.image_filter.filter.flip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.flip + +Markdown Content: +Module http.handlers.image_filter.filter.flip - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.image_filter.filter.resize.md b/docs/caddy/modules/http.handlers.image_filter.filter.resize.md new file mode 100644 index 0000000..fa8cf39 --- /dev/null +++ b/docs/caddy/modules/http.handlers.image_filter.filter.resize.md @@ -0,0 +1,103 @@ +Title: Module http.handlers.image_filter.filter.resize - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.resize + +Markdown Content: +Module http.handlers.image_filter.filter.resize - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.image_filter.filter.rotate.md b/docs/caddy/modules/http.handlers.image_filter.filter.rotate.md new file mode 100644 index 0000000..55732e3 --- /dev/null +++ b/docs/caddy/modules/http.handlers.image_filter.filter.rotate.md @@ -0,0 +1,103 @@ +Title: Module http.handlers.image_filter.filter.rotate - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.rotate + +Markdown Content: +Module http.handlers.image_filter.filter.rotate - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.image_filter.filter.sharpen.md b/docs/caddy/modules/http.handlers.image_filter.filter.sharpen.md new file mode 100644 index 0000000..ab7dc87 --- /dev/null +++ b/docs/caddy/modules/http.handlers.image_filter.filter.sharpen.md @@ -0,0 +1,103 @@ +Title: Module http.handlers.image_filter.filter.sharpen - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.image_filter.filter.sharpen + +Markdown Content: +Module http.handlers.image_filter.filter.sharpen - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.image_filter.md b/docs/caddy/modules/http.handlers.image_filter.md new file mode 100644 index 0000000..c9a486b --- /dev/null +++ b/docs/caddy/modules/http.handlers.image_filter.md @@ -0,0 +1,103 @@ +Title: Module http.handlers.image_filter - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.image_filter + +Markdown Content: +Module http.handlers.image_filter - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.image_processor.md b/docs/caddy/modules/http.handlers.image_processor.md new file mode 100644 index 0000000..0e63763 --- /dev/null +++ b/docs/caddy/modules/http.handlers.image_processor.md @@ -0,0 +1,38 @@ +Title: Module http.handlers.image_processor - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.image_processor + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.image_processor**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.image_processor#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/quix-labs/caddy-image-processor](https://github.com/quix-labs/caddy-image-processor)** + +**Custom builds:**`xcaddy build --with github.com/quix-labs/caddy-image-processor` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.image_processor#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +http.handlers.image_processor allow user to do image processing on the fly using libvips With simple queries parameters you can resize, convert, crop your served images diff --git a/docs/caddy/modules/http.handlers.imageproxy.md b/docs/caddy/modules/http.handlers.imageproxy.md new file mode 100644 index 0000000..e9c3e43 --- /dev/null +++ b/docs/caddy/modules/http.handlers.imageproxy.md @@ -0,0 +1,56 @@ +Title: Module http.handlers.imageproxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.imageproxy + +Markdown Content: +There is more than one module named **Module http.handlers.imageproxy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.imageproxy#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +`{▾ "cache": "", "default_base_url": "", "allow_hosts": [""], "deny_hosts": [""], "referrers": [""], "content_types": [""], "signature_keys": [""], "verbose": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/willnorris/imageproxy](https://github.com/willnorris/imageproxy)** + +**Custom builds:**`xcaddy build --with willnorris.com/go/imageproxy/caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.imageproxy#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.imageproxy#cache)cache +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.imageproxy#default_base_url)default_base_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.imageproxy#allow_hosts)allow_hosts +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.imageproxy#deny_hosts)deny_hosts +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.imageproxy#referrers)referrers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.imageproxy#content_types)content_types +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.imageproxy#signature_keys)signature_keys +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.imageproxy#verbose)verbose +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.inspect.md b/docs/caddy/modules/http.handlers.inspect.md new file mode 100644 index 0000000..b786c48 --- /dev/null +++ b/docs/caddy/modules/http.handlers.inspect.md @@ -0,0 +1,38 @@ +Title: Module http.handlers.inspect - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.inspect + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.inspect**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.inspect#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/abiosoft/caddy-inspect](https://github.com/abiosoft/caddy-inspect)** + +**Custom builds:**`xcaddy build --with github.com/abiosoft/caddy-inspect` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.inspect#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.handlers.inspect implements an HTTP handler that writes the inspects the current request. diff --git a/docs/caddy/modules/http.handlers.intercept.md b/docs/caddy/modules/http.handlers.intercept.md new file mode 100644 index 0000000..ef8ecd5 --- /dev/null +++ b/docs/caddy/modules/http.handlers.intercept.md @@ -0,0 +1,264 @@ +Title: Module http.handlers.intercept - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.intercept + +Markdown Content: +[🔗](https://caddyserver.com/docs/modules/http.handlers.intercept#handle_response)handle_response +List of handlers and their associated matchers to evaluate after successful response generation. The first handler that matches the original response will be invoked. The original response body will not be written to the client; it is up to the handler to finish handling the response. + +Three new placeholders are available in this handler chain: + +* `{http.intercept.status_code}` The status code from the response +* `{http.intercept.header.*}` The headers from the response + +ResponseHandler pairs a response matcher with custom handling logic. Either the status code can be changed to something else while using the original response body, or, if a status code is not set, it can execute a custom route list; this is useful for executing handler routes based on the properties of an HTTP response that has not been written out to the client yet. + +To use this type, provision it at module load time, then when ready to use, match the response against its matcher; if it matches (or doesn't have a matcher), change the status code on the response if configured; otherwise invoke the routes by calling `rh.Routes.Compile(next).ServeHTTP(rw, req)` (or similar). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.intercept#handle_response/match)handle_response/match +The response matcher for this handler. If empty/nil, it always matches. + +ResponseMatcher is a type which can determine if an HTTP response matches some criteria. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.intercept#handle_response/match/status_code)handle_response/match/status_code +If set, one of these status codes would be required. A one-digit status can be used to represent all codes in that class (e.g. 3 for all 3xx codes). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.intercept#handle_response/match/headers)handle_response/match/headers +If set, each header specified must be one of the specified values, with the same logic used by the [request header matcher](https://caddyserver.com/docs/json/apps/http/servers/routes/match/header/). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.intercept#handle_response/status_code)handle_response/status_code +To write the original response body but with a different status code, set this field to the desired status code. If set, this takes priority over routes. + +WeakString is a type that unmarshals any JSON value as a string literal, with the following exceptions: + +1. actual string values are decoded as strings; and +2. null is decoded as empty string; + +and provides methods for getting the value as various primitive types. However, using this type removes any type safety as far as deserializing JSON is concerned. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.intercept#handle_response/routes)handle_response/routes +The list of HTTP routes to execute if no status code is specified. If evaluated, the original response body will not be written. + +Route consists of a set of rules for matching HTTP requests, a list of handlers to execute, and optional flow control parameters which customize the handling of HTTP requests in a highly flexible and performant manner. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.intercept#handle_response/routes/group)handle_response/routes/group +Group is an optional name for a group to which this route belongs. Grouping a route makes it mutually exclusive with others in its group; if a route belongs to a group, only the first matching route in that group will be executed. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.intercept#handle_response/routes/match)handle_response/routes/match +The matcher sets which will be used to qualify this route for a request (essentially the "if" statement of this route). Each matcher set is OR'ed, but matchers within a set are AND'ed together. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.matchers** + +* [client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) +* [expression](https://caddyserver.com/docs/modules/http.matchers.expression) +* [file](https://caddyserver.com/docs/modules/http.matchers.file) +* [header](https://caddyserver.com/docs/modules/http.matchers.header) +* [header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) +* [host](https://caddyserver.com/docs/modules/http.matchers.host) +* [method](https://caddyserver.com/docs/modules/http.matchers.method) +* [not](https://caddyserver.com/docs/modules/http.matchers.not) +* [path](https://caddyserver.com/docs/modules/http.matchers.path) +* [path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) +* [protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) +* [query](https://caddyserver.com/docs/modules/http.matchers.query) +* [remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) +* [tls](https://caddyserver.com/docs/modules/http.matchers.tls) +* [vars](https://caddyserver.com/docs/modules/http.matchers.vars) +* [vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) +* [client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn)Non-standard +* [client_country](https://caddyserver.com/docs/modules/http.matchers.client_country)Non-standard +* [conneg](https://caddyserver.com/docs/modules/http.matchers.conneg)Non-standard +* [crawler](https://caddyserver.com/docs/modules/http.matchers.crawler)Non-standard +* [cron](https://caddyserver.com/docs/modules/http.matchers.cron)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.matchers.dnsfetcher)Non-standard +* [dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip)Non-standard +* [dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip)Non-standard +* [exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop)Non-standard +* [execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [geocity](https://caddyserver.com/docs/modules/http.matchers.geocity)Non-standard +* [geocn](https://caddyserver.com/docs/modules/http.matchers.geocn)Non-standard +* [geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn)Non-standard +* [geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country)Non-standard +* [maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation)Non-standard +* [remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host)Non-standard +* [signed](https://caddyserver.com/docs/modules/http.matchers.signed)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.intercept#handle_response/routes/handle)handle_response/routes/handle +The list of handlers for this route. Upon matching a request, they are chained together in a middleware fashion: requests flow from the first handler to the last (top of the list to the bottom), with the possibility that any handler could stop the chain and/or return an error. Responses flow back through the chain (bottom of the list to the top) as they are written out to the client. + +Not all handlers call the next handler in the chain. For example, the reverse_proxy handler always sends a request upstream or returns an error. Thus, configuring handlers after reverse_proxy in the same route is illogical, since they would never be executed. You will want to put handlers which originate the response at the very end of your route(s). The documentation for a module should state whether it invokes the next handler, but sometimes it is common sense. + +Some handlers manipulate the response. Remember that requests flow down the list, and responses flow up the list. + +For example, if you wanted to use both `templates` and `encode` handlers, you would need to put `templates` after `encode` in your route, because responses flow up. Thus, `templates` will be able to parse and execute the plain-text response as a template, and then return it up to the `encode` handler which will then compress it into a binary format. + +If `templates` came before `encode`, then `encode` would write a compressed, binary-encoded response to `templates` which would not be able to parse the response properly. + +The correct order, then, is this: + +``` +[ + {"handler": "encode"}, + {"handler": "templates"}, + {"handler": "file_server"} +] +``` + +The request flows ⬇️ DOWN (`encode` ->`templates` ->`file_server`). + +1. First, `encode` will choose how to `encode` the response and wrap the response. +2. Then, `templates` will wrap the response with a buffer. +3. Finally, `file_server` will originate the content from a file. + +The response flows ⬆️ UP (`file_server` ->`templates` ->`encode`): + +1. First, `file_server` will write the file to the response. +2. That write will be buffered and then executed by `templates`. +3. Lastly, the write from `templates` will flow into `encode` which will compress the stream. + +If you think of routes in this way, it will be easy and even fun to solve the puzzle of writing correct routes. + +Fulfilled by modules in namespace: **http.handlers** + +* [acme_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) +* [authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) +* [copy_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) +* [copy_response_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) +* [encode](https://caddyserver.com/docs/modules/http.handlers.encode) +* [error](https://caddyserver.com/docs/modules/http.handlers.error) +* [file_server](https://caddyserver.com/docs/modules/http.handlers.file_server) +* [headers](https://caddyserver.com/docs/modules/http.handlers.headers) +* [intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) +* [invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) +* [log_append](https://caddyserver.com/docs/modules/http.handlers.log_append) +* [map](https://caddyserver.com/docs/modules/http.handlers.map) +* [metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) +* [push](https://caddyserver.com/docs/modules/http.handlers.push) +* [request_body](https://caddyserver.com/docs/modules/http.handlers.request_body) +* [reverse_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) +* [rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) +* [static_response](https://caddyserver.com/docs/modules/http.handlers.static_response) +* [subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) +* [templates](https://caddyserver.com/docs/modules/http.handlers.templates) +* [tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) +* [vars](https://caddyserver.com/docs/modules/http.handlers.vars) +* [adobe_usage_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [authelia](https://caddyserver.com/docs/modules/http.handlers.authelia)Non-standard +* [authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator)Non-standard +* [authp](https://caddyserver.com/docs/modules/http.handlers.authp)Non-standard +* [authz](https://caddyserver.com/docs/modules/http.handlers.authz)Non-standard +* [basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp)Non-standard +* [blockaws](https://caddyserver.com/docs/modules/http.handlers.blockaws)Non-standard +* [bot_barrier](https://caddyserver.com/docs/modules/http.handlers.bot_barrier)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cerberus](https://caddyserver.com/docs/modules/http.handlers.cerberus)Non-standard +* [cgi](https://caddyserver.com/docs/modules/http.handlers.cgi)Non-standard +* [cookiecrypt](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt)Non-standard +* [cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag)Non-standard +* [crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec)Non-standard +* [ct](https://caddyserver.com/docs/modules/http.handlers.ct)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [discord](https://caddyserver.com/docs/modules/http.handlers.discord)Non-standard +* [dns01proxy](https://caddyserver.com/docs/modules/http.handlers.dns01proxy)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher)Non-standard +* [esi](https://caddyserver.com/docs/modules/http.handlers.esi)Non-standard +* [exec](https://caddyserver.com/docs/modules/http.handlers.exec)Non-standard +* [extra_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders)Non-standard +* [filter](https://caddyserver.com/docs/modules/http.handlers.filter)Non-standard +* [floaty](https://caddyserver.com/docs/modules/http.handlers.floaty)Non-standard +* [forward_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth)Non-standard +* [gbox](https://caddyserver.com/docs/modules/http.handlers.gbox)Non-standard +* [geofence](https://caddyserver.com/docs/modules/http.handlers.geofence)Non-standard +* [geoip](https://caddyserver.com/docs/modules/http.handlers.geoip)Non-standard +* [geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2)Non-standard +* [git](https://caddyserver.com/docs/modules/http.handlers.git)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [grpc_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web)Non-standard +* [guard](https://caddyserver.com/docs/modules/http.handlers.guard)Non-standard +* [hmac](https://caddyserver.com/docs/modules/http.handlers.hmac)Non-standard +* [http_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache)Non-standard +* [i18n](https://caddyserver.com/docs/modules/http.handlers.i18n)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor)Non-standard +* [imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy)Non-standard +* [inspect](https://caddyserver.com/docs/modules/http.handlers.inspect)Non-standard +* [ip_filter](https://caddyserver.com/docs/modules/http.handlers.ip_filter)Non-standard +* [ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap)Non-standard +* [jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait)Non-standard +* [json_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse)Non-standard +* [jwt_issuer](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer)Non-standard +* [k8s_admission](https://caddyserver.com/docs/modules/http.handlers.k8s_admission)Non-standard +* [lambda](https://caddyserver.com/docs/modules/http.handlers.lambda)Non-standard +* [ldap_basic_auth](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth)Non-standard +* [listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy)Non-standard +* [lura](https://caddyserver.com/docs/modules/http.handlers.lura)Non-standard +* [mercure](https://caddyserver.com/docs/modules/http.handlers.mercure)Non-standard +* [minifier](https://caddyserver.com/docs/modules/http.handlers.minifier)Non-standard +* [mirror](https://caddyserver.com/docs/modules/http.handlers.mirror)Non-standard +* [myplugin](https://caddyserver.com/docs/modules/http.handlers.myplugin)Non-standard +* [nobots](https://caddyserver.com/docs/modules/http.handlers.nobots)Non-standard +* [oauth2_token_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection)Non-standard +* [olaf](https://caddyserver.com/docs/modules/http.handlers.olaf)Non-standard +* [olo_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature)Non-standard +* [openapi](https://caddyserver.com/docs/modules/http.handlers.openapi)Non-standard +* [openapi_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator)Non-standard +* [php](https://caddyserver.com/docs/modules/http.handlers.php)Non-standard +* [pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch)Non-standard +* [pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster)Non-standard +* [placeholder_dump](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump)Non-standard +* [plausible](https://caddyserver.com/docs/modules/http.handlers.plausible)Non-standard +* [pmtiles_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy)Non-standard +* [pocketbase](https://caddyserver.com/docs/modules/http.handlers.pocketbase)Non-standard +* [postauth2fa](https://caddyserver.com/docs/modules/http.handlers.postauth2fa)Non-standard +* [prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus)Non-standard +* [public_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix)Non-standard +* [quantity_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [realip](https://caddyserver.com/docs/modules/http.handlers.realip)Non-standard +* [redir_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns)Non-standard +* [replace_response](https://caddyserver.com/docs/modules/http.handlers.replace_response)Non-standard +* [request_body_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var)Non-standard +* [request_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug)Non-standard +* [request_id](https://caddyserver.com/docs/modules/http.handlers.request_id)Non-standard +* [s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [save](https://caddyserver.com/docs/modules/http.handlers.save)Non-standard +* [scion](https://caddyserver.com/docs/modules/http.handlers.scion)Non-standard +* [teapot](https://caddyserver.com/docs/modules/http.handlers.teapot)Non-standard +* [trace](https://caddyserver.com/docs/modules/http.handlers.trace)Non-standard +* [trapdoor](https://caddyserver.com/docs/modules/http.handlers.trapdoor)Non-standard +* [trojan](https://caddyserver.com/docs/modules/http.handlers.trojan)Non-standard +* [umami](https://caddyserver.com/docs/modules/http.handlers.umami)Non-standard +* [upload](https://caddyserver.com/docs/modules/http.handlers.upload)Non-standard +* [user_agent_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse)Non-standard +* [vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf_chaitin](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin)Non-standard +* [wafris](https://caddyserver.com/docs/modules/http.handlers.wafris)Non-standard +* [wake_on_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan)Non-standard +* [webdav](https://caddyserver.com/docs/modules/http.handlers.webdav)Non-standard +* [webhook](https://caddyserver.com/docs/modules/http.handlers.webhook)Non-standard +* [x_clacks_overhead](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.intercept#handle_response/routes/terminal)handle_response/routes/terminal +If true, no more routes will be executed after this one. diff --git a/docs/caddy/modules/http.handlers.invoke.md b/docs/caddy/modules/http.handlers.invoke.md new file mode 100644 index 0000000..2f6e567 --- /dev/null +++ b/docs/caddy/modules/http.handlers.invoke.md @@ -0,0 +1,43 @@ +Title: Module http.handlers.invoke - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.invoke + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.invoke**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.invoke#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "name": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.invoke#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.handlers.invoke implements a handler that compiles and executes a named route that was defined on the server. + +EXPERIMENTAL: Subject to change or removal. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.invoke#name)name +Name is the key of the named route to execute diff --git a/docs/caddy/modules/http.handlers.ip_filter.md b/docs/caddy/modules/http.handlers.ip_filter.md new file mode 100644 index 0000000..15fc5c6 --- /dev/null +++ b/docs/caddy/modules/http.handlers.ip_filter.md @@ -0,0 +1,136 @@ +Title: Module http.handlers.ip_filter - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.ip_filter + +Markdown Content: +Module http.handlers.ip_filter - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.ip_filter +============================== + + There is more than one module named **Module http.handlers.ip_filter**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.ip_filter#docs "Direct link") +------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/deanchou/caddy_ip_filter + +`{▾ "interval": 0, "timeout": 0, "block_ip_list": "", "allow_ip_list": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/deanchou/caddy_ip_filter](https://github.com/deanchou/caddy_ip_filter)** + +**Custom builds:**`xcaddy build --with github.com/deanchou/caddy_ip_filter` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.ip_filter#docs "Direct link") +------------------------------------------------------------------------------------------------ + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ip_filter#interval)interval +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ip_filter#timeout)timeout +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ip_filter#block_ip_list)block_ip_list +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ip_filter#allow_ip_list)allow_ip_list +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.ipmap.md b/docs/caddy/modules/http.handlers.ipmap.md new file mode 100644 index 0000000..61a2549 --- /dev/null +++ b/docs/caddy/modules/http.handlers.ipmap.md @@ -0,0 +1,148 @@ +Title: Module http.handlers.ipmap - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.ipmap + +Markdown Content: +Module http.handlers.ipmap - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.ipmap +========================== + + There is more than one module named **Module http.handlers.ipmap**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.ipmap#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/teodorescuserban/caddy-ip-map + +`{▾ "source": "", "destinations": [""], "mappings": [{▾ "input": "", "outputs": [] }], "defaults": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/teodorescuserban/caddy-ip-map](https://github.com/teodorescuserban/caddy-ip-map)** + +**Custom builds:**`xcaddy build --with github.com/teodorescuserban/caddy-ip-map` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.ipmap#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.handlers.ipmap implements a middleware that maps IP / Subnets as inputs to outputs. Specifically, it compares a source value against the map inputs, and for one that matches, it applies the output values to each destination. Destinations become placeholder names. + +Mapped placeholders are not evaluated until they are used, so even for very large mappings, this handler is quite efficient. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ipmap#source)source +Source is the placeholder from which to get the input value. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ipmap#destinations)destinations +Destinations are the names of placeholders in which to store the outputs. Destination values should be wrapped in braces, for example, {my_placeholder}. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ipmap#mappings)mappings +Mappings from IP / Subnet source values (inputs) to destination values (outputs). The first matching, non-nil mapping will be applied. + +Mapping describes a mapping from input to outputs. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ipmap#mappings/input)mappings/input +The input value to match. Must be distinct from other mappings. Needs to be an IP / Subnet + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ipmap#mappings/outputs)mappings/outputs +Upon a match with the input, each output is positionally correlated with each destination of the parent handler. An output that is null (nil) will be treated as if it was not mapped at all. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ipmap#defaults)defaults +If no mappings match or if the mapped output is null/nil, the associated default output will be applied (optional). + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.jailbait.md b/docs/caddy/modules/http.handlers.jailbait.md new file mode 100644 index 0000000..ca0fd13 --- /dev/null +++ b/docs/caddy/modules/http.handlers.jailbait.md @@ -0,0 +1,124 @@ +Title: Module http.handlers.jailbait - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.jailbait + +Markdown Content: +Module http.handlers.jailbait - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.jailbait +============================= + + There is more than one module named **Module http.handlers.jailbait**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.jailbait#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/Tasudo/caddy-jailbait + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/Tasudo/caddy-jailbait](https://github.com/Tasudo/caddy-jailbait)** + +**Custom builds:**`xcaddy build --with github.com/Tasudo/caddy-jailbait/v2` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.jailbait#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.json_parse.md b/docs/caddy/modules/http.handlers.json_parse.md new file mode 100644 index 0000000..cea2918 --- /dev/null +++ b/docs/caddy/modules/http.handlers.json_parse.md @@ -0,0 +1,41 @@ +Title: Module http.handlers.json_parse - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.json_parse + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.json_parse**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.json_parse#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "strict": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/abiosoft/caddy-json-parse](https://github.com/abiosoft/caddy-json-parse)** + +**Custom builds:**`xcaddy build --with github.com/abiosoft/caddy-json-parse` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.json_parse#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.handlers.json_parse implements an HTTP handler that parses json body as placeholders. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.json_parse#strict)strict +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.jwt_issuer.md b/docs/caddy/modules/http.handlers.jwt_issuer.md new file mode 100644 index 0000000..b1ac7b5 --- /dev/null +++ b/docs/caddy/modules/http.handlers.jwt_issuer.md @@ -0,0 +1,52 @@ +Title: Module http.handlers.jwt_issuer - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.jwt_issuer + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.jwt_issuer**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "sign_key": "", "user_db_path": "", "token_issuer": "", "default_token_lifetime": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/steffenbusch/caddy-jwt-issuer](https://github.com/steffenbusch/caddy-jwt-issuer)** + +**Custom builds:**`xcaddy build --with github.com/steffenbusch/caddy-jwt-issuer` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.handlers.jwt_issuer is a Caddy module that issues JSON Web Tokens (JWT) after username and password authentication. It is intended to generate JWTs that are checked with [https://github.com/ggicci/caddy-jwt](https://github.com/ggicci/caddy-jwt), which provides the JWT Authentication. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer#sign_key)sign_key +SignKey is the base64 encoded secret key used to sign the JWTs. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer#user_db_path)user_db_path +Path to the user database file with username, password, and audience information + +[🔗](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer#token_issuer)token_issuer +JWT Issuer ("iss") + +[🔗](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer#default_token_lifetime)default_token_lifetime +Default JWT lifetime unless the user has a specific token lifetime + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. diff --git a/docs/caddy/modules/http.handlers.k8s_admission.md b/docs/caddy/modules/http.handlers.k8s_admission.md new file mode 100644 index 0000000..f842e26 --- /dev/null +++ b/docs/caddy/modules/http.handlers.k8s_admission.md @@ -0,0 +1,43 @@ +Title: Module http.handlers.k8s_admission - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.k8s_admission + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.k8s_admission**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.k8s_admission#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾ "controller": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sagikazarmark/caddy-k8s-admission](https://github.com/sagikazarmark/caddy-k8s-admission)** + +**Custom builds:**`xcaddy build --with github.com/sagikazarmark/caddy-k8s-admission` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.k8s_admission#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +http.handlers.k8s_admission is a Caddy HTTP handler that processes Kubernetes admission webhook requests. + +It acts as a host module that loads guest admission controller modules. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.k8s_admission#controller)controller +ControllerRaw holds the raw JSON configuration for the admission controller. diff --git a/docs/caddy/modules/http.handlers.lambda.md b/docs/caddy/modules/http.handlers.lambda.md new file mode 100644 index 0000000..a26cbc1 --- /dev/null +++ b/docs/caddy/modules/http.handlers.lambda.md @@ -0,0 +1,150 @@ +Title: Module http.handlers.lambda - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.lambda + +Markdown Content: +Module http.handlers.lambda - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.lambda +=========================== + + There is more than one module named **Module http.handlers.lambda**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.lambda#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/greenpau/caddy-lambda + +`{▾ "name": "", "runtime": "", "entrypoint_path": "", "entrypoint_handler": "", "python_executable": "", "workers": 0, "worker_timeout": 0, "uri_filter": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/greenpau/caddy-lambda](https://github.com/greenpau/caddy-lambda)** + +**Custom builds:**`xcaddy build --with github.com/greenpau/caddy-lambda` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.lambda#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.handlers.lambda is a middleware which triggers execution of a function when it is invoked. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lambda#name)name +Name stores the name associated with the function. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lambda#runtime)runtime +Runtime stores the runtime of the function, e.g. python. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lambda#entrypoint_path)entrypoint_path +EntrypointPath stores the path to the function's entrypoint, e.g. python script path. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lambda#entrypoint_handler)entrypoint_handler +EntrypointHandler stores the name of the function to invoke at the Entrypoint. e.g handler. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lambda#python_executable)python_executable +PythonExecutable stores the path to the python executable. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lambda#workers)workers +MaxWorkersCount stores the max number of concurrent runtimes. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lambda#worker_timeout)worker_timeout +WorkerTimeout stores the maximum number of seconds a function would run. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lambda#uri_filter)uri_filter +If URIFilter is not empty, then only the plugin intercepts only the pages matching the regular expression in the filter + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.ldap_basic_auth.md b/docs/caddy/modules/http.handlers.ldap_basic_auth.md new file mode 100644 index 0000000..1d05e01 --- /dev/null +++ b/docs/caddy/modules/http.handlers.ldap_basic_auth.md @@ -0,0 +1,47 @@ +Title: Module http.handlers.ldap_basic_auth - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth + +Markdown Content: +There is more than one module named **Module http.handlers.ldap_basic_auth**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +`{▾ "ldap_server": "", "base_dn": "", "user_attr": "", "group_membership_dn": "", "group_membership_attr": "", "use_ldaps": false, "insecure_skip_verify": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/bluewalk/caddy-ldap-basic-auth](https://github.com/bluewalk/caddy-ldap-basic-auth)** + +**Custom builds:**`xcaddy build --with github.com/bluewalk/caddy-ldap-basic-auth` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth#ldap_server)ldap_server +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth#base_dn)base_dn +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth#user_attr)user_attr +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth#group_membership_dn)group_membership_dn +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth#group_membership_attr)group_membership_attr +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth#use_ldaps)use_ldaps +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth#insecure_skip_verify)insecure_skip_verify +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.listencaddy.md b/docs/caddy/modules/http.handlers.listencaddy.md new file mode 100644 index 0000000..fdaa317 --- /dev/null +++ b/docs/caddy/modules/http.handlers.listencaddy.md @@ -0,0 +1,53 @@ +Title: Module http.handlers.listencaddy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.listencaddy + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.listencaddy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.listencaddy#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "apikey": "", "banned_uris": "", "whitelisted_ips": "", "abuseipdb_message": "", "respond_message": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/Odyssey346/ListenCaddy](https://github.com/Odyssey346/ListenCaddy)** + +**Custom builds:**`xcaddy build --with github.com/Odyssey346/ListenCaddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.listencaddy#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +http.handlers.listencaddy is a Caddy http.handlers module that listens for requests to specific URIs/paths and reports IPs that hit these URIs to AbuseIPDB. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.listencaddy#apikey)apikey +APIKey is the API key from AbuseIPDB. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.listencaddy#banned_uris)banned_uris +BannedURIs is a regex of banned URIs/paths. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.listencaddy#whitelisted_ips)whitelisted_ips +WhitelistedIPs is a regex of whitelisted IPs. (optional) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.listencaddy#abuseipdb_message)abuseipdb_message +AbuseIPDBMessage is the message that will be sent to AbuseIPDB. Uses Go templates (do {{.Path}} to get path accessed) (optional) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.listencaddy#respond_message)respond_message +ResponseMessage is the message that will be sent to the client accessing a resource they're not supposed to. Uses Go templates (do {{.Path}} to get path accessed) (optional) diff --git a/docs/caddy/modules/http.handlers.log_append.md b/docs/caddy/modules/http.handlers.log_append.md new file mode 100644 index 0000000..f00d4aa --- /dev/null +++ b/docs/caddy/modules/http.handlers.log_append.md @@ -0,0 +1,44 @@ +Title: Module http.handlers.log_append - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.log_append + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.log_append**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.log_append#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "key": "", "value": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.log_append#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.handlers.log_append implements a middleware that takes a key and value, where the key is the name of a log field and the value is a placeholder, or variable key, or constant value to use for that field. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.log_append#key)key +Key is the name of the log field. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.log_append#value)value +Value is the value to use for the log field. If it is a placeholder (with surrounding `{}`), it will be evaluated when the log is written. If the value is a key that exists in the `vars` map, the value of that key will be used. Otherwise the value will be used as-is as a constant string. diff --git a/docs/caddy/modules/http.handlers.lura.md b/docs/caddy/modules/http.handlers.lura.md new file mode 100644 index 0000000..3690dd0 --- /dev/null +++ b/docs/caddy/modules/http.handlers.lura.md @@ -0,0 +1,87 @@ +Title: Module http.handlers.lura - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.lura + +Markdown Content: +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints)endpoints +Set of endpoint definitions representing the gateway public API. + +Endpoint represents a public-facing gateway URL with specific configurations. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/url_pattern)endpoints/url_pattern +URLPattern defines the endpoint URL, supporting path parameters. It specifies the public API endpoint exposed by the gateway. + +Example: "/users/{id}/permissions" + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/method)endpoints/method +Method specifies the HTTP method for the endpoint. If not specified, "GET" is assumed. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/concurrent_calls)endpoints/concurrent_calls +ConcurrentCalls specifies the number of concurrent calls this endpoint makes to each backend. Controls the concurrency of backend requests to optimize performance. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/timeout)endpoints/timeout +Timeout specifies the timeout duration for requests to this endpoint. Overrides the default timeout if set. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/cache_ttl)endpoints/cache_ttl +CacheTTL specifies the cache duration for responses from this endpoint. Controls caching headers for client caching. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/backends)endpoints/backends +Backends specifies the set of backend services that serve requests for this endpoint. Responses from multiple backends are aggregated based on rules defined in the gateway configuration. + +Backend represents a backend service that handles requests for an endpoint. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/backends/host)endpoints/backends/host +Host specifies the list of backend hosts. Requests are load balanced between these hosts. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/backends/url_pattern)endpoints/backends/url_pattern +URLPattern specifies the URL pattern to locate the resource on the backend service. Path variables defined in the endpoint configuration can be used here, along with any Caddy placeholders. + +Example: "/api/{header.X-Tenant-Id}/resources/{id}" + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/backends/allow_list)endpoints/backends/allow_list +AllowList specifies the list of response fields allowed from the backend. If empty, all fields are returned. Helps in filtering unnecessary data from responses. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/backends/mapping)endpoints/backends/mapping +Mapping specifies renaming rules for response fields. Useful for standardizing response formats. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/backends/group)endpoints/backends/group +Group specifies the property name to which the response should be moved. Useful for combining responses from multiple backends. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#endpoints/backends/method)endpoints/backends/method +Method specifies the HTTP method used for requests to the backend service. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#timeout)timeout +Default timeout applied to all backends. This timeout is applied if not overridden at the endpoint level. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#cache_ttl)cache_ttl +Default cache duration applied to all backends. This affects caching headers for responses. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#debug_endpoint)debug_endpoint +DebugEndpoint exposes an URL that can be used as a fake backend when the API gateway itself is used as a backend host. It logs all activity to aid in debugging interactions between the gateway and backends when Caddy is run with debug logging. + +HelperEndpoint represents a helper endpoint for developers within the Caddy web server. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#debug_endpoint/url_pattern)debug_endpoint/url_pattern +URLPattern specifies the URL where the helper endpoint is served. Default value is "/__debug/". + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#debug_endpoint/enabled)debug_endpoint/enabled +Enabled specifies whether the helper endpoint is enabled or not. Default value is "/__echo/" + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#echo_endpoint)echo_endpoint +EchoEndpoint is a developer tool similar to DebugEndpoint but instead of logging, responses are printed directly. Useful for debugging configurations without verbose logging. + +HelperEndpoint represents a helper endpoint for developers within the Caddy web server. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#echo_endpoint/url_pattern)echo_endpoint/url_pattern +URLPattern specifies the URL where the helper endpoint is served. Default value is "/__debug/". + +[🔗](https://caddyserver.com/docs/modules/http.handlers.lura#echo_endpoint/enabled)echo_endpoint/enabled +Enabled specifies whether the helper endpoint is enabled or not. Default value is "/__echo/" diff --git a/docs/caddy/modules/http.handlers.map.md b/docs/caddy/modules/http.handlers.map.md new file mode 100644 index 0000000..56d8ff4 --- /dev/null +++ b/docs/caddy/modules/http.handlers.map.md @@ -0,0 +1,151 @@ +Title: Module http.handlers.map - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.map + +Markdown Content: +Module http.handlers.map - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.map +======================== + + There is more than one module named **Module http.handlers.map**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.map#docs "Direct link") +------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "source": "", "destinations": [""], "mappings": [{▾ "input": "", "input_regexp": "", "outputs": [] }], "defaults": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.map#docs "Direct link") +------------------------------------------------------------------------------------------ + +http.handlers.map implements a middleware that maps inputs to outputs. Specifically, it compares a source value against the map inputs, and for one that matches, it applies the output values to each destination. Destinations become placeholder names. + +Mapped placeholders are not evaluated until they are used, so even for very large mappings, this handler is quite efficient. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.map#source)source +Source is the placeholder from which to get the input value. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.map#destinations)destinations +Destinations are the names of placeholders in which to store the outputs. Destination values should be wrapped in braces, for example, {my_placeholder}. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.map#mappings)mappings +Mappings from source values (inputs) to destination values (outputs). The first matching, non-nil mapping will be applied. + +Mapping describes a mapping from input to outputs. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.map#mappings/input)mappings/input +The input value to match. Must be distinct from other mappings. Mutually exclusive to input_regexp. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.map#mappings/input_regexp)mappings/input_regexp +The input regular expression to match. Mutually exclusive to input. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.map#mappings/outputs)mappings/outputs +Upon a match with the input, each output is positionally correlated with each destination of the parent handler. An output that is null (nil) will be treated as if it was not mapped at all. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.map#defaults)defaults +If no mappings match or if the mapped output is null/nil, the associated default output will be applied (optional). + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.mercure.md b/docs/caddy/modules/http.handlers.mercure.md new file mode 100644 index 0000000..c470360 --- /dev/null +++ b/docs/caddy/modules/http.handlers.mercure.md @@ -0,0 +1,69 @@ +Title: Module http.handlers.mercure - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.mercure + +Markdown Content: +http.handlers.mercure implements a Mercure hub as a Caddy module. Mercure is a protocol allowing to push data updates to web browsers and other HTTP clients in a convenient, fast, reliable and battery-efficient way. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#anonymous)anonymous +Allow subscribers with no valid JWT. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#subscriptions)subscriptions +Dispatch updates when subscriptions are created or terminated + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#demo)demo +Enable the demo. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#ui)ui +Enable the UI. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#write_timeout)write_timeout +Maximum duration before closing the connection, defaults to 600s, set to 0 to disable. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#dispatch_timeout)dispatch_timeout +Maximum dispatch duration of an update, defaults to 5s. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#heartbeat)heartbeat +Frequency of the heartbeat, defaults to 40s. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#publisher_jwt)publisher_jwt +JWT key and signing algorithm to use for publishers. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#publisher_jwt/key)publisher_jwt/key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#publisher_jwt/alg)publisher_jwt/alg +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#subscriber_jwt)subscriber_jwt +JWT key and signing algorithm to use for subscribers. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#subscriber_jwt/key)subscriber_jwt/key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#subscriber_jwt/alg)subscriber_jwt/alg +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#publish_origins)publish_origins +Origins allowed to publish updates + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#cors_origins)cors_origins +Allowed CORS origins. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#transport_url)transport_url +Transport to use. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#lru_shard_size)lru_shard_size +Triggers use of LRU topic selector cache and avoidance of select priority queue (recommend 10,000 - 1,000,000) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#cookie_name)cookie_name +The name of the authorization cookie. Defaults to "mercureAuthorization". + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mercure#protocol_version_compatibility)protocol_version_compatibility +The version of the Mercure protocol to be backward compatible with (only version 7 is supported) diff --git a/docs/caddy/modules/http.handlers.metrics.md b/docs/caddy/modules/http.handlers.metrics.md new file mode 100644 index 0000000..16124f1 --- /dev/null +++ b/docs/caddy/modules/http.handlers.metrics.md @@ -0,0 +1,41 @@ +Title: Module http.handlers.metrics - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.metrics + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.metrics**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.metrics#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "disable_openmetrics": false}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.metrics#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.handlers.metrics is a module that serves a /metrics endpoint so that any gathered metrics can be exposed for scraping. This module is configurable by end-users unlike AdminMetrics. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.metrics#disable_openmetrics)disable_openmetrics +Disable OpenMetrics negotiation, enabled by default. May be necessary if the produced metrics cannot be parsed by the service scraping metrics. diff --git a/docs/caddy/modules/http.handlers.minifier.md b/docs/caddy/modules/http.handlers.minifier.md new file mode 100644 index 0000000..a279e94 --- /dev/null +++ b/docs/caddy/modules/http.handlers.minifier.md @@ -0,0 +1,36 @@ +Title: Module http.handlers.minifier - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.minifier + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.minifier**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.minifier#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/devetek/caddyserver-minifier](https://github.com/devetek/caddyserver-minifier)** + +**Custom builds:**`xcaddy build --with github.com/devetek/caddyserver-minifier` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.minifier#docs "Direct link") +----------------------------------------------------------------------------------------------- diff --git a/docs/caddy/modules/http.handlers.mirror.md b/docs/caddy/modules/http.handlers.mirror.md new file mode 100644 index 0000000..721587e --- /dev/null +++ b/docs/caddy/modules/http.handlers.mirror.md @@ -0,0 +1,163 @@ +Title: Module http.handlers.mirror - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.mirror + +Markdown Content: +Module http.handlers.mirror - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.mirror +=========================== + + There is more than one module named **Module http.handlers.mirror**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/dotvezz/caddy-mirror + +`{▾ "compare_status": false, "compare_body": false, "compare_headers": [""], "compare_jq": [""], "no_log": false, "log_level": "", "metrics_name": "", "secondary": {•••}, "primary": {•••}, "secondary_timeout": "", "mirror_rate": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/dotvezz/caddy-mirror](https://github.com/dotvezz/caddy-mirror)** + +**Custom builds:**`xcaddy build --with github.com/dotvezz/caddy-mirror` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.handlers.mirror runs multiple handlers and aggregates their results + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#compare_status)compare_status +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#compare_body)compare_body +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#compare_headers)compare_headers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#compare_jq)compare_jq +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#no_log)no_log +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#log_level)log_level +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#metrics_name)metrics_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#secondary)secondary +There are no docs for this property. + +Fulfilled by modules in namespace: **undefined** + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#primary)primary +There are no docs for this property. + +Fulfilled by modules in namespace: **undefined** + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#secondary_timeout)secondary_timeout +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.mirror#mirror_rate)mirror_rate +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.myplugin.md b/docs/caddy/modules/http.handlers.myplugin.md new file mode 100644 index 0000000..be8a03f --- /dev/null +++ b/docs/caddy/modules/http.handlers.myplugin.md @@ -0,0 +1,36 @@ +Title: Module http.handlers.myplugin - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.myplugin + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.myplugin**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.myplugin#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/Boomchainlab/vite-react-template](https://github.com/Boomchainlab/vite-react-template)** + +**Custom builds:**`xcaddy build --with github.com/Boomchainlab/vite-react-template/caddy-plugin` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.myplugin#docs "Direct link") +----------------------------------------------------------------------------------------------- diff --git a/docs/caddy/modules/http.handlers.nobots.md b/docs/caddy/modules/http.handlers.nobots.md new file mode 100644 index 0000000..e52ce10 --- /dev/null +++ b/docs/caddy/modules/http.handlers.nobots.md @@ -0,0 +1,154 @@ +Title: Module http.handlers.nobots - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.nobots + +Markdown Content: +Module http.handlers.nobots - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.nobots +=========================== + + There is more than one module named **Module http.handlers.nobots**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.nobots#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mkalus/caddy_nobots_v2 + +`{▾ "show_hits": false, "show_misses": false, "show_public": false, "uas": [""], "contains": [""], "bomb": "", "re": [{▾ }], "public": [{▾ }]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mkalus/caddy_nobots_v2](https://github.com/mkalus/caddy_nobots_v2)** + +**Custom builds:**`xcaddy build --with github.com/mkalus/caddy_nobots_v2` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.nobots#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.handlers.nobots is a Caddy Server plugin to protect your website against web crawlers and bots. It is an enhancement of the v1 version [https://github.com/caddy-plugins/nobots](https://github.com/caddy-plugins/nobots) + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.nobots#show_hits)show_hits +Set to true to log hits (blocked requests) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.nobots#show_misses)show_misses +Set to true to log misses (non-blocked requests) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.nobots#show_public)show_public +Set to true to log requests to public directories + +[🔗](https://caddyserver.com/docs/modules/http.handlers.nobots#uas)uas +User-Agents to block (full name) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.nobots#contains)contains +Partial strings for user-agents to block + +[🔗](https://caddyserver.com/docs/modules/http.handlers.nobots#bomb)bomb +Bomb file or string. Should be a gzipped file. Allowed predefined bomb strings are: 1G, 10G, 1T + +[🔗](https://caddyserver.com/docs/modules/http.handlers.nobots#re)re +Regular expressions for user-agents to block + +Regexp is the representation of a compiled regular expression. A Regexp is safe for concurrent use by multiple goroutines, except for configuration methods, such as Longest. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.nobots#public)public +Public directories to exclude from blocking (regular expressions) + +Regexp is the representation of a compiled regular expression. A Regexp is safe for concurrent use by multiple goroutines, except for configuration methods, such as Longest. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.oauth2_token_introspection.md b/docs/caddy/modules/http.handlers.oauth2_token_introspection.md new file mode 100644 index 0000000..8011a53 --- /dev/null +++ b/docs/caddy/modules/http.handlers.oauth2_token_introspection.md @@ -0,0 +1,154 @@ +Title: Module http.handlers.oauth2_token_introspection - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection + +Markdown Content: +Module http.handlers.oauth2_token_introspection - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.oauth2_token_introspection +=============================================== + + There is more than one module named **Module http.handlers.oauth2_token_introspection**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection#docs "Direct link") +----------------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/bploetz/caddy-oauth2-token-introspection + +``` +{▾ "token_location": "", "introspection_endpoint": "", "introspection_authentication_strategy": "", "introspection_client_id": "", "introspection_client_secret": "", "introspection_bearer_token": "", "introspection_timeout": 0, "inbound_headers": { + "": "" + }} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/bploetz/caddy-oauth2-token-introspection](https://github.com/bploetz/caddy-oauth2-token-introspection)** + +**Custom builds:**`xcaddy build --with github.com/bploetz/caddy-oauth2-token-introspection` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection#docs "Direct link") +----------------------------------------------------------------------------------------------------------------- + +http.handlers.oauth2_token_introspection is a Caddy http.handlers Module for authorizing requests via OAuth2 Token Introspection + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection#token_location)token_location +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection#introspection_endpoint)introspection_endpoint +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection#introspection_authentication_strategy)introspection_authentication_strategy +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection#introspection_client_id)introspection_client_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection#introspection_client_secret)introspection_client_secret +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection#introspection_bearer_token)introspection_bearer_token +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection#introspection_timeout)introspection_timeout +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection#inbound_headers)inbound_headers +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.olaf.md b/docs/caddy/modules/http.handlers.olaf.md new file mode 100644 index 0000000..940ed3b --- /dev/null +++ b/docs/caddy/modules/http.handlers.olaf.md @@ -0,0 +1,103 @@ +Title: Module http.handlers.olaf - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.olaf + +Markdown Content: +Module http.handlers.olaf - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.olo_signature.md b/docs/caddy/modules/http.handlers.olo_signature.md new file mode 100644 index 0000000..d42c1b7 --- /dev/null +++ b/docs/caddy/modules/http.handlers.olo_signature.md @@ -0,0 +1,42 @@ +Title: Module http.handlers.olo_signature - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.olo_signature + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.olo_signature**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.olo_signature#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾ "client_id": "", "client_secret": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/dbaggett/caddy-olo-signature-authorization](https://github.com/dbaggett/caddy-olo-signature-authorization)** + +**Custom builds:**`xcaddy build --with github.com/dbaggett/caddy-olo-signature-authorization` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.olo_signature#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.olo_signature#client_id)client_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.olo_signature#client_secret)client_secret +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.openapi.md b/docs/caddy/modules/http.handlers.openapi.md new file mode 100644 index 0000000..25f58f9 --- /dev/null +++ b/docs/caddy/modules/http.handlers.openapi.md @@ -0,0 +1,54 @@ +Title: Module http.handlers.openapi - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.openapi + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.openapi**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "spec": "", "fall_through": false, "log_error": false, "req_params": false, "req_body": false, "req_body_type": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/chukmunnlee/caddy-openapi](https://github.com/chukmunnlee/caddy-openapi)** + +**Custom builds:**`xcaddy build --with github.com/chukmunnlee/caddy-openapi` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi#docs "Direct link") +---------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi#spec)spec +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi#fall_through)fall_through +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi#log_error)log_error +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi#req_params)req_params +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi#req_body)req_body +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi#req_body_type)req_body_type +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.openapi_validator.md b/docs/caddy/modules/http.handlers.openapi_validator.md new file mode 100644 index 0000000..2076d37 --- /dev/null +++ b/docs/caddy/modules/http.handlers.openapi_validator.md @@ -0,0 +1,156 @@ +Title: Module http.handlers.openapi_validator - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.openapi_validator + +Markdown Content: +Module http.handlers.openapi_validator - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.openapi_validator +====================================== + + There is more than one module named **Module http.handlers.openapi_validator**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/hslatman/caddy-openapi-validator + +`{▾ "filepath": "", "validate_routes": false, "validate_requests": false, "validate_responses": false, "validate_servers": false, "validate_security": false, "path_prefix_to_be_trimmed": "", "additional_servers": [""], "enforce": false, "log": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/hslatman/caddy-openapi-validator](https://github.com/hslatman/caddy-openapi-validator)** + +**Custom builds:**`xcaddy build --with github.com/hslatman/caddy-openapi-validator` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +http.handlers.openapi_validator is used to validate OpenAPI requests and responses against an OpenAPI specification + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#filepath)filepath +The filepath to the OpenAPI (v3) specification to use + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#validate_routes)validate_routes +Indicates whether routes should be validated When ValidateRequests or ValidateResponses is true, ValidateRoutes should also be true Default is true + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#validate_requests)validate_requests +Indicates whether request validation should be enabled Default is true + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#validate_responses)validate_responses +Indicates whether request validation should be enabled Default is true + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#validate_servers)validate_servers +Indicates whether request validation should be enabled Default is true + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#validate_security)validate_security +Indicates whether request validation should be enabled Default is true + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#path_prefix_to_be_trimmed)path_prefix_to_be_trimmed +URL path prefix that is trimmed from the URL path. It can be of use when server validation is turned off and the paths in an OpenAPI spec do not match the implementation directly, i.e. are missing an /api prefix, for example. Default is empty string, resulting in no prefix trimming. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#additional_servers)additional_servers +A list of additional servers to be considered valid when when performing the request validation. The additional servers are added to the servers in the OpenAPI specification. Default is empty list + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#enforce)enforce +Indicates whether the OpenAPI specification should be enforced, meaning that invalid requests and responses will be filtered and an (appropriate) status is returned Default is true + +[🔗](https://caddyserver.com/docs/modules/http.handlers.openapi_validator#log)log +To log or not to log Default is true + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.php.md b/docs/caddy/modules/http.handlers.php.md new file mode 100644 index 0000000..c8afb74 --- /dev/null +++ b/docs/caddy/modules/http.handlers.php.md @@ -0,0 +1,52 @@ +Title: Module http.handlers.php - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.php + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.php**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.php#docs "Direct link") +------------------------------------------------------------------------------------------ + +``` +{▾ "root": "", "split_path": [""], "resolve_root_symlink": false, "env": { + "": "" + }} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/dunglas/frankenphp](https://github.com/dunglas/frankenphp)** + +**Custom builds:**`xcaddy build --with github.com/dunglas/frankenphp/caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.php#docs "Direct link") +------------------------------------------------------------------------------------------ + +[🔗](https://caddyserver.com/docs/modules/http.handlers.php#root)root +Root sets the root folder to the site. Default: `root` directive. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.php#split_path)split_path +SplitPath sets the substrings for splitting the URI into two parts. The first matching substring will be used to split the "path info" from the path. The first piece is suffixed with the matching substring and will be assumed as the actual resource (CGI script) name. The second piece will be set to PATH_INFO for the CGI script to use. Default: `.php`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.php#resolve_root_symlink)resolve_root_symlink +ResolveRootSymlink enables resolving the `root` directory to its actual value by evaluating a symbolic link, if one exists. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.php#env)env +Env sets an extra environment variable to the given value. Can be specified more than once for multiple environment variables. diff --git a/docs/caddy/modules/http.handlers.pirsch.md b/docs/caddy/modules/http.handlers.pirsch.md new file mode 100644 index 0000000..c55ce36 --- /dev/null +++ b/docs/caddy/modules/http.handlers.pirsch.md @@ -0,0 +1,48 @@ +Title: Module http.handlers.pirsch - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.pirsch + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.pirsch**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.pirsch#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "client_id": "", "client_secret": "", "host_name": "", "base_url": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/muety/caddy-pirsch-plugin](https://github.com/muety/caddy-pirsch-plugin)** + +**Custom builds:**`xcaddy build --with github.com/muety/caddy-pirsch-plugin` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.pirsch#docs "Direct link") +--------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.pirsch#client_id)client_id +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.pirsch#client_secret)client_secret +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.pirsch#host_name)host_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.pirsch#base_url)base_url +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.pixbooster.md b/docs/caddy/modules/http.handlers.pixbooster.md new file mode 100644 index 0000000..e507792 --- /dev/null +++ b/docs/caddy/modules/http.handlers.pixbooster.md @@ -0,0 +1,36 @@ +Title: Module http.handlers.pixbooster - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.pixbooster + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.pixbooster**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.pixbooster#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/PixyBlue/caddy-pixbooster](https://github.com/PixyBlue/caddy-pixbooster)** + +**Custom builds:**`xcaddy build --with github.com/PixyBlue/caddy-pixbooster` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.pixbooster#docs "Direct link") +------------------------------------------------------------------------------------------------- diff --git a/docs/caddy/modules/http.handlers.placeholder_dump.md b/docs/caddy/modules/http.handlers.placeholder_dump.md new file mode 100644 index 0000000..e1a5d8a --- /dev/null +++ b/docs/caddy/modules/http.handlers.placeholder_dump.md @@ -0,0 +1,47 @@ +Title: Module http.handlers.placeholder_dump - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.placeholder_dump + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.placeholder_dump**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +`{▾ "file": "", "logger_suffix": "", "content": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/steffenbusch/caddy-placeholder-dump](https://github.com/steffenbusch/caddy-placeholder-dump)** + +**Custom builds:**`xcaddy build --with github.com/steffenbusch/caddy-placeholder-dump` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +http.handlers.placeholder_dump is a Caddy module that dumps a placeholder to a file or logs it to a specified logger. It logs the resolved placeholder values to the specified file or logger. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump#file)file +File is the path to the file where the content will be written. If the file does not exist, it will be created. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump#logger_suffix)logger_suffix +LoggerSuffix is the suffix appended to the module's logger name. If set, the content will be logged to the logger with this suffix. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump#content)content +Content is the content to be written to the file or logged. It can contain placeholders that will be resolved at runtime. diff --git a/docs/caddy/modules/http.handlers.plausible.md b/docs/caddy/modules/http.handlers.plausible.md new file mode 100644 index 0000000..36e8c7e --- /dev/null +++ b/docs/caddy/modules/http.handlers.plausible.md @@ -0,0 +1,42 @@ +Title: Module http.handlers.plausible - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.plausible + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.plausible**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.plausible#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "base_url": "", "domain_name": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/muety/caddy-plausible-plugin](https://github.com/muety/caddy-plausible-plugin)** + +**Custom builds:**`xcaddy build --with github.com/muety/caddy-plausible-plugin` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.plausible#docs "Direct link") +------------------------------------------------------------------------------------------------ + +[🔗](https://caddyserver.com/docs/modules/http.handlers.plausible#base_url)base_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.plausible#domain_name)domain_name +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.pmtiles_proxy.md b/docs/caddy/modules/http.handlers.pmtiles_proxy.md new file mode 100644 index 0000000..c426419 --- /dev/null +++ b/docs/caddy/modules/http.handlers.pmtiles_proxy.md @@ -0,0 +1,47 @@ +Title: Module http.handlers.pmtiles_proxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.pmtiles_proxy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾ "bucket": "", "cache_size": 0, "public_hostname": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/protomaps/go-pmtiles](https://github.com/protomaps/go-pmtiles)** + +**Custom builds:**`xcaddy build --with github.com/protomaps/go-pmtiles/caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +http.handlers.pmtiles_proxy creates a Z/X/Y tileserver backed by a local or remote bucket of PMTiles archives. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy#bucket)bucket +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy#cache_size)cache_size +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy#public_hostname)public_hostname +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.pocketbase.md b/docs/caddy/modules/http.handlers.pocketbase.md new file mode 100644 index 0000000..1559e70 --- /dev/null +++ b/docs/caddy/modules/http.handlers.pocketbase.md @@ -0,0 +1,38 @@ +Title: Module http.handlers.pocketbase - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.pocketbase + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.pocketbase**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.pocketbase#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-pocketbase](https://github.com/mohammed90/caddy-pocketbase)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-pocketbase` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.pocketbase#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.handlers.pocketbase implements an HTTP handler that proxies requests internally to a PocketBase server. It can be used in conjunction with the PocketBase app. If the PocketBase app is not explicitly configured, a PocketBase app with default config is used. diff --git a/docs/caddy/modules/http.handlers.postauth2fa.md b/docs/caddy/modules/http.handlers.postauth2fa.md new file mode 100644 index 0000000..7a4d1bc --- /dev/null +++ b/docs/caddy/modules/http.handlers.postauth2fa.md @@ -0,0 +1,75 @@ +Title: Module http.handlers.postauth2fa - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.postauth2fa + +Markdown Content: +There is more than one module named **Module http.handlers.postauth2fa**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "session_inactivity_timeout": 0, "secrets_file_path": "", "cookie_name": "", "cookie_path": "", "cookie_domain": "", "username_placeholder": "", "ip_binding": "", "form_template": "", "totp_code_length": 0, "sign_key": "", "encryption_key": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/steffenbusch/caddy-postauth-2fa](https://github.com/steffenbusch/caddy-postauth-2fa)** + +**Custom builds:**`xcaddy build --with github.com/steffenbusch/caddy-postauth-2fa` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +http.handlers.postauth2fa is a Caddy HTTP handler module that adds TOTP-based two-factor authentication (2FA) after a primary authentication handler (such as basic_auth). It enforces an additional TOTP code check for protected routes. The module supports per-user TOTP secrets (plaintext or AES-GCM-encrypted), session management via JWT cookies, and optional IP binding for session validation. Features: + +* TOTP 2FA enforcement after primary authentication (e.g., basic_auth, jwtauth, etc.) +* Per-user TOTP secrets (plaintext or encrypted), loaded from a JSON file (map of usernames) +* Configurable inactivity timeout for 2FA sessions (JWT-based, stateless, cookie storage) +* Optional IP binding for session validation (enabled by default, can be disabled or templated) +* Customizable session cookie name, path, and domain +* Customizable HTML form template for TOTP code entry +* Per-user or global TOTP code length (6 or 8 digits) +* Secure handling of secrets and keys (Caddy placeholders and file includes supported) +* No server-side session state: JWTs are stateless, reloads/restarts do not invalidate sessions + +Note: This module does not provide user management, TOTP provisioning, or logout functionality. It is intended to be used together with a primary authentication handler. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#session_inactivity_timeout)session_inactivity_timeout +SessionInactivityTimeout defines the maximum allowed period of inactivity before a 2FA session expires and requires re-authentication. Default is 60 minutes. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#secrets_file_path)secrets_file_path +SecretsFilePath specifies the path to the JSON file containing TOTP secrets for each user. This file should contain usernames and their corresponding TOTP secrets. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#cookie_name)cookie_name +CookieName defines the name of the cookie used to store the session token for 2FA. Default is `cpa_sess`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#cookie_path)cookie_path +CookiePath specifies the path scope of the cookie. This restricts where the cookie is sent on the server. Default is `/`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#cookie_domain)cookie_domain +CookieDomain specifies the domain scope of the cookie. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#username_placeholder)username_placeholder +UsernamePlaceholder defines the Caddy placeholder used to extract the authenticated username from the request context. This should match the placeholder set by the authentication handler, such as "{http.auth.user.id}" for basic_auth. If not set, defaults to "{http.auth.user.id}". + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#ip_binding)ip_binding +IPBinding controls whether the session is bound to the client IP address. Accepts "true" (default) or "false". Can use Caddy placeholders. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#form_template)form_template +Filename of the custom template to use instead of the embedded default template. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#totp_code_length)totp_code_length +TOTPCodeLength defines the expected length of the TOTP code (default: 6). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#sign_key)sign_key +SignKey is the base64 encoded secret key used to sign the JWTs. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.postauth2fa#encryption_key)encryption_key +EncryptionKey is the base64 encoded key used to decrypt encrypted TOTP secrets. diff --git a/docs/caddy/modules/http.handlers.prometheus.md b/docs/caddy/modules/http.handlers.prometheus.md new file mode 100644 index 0000000..1711ddc --- /dev/null +++ b/docs/caddy/modules/http.handlers.prometheus.md @@ -0,0 +1,103 @@ +Title: Module http.handlers.prometheus - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.prometheus + +Markdown Content: +Module http.handlers.prometheus - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.public_suffix.md b/docs/caddy/modules/http.handlers.public_suffix.md new file mode 100644 index 0000000..3d30e68 --- /dev/null +++ b/docs/caddy/modules/http.handlers.public_suffix.md @@ -0,0 +1,65 @@ +Title: Module http.handlers.public_suffix - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.public_suffix + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.public_suffix**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.public_suffix#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-psl](https://github.com/mholt/caddy-psl)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-psl` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.public_suffix#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +http.handlers.public_suffix adds placeholders that return values based on the Public Suffix List, or PSL ([https://publicsuffix.org](https://publicsuffix.org/)). The placeholders can be useful for routing, responses, headers, or any other logic in your server config. + +Placeholders are created with these possible input prefixes: + +* **`qs.*`** gets a value from the query string with the named key, e.g. for a query string `?foo=example.com`, `qs.foo` would refer to the value `example.com`. +* **`header.*`** gets a value from the header with the named field, e.g. for a header `Host: example.com:1234`, `header.Host` refers to the value `example.com`. + +For all input values, ports are ignored automatically. + +The placeholders created by this handler must then have one of the following output endings: + +* **`.is_icann`** returns true if the longest matching suffix is ICANN-managed, or false if the domain is privately managed (i.e. not an ICANN ending). + +* **`.public_suffix`** returns the "Effective TLD" or the eTLD, which is basically the matching ICANN-managed entry in the PSL. For example, the eTLD of `sub.example.com` is `com`, and the eTLD of `foo.bar.com.au` is `com.au`. Privately-managed endings are NOT matched by this placeholder, so `foo.blogspot.com` would return `com`, not `blogspot.com` even though `blogspot.com` is on the PSL. + +* **`.domain_suffix`** is the same as the `.public_suffix` placeholder ending, except that it doesn't discriminate ICANN-managed labels. In other words, in `foo.blogspot.com`, this one would return `blogspot.com`. + +* **`.registered_domain`** returns the "Effective TLD+1" or "eTLD+1", using only ICANN-managed labels as the authority. For example, in `sub.example.com`, the registered domain is `example.com` because the public suffix is `com`. In `sub.example.co.uk`, the registered domain is `example.co.uk` because the public suffix is `co.uk`. In `foo.blogspot.com`, the registered domain is `blogspot.com` even though `blogspot.com` is itself on the PSL; this is because `blogspot.com` is privately-managed, not an ICANN suffix. + +* **`.public_registered_domain`** is the same as the `.registered_domain` placeholder, except that it only returns a value if the suffix is an ICANN ending. In other words, it returns the registered domain only if `is_icann` is true. + +Concatenate any of the placeholder prefixes with any of the placeholder endings to use the placeholder. + +Examples: + +* `{qs.domain.public_suffix}` returns the public suffix of the value in the `domain` query string parameter. +* `{header.Host.registered_domain}` returns the registered domain of the value in the `Host` header field. +* `{header.Host.public_registered_domain}` is the same as the previous, but only returns a non-empty value if the domain suffix is a public/ICANN-managed ending. diff --git a/docs/caddy/modules/http.handlers.push.md b/docs/caddy/modules/http.handlers.push.md new file mode 100644 index 0000000..d8c5c81 --- /dev/null +++ b/docs/caddy/modules/http.handlers.push.md @@ -0,0 +1,177 @@ +Title: Module http.handlers.push - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.push + +Markdown Content: +Module http.handlers.push - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.push +========================= + + There is more than one module named **Module http.handlers.push**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.push#docs "Direct link") +------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +``` +{▾ "resources": [{▾ "method": "", "target": "" }], "headers": {▾ "add": { + "": [""] + }, "set": { + "": [""] + }, "delete": [""], "replace": { + "": [{▾ "search": "", "search_regexp": "", "replace": "" }] + } }} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.push#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.handlers.push is a middleware for HTTP/2 server push. Note that HTTP/2 server push has been deprecated by some clients and its use is discouraged unless you can accurately predict which resources actually need to be pushed to the client; it can be difficult to know what the client already has cached. Pushing unnecessary resources results in worse performance. Consider using HTTP 103 Early Hints instead. + +This handler supports pushing from Link headers; in other words, if the eventual response has Link headers, this handler will push the resources indicated by those headers, even without specifying any resources in its config. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#resources)resources +The resources to push. + +Resource represents a request for a resource to push. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#resources/method)resources/method +Method is the request method, which must be GET or HEAD. Default is GET. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#resources/target)resources/target +Target is the path to the resource being pushed. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#headers)headers +Headers to modify for the push requests. + +HeaderConfig configures headers for synthetic push requests. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#headers/add)headers/add +Adds HTTP headers; does not replace any existing header fields. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#headers/set)headers/set +Sets HTTP headers; replaces existing header fields. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#headers/delete)headers/delete +Names of HTTP header fields to delete. Basic wildcards are supported: + +* Start with `*` for all field names with the given suffix; +* End with `*` for all field names with the given prefix; +* Start and end with `*` for all field names containing a substring. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#headers/replace)headers/replace +Performs in-situ substring replacements of HTTP headers. Keys are the field names on which to perform the associated replacements. If the field name is `*`, the replacements are performed on all header fields. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#headers/replace/search)headers/replace/search +The substring to search for. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#headers/replace/search_regexp)headers/replace/search_regexp +The regular expression to search with. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.push#headers/replace/replace)headers/replace/replace +The string with which to replace matches. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.quantity_limiter.md b/docs/caddy/modules/http.handlers.quantity_limiter.md new file mode 100644 index 0000000..b124b0f --- /dev/null +++ b/docs/caddy/modules/http.handlers.quantity_limiter.md @@ -0,0 +1,44 @@ +Title: Module http.handlers.quantity_limiter - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.quantity_limiter + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.quantity_limiter**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +`{▾ "parameterNamePrefix": "", "quantity": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/cubic3d/caddy-quantity-limiter](https://github.com/cubic3d/caddy-quantity-limiter)** + +**Custom builds:**`xcaddy build --with github.com/cubic3d/caddy-quantity-limiter` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +http.handlers.quantity_limiter limits the number of successful requests for a token and allows the counter to be reset. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter#parameterNamePrefix)parameterNamePrefix +Prefix to be used for GET parameters for set and get tokens. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter#quantity)quantity +Number of successful requests that can be made using a token. diff --git a/docs/caddy/modules/http.handlers.rate_limit.md b/docs/caddy/modules/http.handlers.rate_limit.md new file mode 100644 index 0000000..425e804 --- /dev/null +++ b/docs/caddy/modules/http.handlers.rate_limit.md @@ -0,0 +1,286 @@ +Title: Module http.handlers.rate_limit - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.rate_limit + +Markdown Content: +Module http.handlers.rate_limit - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.rate_limit +=============================== + + There is more than one module named **http.handlers.rate_limit**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/RussellLuo/caddy-ext + +`{▾ "key": "", "rate": "", "zone_size": 0, "reject_status": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/RussellLuo/caddy-ext](https://github.com/RussellLuo/caddy-ext)** + +**Custom builds:**`xcaddy build --with github.com/RussellLuo/caddy-ext/ratelimit` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.handlers.rate_limit implements a handler for rate-limiting. + +If a client exceeds the rate limit, an HTTP error with status `` will be returned. This error can be handled using the conventional error handlers. See [handle_errors](https://caddyserver.com/docs/caddyfile/directives/handle_errors) for how to set up error handlers. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#key)key +The variable used to differentiate one client from another. + +Currently supported variables: + +* `{path.}` +* `{query.}` +* `{header.}` +* `{cookie.}` +* `{body.}` (requires the [requestbodyvar](https://github.com/RussellLuo/caddy-ext/tree/master/requestbodyvar) extension) +* `{remote.host}` (ignores the `X-Forwarded-For` header) +* `{remote.port}` +* `{remote.ip}` (prefers the first IP in the `X-Forwarded-For` header) +* `{remote.host_prefix.}` (CIDR block version of `{remote.host}`) +* `{remote.ip_prefix.}` (CIDR block version of `{remote.ip}`) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#rate)rate +The request rate limit (per key value) specified in requests per second (r/s) or requests per minute (r/m). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#zone_size)zone_size +The size (i.e. the number of key values) of the LRU zone that keeps states of these key values. Defaults to 10,000. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#reject_status)reject_status +The HTTP status code of the response when a client exceeds the rate. Defaults to 429 (Too Many Requests). + +▸github.com/mholt/caddy-ratelimit + +``` +{▾ "rate_limits": { + "": {▾ "match": [{•••}], "key": "", "max_events": 0, "window": 0 } + }, "jitter": 0, "sweep_interval": 0, "distributed": {▾ "write_interval": 0, "read_interval": 0 }, "storage": {•••}} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-ratelimit](https://github.com/mholt/caddy-ratelimit)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-ratelimit` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.handlers.rate_limit implements rate limiting functionality. + +If a rate limit is exceeded, an HTTP error with status 429 will be returned. This error can be handled using the conventional error handling routes in your config. An additional placeholder is made available, called `{http.rate_limit.exceeded.name}`, which you can use for logging or handling; it contains the name of the rate limit zone which limit was exceeded. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#rate_limits)rate_limits +RateLimits contains the definitions of the rate limit zones, keyed by name. The name **MUST** be globally unique across all other instances of this handler. + +RateLimit describes an HTTP rate limit zone. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#rate_limits/match)rate_limits/match +Request matchers, which defines the class of requests that are in the RL zone. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.matchers** + +* [client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) +* [expression](https://caddyserver.com/docs/modules/http.matchers.expression) +* [file](https://caddyserver.com/docs/modules/http.matchers.file) +* [header](https://caddyserver.com/docs/modules/http.matchers.header) +* [header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) +* [host](https://caddyserver.com/docs/modules/http.matchers.host) +* [method](https://caddyserver.com/docs/modules/http.matchers.method) +* [not](https://caddyserver.com/docs/modules/http.matchers.not) +* [path](https://caddyserver.com/docs/modules/http.matchers.path) +* [path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) +* [protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) +* [query](https://caddyserver.com/docs/modules/http.matchers.query) +* [remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) +* [tls](https://caddyserver.com/docs/modules/http.matchers.tls) +* [vars](https://caddyserver.com/docs/modules/http.matchers.vars) +* [vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) +* [client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn)Non-standard +* [client_country](https://caddyserver.com/docs/modules/http.matchers.client_country)Non-standard +* [conneg](https://caddyserver.com/docs/modules/http.matchers.conneg)Non-standard +* [crawler](https://caddyserver.com/docs/modules/http.matchers.crawler)Non-standard +* [cron](https://caddyserver.com/docs/modules/http.matchers.cron)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.matchers.dnsfetcher)Non-standard +* [dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip)Non-standard +* [dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip)Non-standard +* [exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop)Non-standard +* [execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [geocity](https://caddyserver.com/docs/modules/http.matchers.geocity)Non-standard +* [geocn](https://caddyserver.com/docs/modules/http.matchers.geocn)Non-standard +* [geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn)Non-standard +* [geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country)Non-standard +* [maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation)Non-standard +* [remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host)Non-standard +* [signed](https://caddyserver.com/docs/modules/http.matchers.signed)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#rate_limits/key)rate_limits/key +The key which uniquely differentiates rate limits within this zone. It could be a static string (no placeholders), resulting in one and only one rate limiter for the whole zone. Or, placeholders could be used to dynamically allocate rate limiters. For example, a key of "foo" will create exactly one rate limiter for all clients. But a key of "{http.request.remote.host}" will create one rate limiter for each different client IP address. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#rate_limits/max_events)rate_limits/max_events +Number of events allowed within the window. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#rate_limits/window)rate_limits/window +Duration of the sliding window. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#jitter)jitter +Percentage jitter on expiration times (example: 0.2 means 20% jitter) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#sweep_interval)sweep_interval +How often to scan for expired rate limit states. Default: 1m. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#distributed)distributed +Enables distributed rate limiting. For this to work properly, rate limit zones must have the same configuration for all instances in the cluster because an instance's own configuration is used to calculate whether a rate limit is exceeded. As usual, a cluster is defined to be all instances sharing the same storage configuration. + +DistributedRateLimiting enables and customizes distributed rate limiting. It works by writing out the state of all internal rate limiters to storage, and reading in the state of all other rate limiters in the cluster, every so often. + +Distributed rate limiting is not exact like the standard internal rate limiting, but it is eventually consistent. Lower (more frequent) sync intervals will result in higher consistency and precision, but more I/O and CPU overhead. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#distributed/write_interval)distributed/write_interval +How often to sync internal state to storage. Default: 5s + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#distributed/read_interval)distributed/read_interval +How often to sync other instances' states from storage. Default: 5s + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rate_limit#storage)storage +Storage backend through which rate limit state is synced. If not set, the global or default storage configuration will be used. + +Fulfilled by modules in namespace: **caddy.storage** + +* [file_system](https://caddyserver.com/docs/modules/caddy.storage.file_system) +* [cloudflare_kv](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb)Non-standard +* [dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb)Non-standard +* [encrypted](https://caddyserver.com/docs/modules/caddy.storage.encrypted)Non-standard +* [env_redis](https://caddyserver.com/docs/modules/caddy.storage.env_redis)Non-standard +* [gcs](https://caddyserver.com/docs/modules/caddy.storage.gcs)Non-standard +* [mysql](https://caddyserver.com/docs/modules/caddy.storage.mysql)Non-standard +* [nats](https://caddyserver.com/docs/modules/caddy.storage.nats)Non-standard +* [postgres](https://caddyserver.com/docs/modules/caddy.storage.postgres)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.storage.s3)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.storage.s3)Non-standard +* [vault](https://caddyserver.com/docs/modules/caddy.storage.vault)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.realip.md b/docs/caddy/modules/http.handlers.realip.md new file mode 100644 index 0000000..ee06385 --- /dev/null +++ b/docs/caddy/modules/http.handlers.realip.md @@ -0,0 +1,124 @@ +Title: Module http.handlers.realip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.realip + +Markdown Content: +Module http.handlers.realip - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.realip +=========================== + + There is more than one module named **Module http.handlers.realip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.realip#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/kirsch33/realip + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kirsch33/realip](https://github.com/kirsch33/realip)** + +**Custom builds:**`xcaddy build --with github.com/kirsch33/realip` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.realip#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.redir_dns.md b/docs/caddy/modules/http.handlers.redir_dns.md new file mode 100644 index 0000000..94100fc --- /dev/null +++ b/docs/caddy/modules/http.handlers.redir_dns.md @@ -0,0 +1,38 @@ +Title: Module http.handlers.redir_dns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.redir_dns + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.redir_dns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.redir_dns#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/argami/redir-dns](https://github.com/argami/redir-dns)** + +**Custom builds:**`xcaddy build --with github.com/argami/redir-dns` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.redir_dns#docs "Direct link") +------------------------------------------------------------------------------------------------ + +http.handlers.redir_dns is a RedirDns for manipulating redirecting based on DNS TXT record. diff --git a/docs/caddy/modules/http.handlers.replace_response.md b/docs/caddy/modules/http.handlers.replace_response.md new file mode 100644 index 0000000..862dee3 --- /dev/null +++ b/docs/caddy/modules/http.handlers.replace_response.md @@ -0,0 +1,45 @@ +Title: Module http.handlers.replace_response - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.replace_response + +Markdown Content: +There is more than one module named **Module http.handlers.replace_response**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.replace_response#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +`{▾ "replacements": [{▾ "search": "", "search_regexp": "", "replace": "" }], "stream": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/caddyserver/replace-response](https://github.com/caddyserver/replace-response)** + +**Custom builds:**`xcaddy build --with github.com/caddyserver/replace-response` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.replace_response#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +http.handlers.replace_response manipulates response bodies by performing substring or regex replacements. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.replace_response#replacements)replacements +The list of replacements to make on the response body. + +Replacement is either a substring or regular expression replacement to perform; precisely one must be specified, not both. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.replace_response#replacements/search)replacements/search +A substring to search for. Mutually exclusive with search_regexp. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.replace_response#replacements/search_regexp)replacements/search_regexp +A regular expression to search for. Mutually exclusive with search. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.replace_response#replacements/replace)replacements/replace +The replacement string/value. Required. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.replace_response#stream)stream +If true, perform replacements in a streaming fashion. This is more memory-efficient but can remove the Content-Length header since knowing the correct length is impossible without buffering, and getting it wrong can break HTTP/2 streams. diff --git a/docs/caddy/modules/http.handlers.request_body.md b/docs/caddy/modules/http.handlers.request_body.md new file mode 100644 index 0000000..5886776 --- /dev/null +++ b/docs/caddy/modules/http.handlers.request_body.md @@ -0,0 +1,51 @@ +Title: Module http.handlers.request_body - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.request_body + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.request_body**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.request_body#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +`{▾ "max_size": 0, "read_timeout": 0, "write_timeout": 0}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.request_body#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +http.handlers.request_body is a middleware for manipulating the request body. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.request_body#max_size)max_size +The maximum number of bytes to allow reading from the body by a later handler. If more bytes are read, an error with HTTP status 413 is returned. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.request_body#read_timeout)read_timeout +EXPERIMENTAL. Subject to change/removal. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.request_body#write_timeout)write_timeout +EXPERIMENTAL. Subject to change/removal. + +A Duration represents the elapsed time between two instants as an int64 nanosecond count. The representation limits the largest representable duration to approximately 290 years. diff --git a/docs/caddy/modules/http.handlers.request_body_var.md b/docs/caddy/modules/http.handlers.request_body_var.md new file mode 100644 index 0000000..53eea9c --- /dev/null +++ b/docs/caddy/modules/http.handlers.request_body_var.md @@ -0,0 +1,38 @@ +Title: Module http.handlers.request_body_var - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.request_body_var + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.request_body_var**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.request_body_var#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/RussellLuo/caddy-ext](https://github.com/RussellLuo/caddy-ext)** + +**Custom builds:**`xcaddy build --with github.com/RussellLuo/caddy-ext/requestbodyvar` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.request_body_var#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +http.handlers.request_body_var implements an HTTP handler that replaces {http.request.body.*} with the value of the given field from request body, if any. diff --git a/docs/caddy/docs/docs/modules/http.handlers.reverse_proxy.md b/docs/caddy/modules/http.handlers.request_debug.md similarity index 73% rename from docs/caddy/docs/docs/modules/http.handlers.reverse_proxy.md rename to docs/caddy/modules/http.handlers.request_debug.md index 6715f66..ba42529 100644 --- a/docs/caddy/docs/docs/modules/http.handlers.reverse_proxy.md +++ b/docs/caddy/modules/http.handlers.request_debug.md @@ -1,21 +1,21 @@ -Title: Module http.handlers.reverse_proxy - Caddy Documentation +Title: Module http.handlers.request_debug - Caddy Documentation -URL Source: https://caddyserver.com/docs/modules/http.handlers.reverse_proxy +URL Source: https://caddyserver.com/docs/modules/http.handlers.request_debug Markdown Content: -Module http.handlers.reverse\_proxy - Caddy Documentation -=============== +Module http.handlers.request_debug - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== -Documentation +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +Documentation -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +27,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +40,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,9 +59,10 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) All Modules =========== @@ -71,13 +74,13 @@ We recommend using your browser's "Find in page" feature for quick lookups. | | Module ID | Description | | --- | --- | --- | -There is more than one module named . Choose one by its repository. + There is more than one module named . Choose one by its repository. -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` Description ----------- @@ -89,9 +92,12 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.request_id.md b/docs/caddy/modules/http.handlers.request_id.md new file mode 100644 index 0000000..d306dfa --- /dev/null +++ b/docs/caddy/modules/http.handlers.request_id.md @@ -0,0 +1,40 @@ +Title: Module http.handlers.request_id - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.request_id + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.request_id**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.request_id#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "header": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/lolPants/caddy-requestid](https://github.com/lolPants/caddy-requestid)** + +**Custom builds:**`xcaddy build --with github.com/lolPants/caddy-requestid` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.request_id#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.handlers.request_id implements an HTTP handler that writes a unique request ID to response headers. + +The name of the header to write to. diff --git a/docs/caddy/modules/http.handlers.reverse_proxy.md b/docs/caddy/modules/http.handlers.reverse_proxy.md new file mode 100644 index 0000000..c7edc51 --- /dev/null +++ b/docs/caddy/modules/http.handlers.reverse_proxy.md @@ -0,0 +1,640 @@ +Title: Module http.handlers.reverse_proxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.reverse_proxy + +Markdown Content: +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#transport)transport +Configures the method of transport for the proxy. A transport is what performs the actual "round trip" to the backend. The default transport is plaintext HTTP. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#circuit_breaker)circuit_breaker +A circuit breaker may be used to relieve pressure on a backend that is beginning to exhibit symptoms of stress or latency. By default, there is no circuit breaker. + +Fulfilled by modules in namespace: **http.reverse_proxy.circuit_breakers** + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#load_balancing)load_balancing +Load balancing distributes load/requests between backends. + +LoadBalancing has parameters related to load balancing. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#load_balancing/selection_policy)load_balancing/selection_policy +A selection policy is how to choose an available backend. The default policy is random selection. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#load_balancing/retries)load_balancing/retries +How many times to retry selecting available backends for each request if the next available host is down. If try_duration is also configured, then retries may stop early if the duration is reached. By default, retries are disabled (zero). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#load_balancing/try_duration)load_balancing/try_duration +How long to try selecting available backends for each request if the next available host is down. Clients will wait for up to this long while the load balancer tries to find an available upstream host. If retries is also configured, tries may stop early if the maximum retries is reached. By default, retries are disabled (zero duration). + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#load_balancing/try_interval)load_balancing/try_interval +How long to wait between selecting the next host from the pool. Default is 250ms if try_duration is enabled, otherwise zero. Only relevant when a request to an upstream host fails. Be aware that setting this to 0 with a non-zero try_duration can cause the CPU to spin if all backends are down and latency is very low. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#load_balancing/retry_match)load_balancing/retry_match +A list of matcher sets that restricts with which requests retries are allowed. A request must match any of the given matcher sets in order to be retried if the connection to the upstream succeeded but the subsequent round-trip failed. If the connection to the upstream failed, a retry is always allowed. If unspecified, only GET requests will be allowed to be retried. Note that a retry is done with the next available host according to the load balancing policy. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.matchers** + +* [client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) +* [expression](https://caddyserver.com/docs/modules/http.matchers.expression) +* [file](https://caddyserver.com/docs/modules/http.matchers.file) +* [header](https://caddyserver.com/docs/modules/http.matchers.header) +* [header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) +* [host](https://caddyserver.com/docs/modules/http.matchers.host) +* [method](https://caddyserver.com/docs/modules/http.matchers.method) +* [not](https://caddyserver.com/docs/modules/http.matchers.not) +* [path](https://caddyserver.com/docs/modules/http.matchers.path) +* [path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) +* [protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) +* [query](https://caddyserver.com/docs/modules/http.matchers.query) +* [remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) +* [tls](https://caddyserver.com/docs/modules/http.matchers.tls) +* [vars](https://caddyserver.com/docs/modules/http.matchers.vars) +* [vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) +* [client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn)Non-standard +* [client_country](https://caddyserver.com/docs/modules/http.matchers.client_country)Non-standard +* [conneg](https://caddyserver.com/docs/modules/http.matchers.conneg)Non-standard +* [crawler](https://caddyserver.com/docs/modules/http.matchers.crawler)Non-standard +* [cron](https://caddyserver.com/docs/modules/http.matchers.cron)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.matchers.dnsfetcher)Non-standard +* [dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip)Non-standard +* [dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip)Non-standard +* [exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop)Non-standard +* [execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [geocity](https://caddyserver.com/docs/modules/http.matchers.geocity)Non-standard +* [geocn](https://caddyserver.com/docs/modules/http.matchers.geocn)Non-standard +* [geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn)Non-standard +* [geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country)Non-standard +* [maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation)Non-standard +* [remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host)Non-standard +* [signed](https://caddyserver.com/docs/modules/http.matchers.signed)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks)health_checks +Health checks update the status of backends, whether they are up or down. Down backends will not be proxied to. + +HealthChecks configures active and passive health checks. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active)health_checks/active +Active health checks run in the background on a timer. To minimally enable active health checks, set either path or port (or both). Note that active health check status (healthy/unhealthy) is stored per-proxy-handler, not globally; this allows different handlers to use different criteria to decide what defines a healthy backend. + +Active health checks do not run for dynamic upstreams. + +ActiveHealthChecks holds configuration related to active health checks (that is, health checks which occur in a background goroutine independently). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/path)health_checks/active/path +Deprecated: Use 'uri' instead. This field will be removed. TODO: remove this field + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/uri)health_checks/active/uri +The URI (path and query) to use for health checks + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/upstream)health_checks/active/upstream +The host:port to use (if different from the upstream's dial address) for health checks. This should be used in tandem with `health_header` and `{http.reverse_proxy.active.target_upstream}`. This can be helpful when creating an intermediate service to do a more thorough health check. If upstream is set, the active health check port is ignored. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/port)health_checks/active/port +The port to use (if different from the upstream's dial address) for health checks. If active upstream is set, this value is ignored. + +HTTP headers to set on health check requests. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/method)health_checks/active/method +The HTTP method to use for health checks (default "GET"). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/body)health_checks/active/body +The body to send with the health check request. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/follow_redirects)health_checks/active/follow_redirects +Whether to follow HTTP redirects in response to active health checks (default off). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/interval)health_checks/active/interval +How frequently to perform active health checks (default 30s). + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/timeout)health_checks/active/timeout +How long to wait for a response from a backend before considering it unhealthy (default 5s). + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/passes)health_checks/active/passes +Number of consecutive health check passes before marking a previously unhealthy backend as healthy again (default 1). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/fails)health_checks/active/fails +Number of consecutive health check failures before marking a previously healthy backend as unhealthy (default 1). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/max_size)health_checks/active/max_size +The maximum response body to download from the backend during a health check. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/expect_status)health_checks/active/expect_status +The HTTP status code to expect from a healthy backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/active/expect_body)health_checks/active/expect_body +A regular expression against which to match the response body of a healthy backend. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/passive)health_checks/passive +Passive health checks monitor proxied requests for errors or timeouts. To minimally enable passive health checks, specify at least an empty config object with fail_duration > 0. Passive health check state is shared (stored globally), so a failure from one handler will be counted by all handlers; but the tolerances or standards for what defines healthy/unhealthy backends is configured per-proxy-handler. + +Passive health checks technically do operate on dynamic upstreams, but are only effective for very busy proxies where the list of upstreams is mostly stable. This is because the shared/global state of upstreams is cleaned up when the upstreams are no longer used. Since dynamic upstreams are allocated dynamically at each request (specifically, each iteration of the proxy loop per request), they are also cleaned up after every request. Thus, if there is a moment when no requests are actively referring to a particular upstream host, the passive health check state will be reset because it will be garbage-collected. It is usually better for the dynamic upstream module to only return healthy, available backends instead. + +PassiveHealthChecks holds configuration related to passive health checks (that is, health checks which occur during the normal flow of request proxying). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/passive/fail_duration)health_checks/passive/fail_duration +How long to remember a failed request to a backend. A duration > 0 enables passive health checking. Default is 0. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/passive/max_fails)health_checks/passive/max_fails +The number of failed requests within the FailDuration window to consider a backend as "down". Must be >= 1; default is 1. Requires that FailDuration be > 0. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/passive/unhealthy_request_count)health_checks/passive/unhealthy_request_count +Limits the number of simultaneous requests to a backend by marking the backend as "down" if it has this many concurrent requests or more. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/passive/unhealthy_status)health_checks/passive/unhealthy_status +Count the request as failed if the response comes back with one of these status codes. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#health_checks/passive/unhealthy_latency)health_checks/passive/unhealthy_latency +Count the request as failed if the response takes at least this long to receive. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#upstreams)upstreams +Upstreams is the static list of backends to proxy to. + +Upstream bridges this proxy's configuration to the state of the backend host it is correlated with. Upstream values must not be copied. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#upstreams/dial)upstreams/dial +The [network address](https://caddyserver.com/docs/conventions#network-addresses) to dial to connect to the upstream. Must represent precisely one socket (i.e. no port ranges). A valid network address either has a host and port or is a unix socket address. + +Placeholders may be used to make the upstream dynamic, but be aware of the health check implications of this: a single upstream that represents numerous (perhaps arbitrary) backends can be considered down if one or enough of the arbitrary backends is down. Also be aware of open proxy vulnerabilities. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#upstreams/max_requests)upstreams/max_requests +The maximum number of simultaneous requests to allow to this upstream. If set, overrides the global passive health check UnhealthyRequestCount value. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#dynamic_upstreams)dynamic_upstreams +A module for retrieving the list of upstreams dynamically. Dynamic upstreams are retrieved at every iteration of the proxy loop for each request (i.e. before every proxy attempt within every request). Active health checks do not work on dynamic upstreams, and passive health checks are only effective on dynamic upstreams if the proxy server is busy enough that concurrent requests to the same backends are continuous. Instead of health checks for dynamic upstreams, it is recommended that the dynamic upstream module only return available backends in the first place. + +Fulfilled by modules in namespace: **http.reverse_proxy.upstreams** + +* [a](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a) +* [multi](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.multi) +* [srv](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv) +* [docker](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.docker)Non-standard +* [etcd](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.etcd)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#flush_interval)flush_interval +Adjusts how often to flush the response buffer. By default, no periodic flushing is done. A negative value disables response buffering, and flushes immediately after each write to the client. This option is ignored when the upstream's response is recognized as a streaming response, or if its content length is -1; for such responses, writes are flushed to the client immediately. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#trusted_proxies)trusted_proxies +A list of IP ranges (supports CIDR notation) from which X-Forwarded-* header values should be trusted. By default, no proxies are trusted, so existing values will be ignored when setting these headers. If the proxy is trusted, then existing values will be used when constructing the final header values. + +Headers manipulates headers between Caddy and the backend. By default, all headers are passed-thru without changes, with the exceptions of special hop-by-hop headers. + +X-Forwarded-For, X-Forwarded-Proto and X-Forwarded-Host are also set implicitly. + +Handler is a middleware which modifies request and response headers. + +Changes to headers are applied immediately, except for the response headers when Deferred is true or when Required is set. In those cases, the changes are applied when the headers are written to the response. Note that deferred changes do not take effect if an error occurs later in the middleware chain. + +Properties in this module accept placeholders. + +Response header operations can be conditioned upon response status code and/or other header values. + +HeaderOps defines manipulations for HTTP headers. + +Adds HTTP headers; does not replace any existing header fields. + +Sets HTTP headers; replaces existing header fields. + +Names of HTTP header fields to delete. Basic wildcards are supported: + +* Start with `*` for all field names with the given suffix; +* End with `*` for all field names with the given prefix; +* Start and end with `*` for all field names containing a substring. + +Performs in-situ substring replacements of HTTP headers. Keys are the field names on which to perform the associated replacements. If the field name is `*`, the replacements are performed on all header fields. + +The substring to search for. + +The regular expression to search with. + +The string with which to replace matches. + +RespHeaderOps defines manipulations for response headers. + +Adds HTTP headers; does not replace any existing header fields. + +Sets HTTP headers; replaces existing header fields. + +Names of HTTP header fields to delete. Basic wildcards are supported: + +* Start with `*` for all field names with the given suffix; +* End with `*` for all field names with the given prefix; +* Start and end with `*` for all field names containing a substring. + +Performs in-situ substring replacements of HTTP headers. Keys are the field names on which to perform the associated replacements. If the field name is `*`, the replacements are performed on all header fields. + +The substring to search for. + +The regular expression to search with. + +The string with which to replace matches. + +If set, header operations will be deferred until they are written out and only performed if the response matches these criteria. + +ResponseMatcher is a type which can determine if an HTTP response matches some criteria. + +If set, one of these status codes would be required. A one-digit status can be used to represent all codes in that class (e.g. 3 for all 3xx codes). + +If set, each header specified must be one of the specified values, with the same logic used by the [request header matcher](https://caddyserver.com/docs/json/apps/http/servers/routes/match/header/). + +If true, header operations will be deferred until they are written out. Superseded if Require is set. Usually you will need to set this to true if any fields are being deleted. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#request_buffers)request_buffers +If nonzero, the entire request body up to this size will be read and buffered in memory before being proxied to the backend. This should be avoided if at all possible for performance reasons, but could be useful if the backend is intolerant of read latency or chunked encodings. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#response_buffers)response_buffers +If nonzero, the entire response body up to this size will be read and buffered in memory before being proxied to the client. This should be avoided if at all possible for performance reasons, but could be useful if the backend has tighter memory constraints. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#stream_timeout)stream_timeout +If nonzero, streaming requests such as WebSockets will be forcibly closed at the end of the timeout. Default: no timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#stream_close_delay)stream_close_delay +If nonzero, streaming requests such as WebSockets will not be closed when the proxy config is unloaded, and instead the stream will remain open until the delay is complete. In other words, enabling this prevents streams from closing when Caddy's config is reloaded. Enabling this may be a good idea to avoid a thundering herd of reconnecting clients which had their connections closed by the previous config closing. Default: no delay. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite)rewrite +If configured, rewrites the copy of the upstream request. Allows changing the request method and URI (path and query). Since the rewrite is applied to the copy, it does not persist past the reverse proxy handler. If the method is changed to `GET` or `HEAD`, the request body will not be copied to the backend. This allows a later request handler -- either in a `handle_response` route, or after -- to read the body. By default, no rewrite is performed, and the method and URI from the incoming request is used as-is for proxying. + +Rewrite is a middleware which can rewrite/mutate HTTP requests. + +The Method and URI properties are "setters" (the request URI will be overwritten with the given values). Other properties are "modifiers" (they modify existing values in a differentiable way). It is atypical to combine the use of setters and modifiers in a single rewrite. + +To ensure consistent behavior, prefix and suffix stripping is performed in the URL-decoded (unescaped, normalized) space by default except for the specific bytes where an escape sequence is used in the prefix or suffix pattern. + +For all modifiers, paths are cleaned before being modified so that multiple, consecutive slashes are collapsed into a single slash, and dot elements are resolved and removed. In the special case of a prefix, suffix, or substring containing "//" (repeated slashes), slashes will not be merged while cleaning the path so that the rewrite can be interpreted literally. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/method)rewrite/method +Changes the request's HTTP verb. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/uri)rewrite/uri +Changes the request's URI, which consists of path and query string. Only components of the URI that are specified will be changed. For example, a value of "/foo.html" or "foo.html" will only change the path and will preserve any existing query string. Similarly, a value of "?a=b" will only change the query string and will not affect the path. Both can also be changed: "/foo?a=b" - this sets both the path and query string at the same time. + +You can also use placeholders. For example, to preserve the existing query string, you might use: "?{http.request.uri.query}&a=b". Any key-value pairs you add to the query string will not overwrite existing values (individual pairs are append-only). + +To clear the query string, explicitly set an empty one: "?" + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/strip_path_prefix)rewrite/strip_path_prefix +Strips the given prefix from the beginning of the URI path. The prefix should be written in normalized (unescaped) form, but if an escaping (`%xx`) is used, the path will be required to have that same escape at that position in order to match. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/strip_path_suffix)rewrite/strip_path_suffix +Strips the given suffix from the end of the URI path. The suffix should be written in normalized (unescaped) form, but if an escaping (`%xx`) is used, the path will be required to have that same escape at that position in order to match. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/uri_substring)rewrite/uri_substring +Performs substring replacements on the URI. + +substrReplacer describes either a simple and fast substring replacement. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/uri_substring/find)rewrite/uri_substring/find +A substring to find. Supports placeholders. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/uri_substring/replace)rewrite/uri_substring/replace +The substring to replace with. Supports placeholders. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/uri_substring/limit)rewrite/uri_substring/limit +Maximum number of replacements per string. Set to <= 0 for no limit (default). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/path_regexp)rewrite/path_regexp +Performs regular expression replacements on the URI path. + +regexReplacer describes a replacement using a regular expression. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/path_regexp/find)rewrite/path_regexp/find +The regular expression to find. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/path_regexp/replace)rewrite/path_regexp/replace +The substring to replace with. Supports placeholders and regular expression capture groups. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query)rewrite/query +Mutates the query string of the URI. + +queryOps describes the operations to perform on query keys: add, set, rename and delete. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/rename)rewrite/query/rename +Renames a query key from Key to Val, without affecting the value. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/rename/key)rewrite/query/rename/key +A key in the query string. Note that query string keys may appear multiple times. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/rename/val)rewrite/query/rename/val +The value for the given operation; for add and set, this is simply the value of the query, and for rename this is the query key to rename to. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/set)rewrite/query/set +Sets query parameters; overwrites a query key with the given value. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/set/key)rewrite/query/set/key +A key in the query string. Note that query string keys may appear multiple times. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/set/val)rewrite/query/set/val +The value for the given operation; for add and set, this is simply the value of the query, and for rename this is the query key to rename to. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/add)rewrite/query/add +Adds query parameters; does not overwrite an existing query field, and only appends an additional value for that key if any already exist. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/add/key)rewrite/query/add/key +A key in the query string. Note that query string keys may appear multiple times. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/add/val)rewrite/query/add/val +The value for the given operation; for add and set, this is simply the value of the query, and for rename this is the query key to rename to. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/replace)rewrite/query/replace +Replaces query parameters. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/replace/key)rewrite/query/replace/key +The key to replace in the query string. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/replace/search)rewrite/query/replace/search +The substring to search for. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/replace/search_regexp)rewrite/query/replace/search_regexp +The regular expression to search with. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/replace/replace)rewrite/query/replace/replace +The string with which to replace matches. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#rewrite/query/delete)rewrite/query/delete +Deletes a given query key by name. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#handle_response)handle_response +List of handlers and their associated matchers to evaluate after successful roundtrips. The first handler that matches the response from a backend will be invoked. The response body from the backend will not be written to the client; it is up to the handler to finish handling the response. If passive health checks are enabled, any errors from the handler chain will not affect the health status of the backend. + +Three new placeholders are available in this handler chain: + +* `{http.reverse_proxy.status_code}` The status code from the response +* `{http.reverse_proxy.status_text}` The status text from the response +* `{http.reverse_proxy.header.*}` The headers from the response + +ResponseHandler pairs a response matcher with custom handling logic. Either the status code can be changed to something else while using the original response body, or, if a status code is not set, it can execute a custom route list; this is useful for executing handler routes based on the properties of an HTTP response that has not been written out to the client yet. + +To use this type, provision it at module load time, then when ready to use, match the response against its matcher; if it matches (or doesn't have a matcher), change the status code on the response if configured; otherwise invoke the routes by calling `rh.Routes.Compile(next).ServeHTTP(rw, req)` (or similar). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#handle_response/match)handle_response/match +The response matcher for this handler. If empty/nil, it always matches. + +ResponseMatcher is a type which can determine if an HTTP response matches some criteria. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#handle_response/match/status_code)handle_response/match/status_code +If set, one of these status codes would be required. A one-digit status can be used to represent all codes in that class (e.g. 3 for all 3xx codes). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#handle_response/match/headers)handle_response/match/headers +If set, each header specified must be one of the specified values, with the same logic used by the [request header matcher](https://caddyserver.com/docs/json/apps/http/servers/routes/match/header/). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#handle_response/status_code)handle_response/status_code +To write the original response body but with a different status code, set this field to the desired status code. If set, this takes priority over routes. + +WeakString is a type that unmarshals any JSON value as a string literal, with the following exceptions: + +1. actual string values are decoded as strings; and +2. null is decoded as empty string; + +and provides methods for getting the value as various primitive types. However, using this type removes any type safety as far as deserializing JSON is concerned. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#handle_response/routes)handle_response/routes +The list of HTTP routes to execute if no status code is specified. If evaluated, the original response body will not be written. + +Route consists of a set of rules for matching HTTP requests, a list of handlers to execute, and optional flow control parameters which customize the handling of HTTP requests in a highly flexible and performant manner. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#handle_response/routes/group)handle_response/routes/group +Group is an optional name for a group to which this route belongs. Grouping a route makes it mutually exclusive with others in its group; if a route belongs to a group, only the first matching route in that group will be executed. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#handle_response/routes/match)handle_response/routes/match +The matcher sets which will be used to qualify this route for a request (essentially the "if" statement of this route). Each matcher set is OR'ed, but matchers within a set are AND'ed together. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.matchers** + +* [client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) +* [expression](https://caddyserver.com/docs/modules/http.matchers.expression) +* [file](https://caddyserver.com/docs/modules/http.matchers.file) +* [header](https://caddyserver.com/docs/modules/http.matchers.header) +* [header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) +* [host](https://caddyserver.com/docs/modules/http.matchers.host) +* [method](https://caddyserver.com/docs/modules/http.matchers.method) +* [not](https://caddyserver.com/docs/modules/http.matchers.not) +* [path](https://caddyserver.com/docs/modules/http.matchers.path) +* [path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) +* [protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) +* [query](https://caddyserver.com/docs/modules/http.matchers.query) +* [remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) +* [tls](https://caddyserver.com/docs/modules/http.matchers.tls) +* [vars](https://caddyserver.com/docs/modules/http.matchers.vars) +* [vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) +* [client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn)Non-standard +* [client_country](https://caddyserver.com/docs/modules/http.matchers.client_country)Non-standard +* [conneg](https://caddyserver.com/docs/modules/http.matchers.conneg)Non-standard +* [crawler](https://caddyserver.com/docs/modules/http.matchers.crawler)Non-standard +* [cron](https://caddyserver.com/docs/modules/http.matchers.cron)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.matchers.dnsfetcher)Non-standard +* [dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip)Non-standard +* [dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip)Non-standard +* [exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop)Non-standard +* [execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [geocity](https://caddyserver.com/docs/modules/http.matchers.geocity)Non-standard +* [geocn](https://caddyserver.com/docs/modules/http.matchers.geocn)Non-standard +* [geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn)Non-standard +* [geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country)Non-standard +* [maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation)Non-standard +* [remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host)Non-standard +* [signed](https://caddyserver.com/docs/modules/http.matchers.signed)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#handle_response/routes/handle)handle_response/routes/handle +The list of handlers for this route. Upon matching a request, they are chained together in a middleware fashion: requests flow from the first handler to the last (top of the list to the bottom), with the possibility that any handler could stop the chain and/or return an error. Responses flow back through the chain (bottom of the list to the top) as they are written out to the client. + +Not all handlers call the next handler in the chain. For example, the reverse_proxy handler always sends a request upstream or returns an error. Thus, configuring handlers after reverse_proxy in the same route is illogical, since they would never be executed. You will want to put handlers which originate the response at the very end of your route(s). The documentation for a module should state whether it invokes the next handler, but sometimes it is common sense. + +Some handlers manipulate the response. Remember that requests flow down the list, and responses flow up the list. + +For example, if you wanted to use both `templates` and `encode` handlers, you would need to put `templates` after `encode` in your route, because responses flow up. Thus, `templates` will be able to parse and execute the plain-text response as a template, and then return it up to the `encode` handler which will then compress it into a binary format. + +If `templates` came before `encode`, then `encode` would write a compressed, binary-encoded response to `templates` which would not be able to parse the response properly. + +The correct order, then, is this: + +``` +[ + {"handler": "encode"}, + {"handler": "templates"}, + {"handler": "file_server"} +] +``` + +The request flows ⬇️ DOWN (`encode` ->`templates` ->`file_server`). + +1. First, `encode` will choose how to `encode` the response and wrap the response. +2. Then, `templates` will wrap the response with a buffer. +3. Finally, `file_server` will originate the content from a file. + +The response flows ⬆️ UP (`file_server` ->`templates` ->`encode`): + +1. First, `file_server` will write the file to the response. +2. That write will be buffered and then executed by `templates`. +3. Lastly, the write from `templates` will flow into `encode` which will compress the stream. + +If you think of routes in this way, it will be easy and even fun to solve the puzzle of writing correct routes. + +Fulfilled by modules in namespace: **http.handlers** + +* [acme_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) +* [authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) +* [copy_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) +* [copy_response_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) +* [encode](https://caddyserver.com/docs/modules/http.handlers.encode) +* [error](https://caddyserver.com/docs/modules/http.handlers.error) +* [file_server](https://caddyserver.com/docs/modules/http.handlers.file_server) +* [headers](https://caddyserver.com/docs/modules/http.handlers.headers) +* [intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) +* [invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) +* [log_append](https://caddyserver.com/docs/modules/http.handlers.log_append) +* [map](https://caddyserver.com/docs/modules/http.handlers.map) +* [metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) +* [push](https://caddyserver.com/docs/modules/http.handlers.push) +* [request_body](https://caddyserver.com/docs/modules/http.handlers.request_body) +* [reverse_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) +* [rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) +* [static_response](https://caddyserver.com/docs/modules/http.handlers.static_response) +* [subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) +* [templates](https://caddyserver.com/docs/modules/http.handlers.templates) +* [tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) +* [vars](https://caddyserver.com/docs/modules/http.handlers.vars) +* [adobe_usage_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [authelia](https://caddyserver.com/docs/modules/http.handlers.authelia)Non-standard +* [authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator)Non-standard +* [authp](https://caddyserver.com/docs/modules/http.handlers.authp)Non-standard +* [authz](https://caddyserver.com/docs/modules/http.handlers.authz)Non-standard +* [basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp)Non-standard +* [blockaws](https://caddyserver.com/docs/modules/http.handlers.blockaws)Non-standard +* [bot_barrier](https://caddyserver.com/docs/modules/http.handlers.bot_barrier)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cerberus](https://caddyserver.com/docs/modules/http.handlers.cerberus)Non-standard +* [cgi](https://caddyserver.com/docs/modules/http.handlers.cgi)Non-standard +* [cookiecrypt](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt)Non-standard +* [cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag)Non-standard +* [crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec)Non-standard +* [ct](https://caddyserver.com/docs/modules/http.handlers.ct)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [discord](https://caddyserver.com/docs/modules/http.handlers.discord)Non-standard +* [dns01proxy](https://caddyserver.com/docs/modules/http.handlers.dns01proxy)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher)Non-standard +* [esi](https://caddyserver.com/docs/modules/http.handlers.esi)Non-standard +* [exec](https://caddyserver.com/docs/modules/http.handlers.exec)Non-standard +* [extra_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders)Non-standard +* [filter](https://caddyserver.com/docs/modules/http.handlers.filter)Non-standard +* [floaty](https://caddyserver.com/docs/modules/http.handlers.floaty)Non-standard +* [forward_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth)Non-standard +* [gbox](https://caddyserver.com/docs/modules/http.handlers.gbox)Non-standard +* [geofence](https://caddyserver.com/docs/modules/http.handlers.geofence)Non-standard +* [geoip](https://caddyserver.com/docs/modules/http.handlers.geoip)Non-standard +* [geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2)Non-standard +* [git](https://caddyserver.com/docs/modules/http.handlers.git)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [grpc_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web)Non-standard +* [guard](https://caddyserver.com/docs/modules/http.handlers.guard)Non-standard +* [hmac](https://caddyserver.com/docs/modules/http.handlers.hmac)Non-standard +* [http_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache)Non-standard +* [i18n](https://caddyserver.com/docs/modules/http.handlers.i18n)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor)Non-standard +* [imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy)Non-standard +* [inspect](https://caddyserver.com/docs/modules/http.handlers.inspect)Non-standard +* [ip_filter](https://caddyserver.com/docs/modules/http.handlers.ip_filter)Non-standard +* [ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap)Non-standard +* [jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait)Non-standard +* [json_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse)Non-standard +* [jwt_issuer](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer)Non-standard +* [k8s_admission](https://caddyserver.com/docs/modules/http.handlers.k8s_admission)Non-standard +* [lambda](https://caddyserver.com/docs/modules/http.handlers.lambda)Non-standard +* [ldap_basic_auth](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth)Non-standard +* [listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy)Non-standard +* [lura](https://caddyserver.com/docs/modules/http.handlers.lura)Non-standard +* [mercure](https://caddyserver.com/docs/modules/http.handlers.mercure)Non-standard +* [minifier](https://caddyserver.com/docs/modules/http.handlers.minifier)Non-standard +* [mirror](https://caddyserver.com/docs/modules/http.handlers.mirror)Non-standard +* [myplugin](https://caddyserver.com/docs/modules/http.handlers.myplugin)Non-standard +* [nobots](https://caddyserver.com/docs/modules/http.handlers.nobots)Non-standard +* [oauth2_token_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection)Non-standard +* [olaf](https://caddyserver.com/docs/modules/http.handlers.olaf)Non-standard +* [olo_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature)Non-standard +* [openapi](https://caddyserver.com/docs/modules/http.handlers.openapi)Non-standard +* [openapi_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator)Non-standard +* [php](https://caddyserver.com/docs/modules/http.handlers.php)Non-standard +* [pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch)Non-standard +* [pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster)Non-standard +* [placeholder_dump](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump)Non-standard +* [plausible](https://caddyserver.com/docs/modules/http.handlers.plausible)Non-standard +* [pmtiles_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy)Non-standard +* [pocketbase](https://caddyserver.com/docs/modules/http.handlers.pocketbase)Non-standard +* [postauth2fa](https://caddyserver.com/docs/modules/http.handlers.postauth2fa)Non-standard +* [prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus)Non-standard +* [public_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix)Non-standard +* [quantity_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [realip](https://caddyserver.com/docs/modules/http.handlers.realip)Non-standard +* [redir_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns)Non-standard +* [replace_response](https://caddyserver.com/docs/modules/http.handlers.replace_response)Non-standard +* [request_body_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var)Non-standard +* [request_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug)Non-standard +* [request_id](https://caddyserver.com/docs/modules/http.handlers.request_id)Non-standard +* [s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [save](https://caddyserver.com/docs/modules/http.handlers.save)Non-standard +* [scion](https://caddyserver.com/docs/modules/http.handlers.scion)Non-standard +* [teapot](https://caddyserver.com/docs/modules/http.handlers.teapot)Non-standard +* [trace](https://caddyserver.com/docs/modules/http.handlers.trace)Non-standard +* [trapdoor](https://caddyserver.com/docs/modules/http.handlers.trapdoor)Non-standard +* [trojan](https://caddyserver.com/docs/modules/http.handlers.trojan)Non-standard +* [umami](https://caddyserver.com/docs/modules/http.handlers.umami)Non-standard +* [upload](https://caddyserver.com/docs/modules/http.handlers.upload)Non-standard +* [user_agent_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse)Non-standard +* [vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf_chaitin](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin)Non-standard +* [wafris](https://caddyserver.com/docs/modules/http.handlers.wafris)Non-standard +* [wake_on_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan)Non-standard +* [webdav](https://caddyserver.com/docs/modules/http.handlers.webdav)Non-standard +* [webhook](https://caddyserver.com/docs/modules/http.handlers.webhook)Non-standard +* [x_clacks_overhead](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#handle_response/routes/terminal)handle_response/routes/terminal +If true, no more routes will be executed after this one. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy#verbose_logs)verbose_logs +If set, the proxy will write very detailed logs about its inner workings. Enable this only when debugging, as it will produce a lot of output. + +EXPERIMENTAL: This feature is subject to change or removal. diff --git a/docs/caddy/modules/http.handlers.rewrite.md b/docs/caddy/modules/http.handlers.rewrite.md new file mode 100644 index 0000000..d5a528d --- /dev/null +++ b/docs/caddy/modules/http.handlers.rewrite.md @@ -0,0 +1,103 @@ +Title: Module http.handlers.rewrite - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.rewrite + +Markdown Content: +http.handlers.rewrite is a middleware which can rewrite/mutate HTTP requests. + +The Method and URI properties are "setters" (the request URI will be overwritten with the given values). Other properties are "modifiers" (they modify existing values in a differentiable way). It is atypical to combine the use of setters and modifiers in a single rewrite. + +To ensure consistent behavior, prefix and suffix stripping is performed in the URL-decoded (unescaped, normalized) space by default except for the specific bytes where an escape sequence is used in the prefix or suffix pattern. + +For all modifiers, paths are cleaned before being modified so that multiple, consecutive slashes are collapsed into a single slash, and dot elements are resolved and removed. In the special case of a prefix, suffix, or substring containing "//" (repeated slashes), slashes will not be merged while cleaning the path so that the rewrite can be interpreted literally. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#method)method +Changes the request's HTTP verb. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#uri)uri +Changes the request's URI, which consists of path and query string. Only components of the URI that are specified will be changed. For example, a value of "/foo.html" or "foo.html" will only change the path and will preserve any existing query string. Similarly, a value of "?a=b" will only change the query string and will not affect the path. Both can also be changed: "/foo?a=b" - this sets both the path and query string at the same time. + +You can also use placeholders. For example, to preserve the existing query string, you might use: "?{http.request.uri.query}&a=b". Any key-value pairs you add to the query string will not overwrite existing values (individual pairs are append-only). + +To clear the query string, explicitly set an empty one: "?" + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#strip_path_prefix)strip_path_prefix +Strips the given prefix from the beginning of the URI path. The prefix should be written in normalized (unescaped) form, but if an escaping (`%xx`) is used, the path will be required to have that same escape at that position in order to match. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#strip_path_suffix)strip_path_suffix +Strips the given suffix from the end of the URI path. The suffix should be written in normalized (unescaped) form, but if an escaping (`%xx`) is used, the path will be required to have that same escape at that position in order to match. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#uri_substring)uri_substring +Performs substring replacements on the URI. + +substrReplacer describes either a simple and fast substring replacement. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#uri_substring/find)uri_substring/find +A substring to find. Supports placeholders. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#uri_substring/replace)uri_substring/replace +The substring to replace with. Supports placeholders. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#uri_substring/limit)uri_substring/limit +Maximum number of replacements per string. Set to <= 0 for no limit (default). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#path_regexp)path_regexp +Performs regular expression replacements on the URI path. + +regexReplacer describes a replacement using a regular expression. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#path_regexp/find)path_regexp/find +The regular expression to find. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#path_regexp/replace)path_regexp/replace +The substring to replace with. Supports placeholders and regular expression capture groups. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query)query +Mutates the query string of the URI. + +queryOps describes the operations to perform on query keys: add, set, rename and delete. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/rename)query/rename +Renames a query key from Key to Val, without affecting the value. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/rename/key)query/rename/key +A key in the query string. Note that query string keys may appear multiple times. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/rename/val)query/rename/val +The value for the given operation; for add and set, this is simply the value of the query, and for rename this is the query key to rename to. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/set)query/set +Sets query parameters; overwrites a query key with the given value. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/set/key)query/set/key +A key in the query string. Note that query string keys may appear multiple times. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/set/val)query/set/val +The value for the given operation; for add and set, this is simply the value of the query, and for rename this is the query key to rename to. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/add)query/add +Adds query parameters; does not overwrite an existing query field, and only appends an additional value for that key if any already exist. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/add/key)query/add/key +A key in the query string. Note that query string keys may appear multiple times. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/add/val)query/add/val +The value for the given operation; for add and set, this is simply the value of the query, and for rename this is the query key to rename to. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/replace)query/replace +Replaces query parameters. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/replace/key)query/replace/key +The key to replace in the query string. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/replace/search)query/replace/search +The substring to search for. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/replace/search_regexp)query/replace/search_regexp +The regular expression to search with. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/replace/replace)query/replace/replace +The string with which to replace matches. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.rewrite#query/delete)query/delete +Deletes a given query key by name. diff --git a/docs/caddy/modules/http.handlers.s3proxy.md b/docs/caddy/modules/http.handlers.s3proxy.md new file mode 100644 index 0000000..8172c6a --- /dev/null +++ b/docs/caddy/modules/http.handlers.s3proxy.md @@ -0,0 +1,157 @@ +Title: Module http.handlers.s3proxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.s3proxy + +Markdown Content: +Module http.handlers.s3proxy - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.s3proxy +============================ + + There is more than one module named **Module http.handlers.s3proxy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/lindenlab/caddy-s3-proxy + +``` +{▾ "root": "", "region": "", "bucket": "", "endpoint": "", "index_names": [""], "error_pages": { + 0: "" + }, "default_error_page": "", "force_path_style": false, "use_accelerate": false} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/lindenlab/caddy-s3-proxy](https://github.com/lindenlab/caddy-s3-proxy)** + +**Custom builds:**`xcaddy build --with github.com/lindenlab/caddy-s3-proxy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.handlers.s3proxy implements a proxy to return, set, delete or browse objects from S3 + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#root)root +The path to the root of the site. Default is `{http.vars.root}` if set, Or if not set the value is "" - meaning use the whole path as a key. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#region)region +The AWS region the bucket is hosted in + +[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#bucket)bucket +The name of the S3 bucket + +[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#endpoint)endpoint +Use non-standard endpoint for S3 + +[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#index_names)index_names +The names of files to try as index files if a folder is requested. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#error_pages)error_pages +Mapping of HTTP error status to S3 keys or pass through option. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#default_error_page)default_error_page +S3 key to a default error page or pass through option. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#force_path_style)force_path_style +Set this to `true` to force the request to use path-style addressing. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.s3proxy#use_accelerate)use_accelerate +Set this to `true` to enable S3 Accelerate feature. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.sablier.md b/docs/caddy/modules/http.handlers.sablier.md new file mode 100644 index 0000000..74acea2 --- /dev/null +++ b/docs/caddy/modules/http.handlers.sablier.md @@ -0,0 +1,124 @@ +Title: Module http.handlers.sablier - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.sablier + +Markdown Content: +Module http.handlers.sablier - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.sablier +============================ + + There is more than one module named **Module http.handlers.sablier**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.sablier#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/sablierapp/sablier + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sablierapp/sablier](https://github.com/sablierapp/sablier)** + +**Custom builds:**`xcaddy build --with github.com/sablierapp/sablier/plugins/caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.sablier#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.save.md b/docs/caddy/modules/http.handlers.save.md new file mode 100644 index 0000000..0d39276 --- /dev/null +++ b/docs/caddy/modules/http.handlers.save.md @@ -0,0 +1,39 @@ +Title: Module http.handlers.save - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.save + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.save**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.save#docs "Direct link") +------------------------------------------------------------------------------------------- + +`{▾ "file_path": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/Scarsz/caddy-save](https://github.com/Scarsz/caddy-save)** + +**Custom builds:**`xcaddy build --with github.com/Scarsz/caddy-save` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.save#docs "Direct link") +------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.save#file_path)file_path +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.scion.md b/docs/caddy/modules/http.handlers.scion.md new file mode 100644 index 0000000..0327e24 --- /dev/null +++ b/docs/caddy/modules/http.handlers.scion.md @@ -0,0 +1,124 @@ +Title: Module http.handlers.scion - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.scion + +Markdown Content: +Module http.handlers.scion - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.scion +========================== + + There is more than one module named **Module http.handlers.scion**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.scion#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/scionproto-contrib/caddy-scion + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/scionproto-contrib/caddy-scion](https://github.com/scionproto-contrib/caddy-scion)** + +**Custom builds:**`xcaddy build --with github.com/scionproto-contrib/caddy-scion` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.scion#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.static_response.md b/docs/caddy/modules/http.handlers.static_response.md new file mode 100644 index 0000000..4c438e7 --- /dev/null +++ b/docs/caddy/modules/http.handlers.static_response.md @@ -0,0 +1,154 @@ +Title: Module http.handlers.static_response - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.static_response + +Markdown Content: +Module http.handlers.static_response - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.static_response +==================================== + + There is more than one module named **Module http.handlers.static_response**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.static_response#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/caddyserver/caddy + +``` +{▾ "status_code": "", "headers": { + "": [""] + }, "body": "", "close": false, "abort": false} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.static_response#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +http.handlers.static_response implements a simple responder for static responses. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.static_response#status_code)status_code +The HTTP status code to respond with. Can be an integer or, if needing to use a placeholder, a string. + +If the status code is 103 (Early Hints), the response headers will be written to the client immediately, the body will be ignored, and the next handler will be invoked. This behavior is EXPERIMENTAL while RFC 8297 is a draft, and may be changed or removed. + +WeakString is a type that unmarshals any JSON value as a string literal, with the following exceptions: + +1. actual string values are decoded as strings; and +2. null is decoded as empty string; + +and provides methods for getting the value as various primitive types. However, using this type removes any type safety as far as deserializing JSON is concerned. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.static_response#headers)headers +Header fields to set on the response; overwrites any existing header fields of the same names after normalization. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.static_response#body)body +The response body. If non-empty, the Content-Type header may be added automatically if it is not explicitly configured nor already set on the response; the default value is "text/plain; charset=utf-8" unless the body is a valid JSON object or array, in which case the value will be "application/json". Other than those common special cases the Content-Type header should be set explicitly if it is desired because MIME sniffing is disabled for safety. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.static_response#close)close +If true, the server will close the client's connection after writing the response. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.static_response#abort)abort +Immediately and forcefully closes the connection without writing a response. Interrupts any other HTTP streams on the same connection. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.subroute.md b/docs/caddy/modules/http.handlers.subroute.md new file mode 100644 index 0000000..16819ff --- /dev/null +++ b/docs/caddy/modules/http.handlers.subroute.md @@ -0,0 +1,475 @@ +Title: Module http.handlers.subroute - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.subroute + +Markdown Content: +http.handlers.subroute implements a handler that compiles and executes routes. This is useful for a batch of routes that all inherit the same matchers, or for multiple routes that should be treated as a single route. + +You can also use subroutes to handle errors from its handlers. First the primary routes will be executed, and if they return an error, the errors routes will be executed; in that case, an error is only returned to the entry point at the server if there is an additional error returned from the errors routes. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#routes)routes +The primary list of routes to compile and execute. + +Route consists of a set of rules for matching HTTP requests, a list of handlers to execute, and optional flow control parameters which customize the handling of HTTP requests in a highly flexible and performant manner. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#routes/group)routes/group +Group is an optional name for a group to which this route belongs. Grouping a route makes it mutually exclusive with others in its group; if a route belongs to a group, only the first matching route in that group will be executed. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#routes/match)routes/match +The matcher sets which will be used to qualify this route for a request (essentially the "if" statement of this route). Each matcher set is OR'ed, but matchers within a set are AND'ed together. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.matchers** + +* [client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) +* [expression](https://caddyserver.com/docs/modules/http.matchers.expression) +* [file](https://caddyserver.com/docs/modules/http.matchers.file) +* [header](https://caddyserver.com/docs/modules/http.matchers.header) +* [header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) +* [host](https://caddyserver.com/docs/modules/http.matchers.host) +* [method](https://caddyserver.com/docs/modules/http.matchers.method) +* [not](https://caddyserver.com/docs/modules/http.matchers.not) +* [path](https://caddyserver.com/docs/modules/http.matchers.path) +* [path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) +* [protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) +* [query](https://caddyserver.com/docs/modules/http.matchers.query) +* [remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) +* [tls](https://caddyserver.com/docs/modules/http.matchers.tls) +* [vars](https://caddyserver.com/docs/modules/http.matchers.vars) +* [vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) +* [client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn)Non-standard +* [client_country](https://caddyserver.com/docs/modules/http.matchers.client_country)Non-standard +* [conneg](https://caddyserver.com/docs/modules/http.matchers.conneg)Non-standard +* [crawler](https://caddyserver.com/docs/modules/http.matchers.crawler)Non-standard +* [cron](https://caddyserver.com/docs/modules/http.matchers.cron)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.matchers.dnsfetcher)Non-standard +* [dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip)Non-standard +* [dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip)Non-standard +* [exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop)Non-standard +* [execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [geocity](https://caddyserver.com/docs/modules/http.matchers.geocity)Non-standard +* [geocn](https://caddyserver.com/docs/modules/http.matchers.geocn)Non-standard +* [geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn)Non-standard +* [geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country)Non-standard +* [maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation)Non-standard +* [remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host)Non-standard +* [signed](https://caddyserver.com/docs/modules/http.matchers.signed)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#routes/handle)routes/handle +The list of handlers for this route. Upon matching a request, they are chained together in a middleware fashion: requests flow from the first handler to the last (top of the list to the bottom), with the possibility that any handler could stop the chain and/or return an error. Responses flow back through the chain (bottom of the list to the top) as they are written out to the client. + +Not all handlers call the next handler in the chain. For example, the reverse_proxy handler always sends a request upstream or returns an error. Thus, configuring handlers after reverse_proxy in the same route is illogical, since they would never be executed. You will want to put handlers which originate the response at the very end of your route(s). The documentation for a module should state whether it invokes the next handler, but sometimes it is common sense. + +Some handlers manipulate the response. Remember that requests flow down the list, and responses flow up the list. + +For example, if you wanted to use both `templates` and `encode` handlers, you would need to put `templates` after `encode` in your route, because responses flow up. Thus, `templates` will be able to parse and execute the plain-text response as a template, and then return it up to the `encode` handler which will then compress it into a binary format. + +If `templates` came before `encode`, then `encode` would write a compressed, binary-encoded response to `templates` which would not be able to parse the response properly. + +The correct order, then, is this: + +``` +[ + {"handler": "encode"}, + {"handler": "templates"}, + {"handler": "file_server"} +] +``` + +The request flows ⬇️ DOWN (`encode` ->`templates` ->`file_server`). + +1. First, `encode` will choose how to `encode` the response and wrap the response. +2. Then, `templates` will wrap the response with a buffer. +3. Finally, `file_server` will originate the content from a file. + +The response flows ⬆️ UP (`file_server` ->`templates` ->`encode`): + +1. First, `file_server` will write the file to the response. +2. That write will be buffered and then executed by `templates`. +3. Lastly, the write from `templates` will flow into `encode` which will compress the stream. + +If you think of routes in this way, it will be easy and even fun to solve the puzzle of writing correct routes. + +Fulfilled by modules in namespace: **http.handlers** + +* [acme_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) +* [authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) +* [copy_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) +* [copy_response_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) +* [encode](https://caddyserver.com/docs/modules/http.handlers.encode) +* [error](https://caddyserver.com/docs/modules/http.handlers.error) +* [file_server](https://caddyserver.com/docs/modules/http.handlers.file_server) +* [headers](https://caddyserver.com/docs/modules/http.handlers.headers) +* [intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) +* [invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) +* [log_append](https://caddyserver.com/docs/modules/http.handlers.log_append) +* [map](https://caddyserver.com/docs/modules/http.handlers.map) +* [metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) +* [push](https://caddyserver.com/docs/modules/http.handlers.push) +* [request_body](https://caddyserver.com/docs/modules/http.handlers.request_body) +* [reverse_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) +* [rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) +* [static_response](https://caddyserver.com/docs/modules/http.handlers.static_response) +* [subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) +* [templates](https://caddyserver.com/docs/modules/http.handlers.templates) +* [tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) +* [vars](https://caddyserver.com/docs/modules/http.handlers.vars) +* [adobe_usage_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [authelia](https://caddyserver.com/docs/modules/http.handlers.authelia)Non-standard +* [authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator)Non-standard +* [authp](https://caddyserver.com/docs/modules/http.handlers.authp)Non-standard +* [authz](https://caddyserver.com/docs/modules/http.handlers.authz)Non-standard +* [basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp)Non-standard +* [blockaws](https://caddyserver.com/docs/modules/http.handlers.blockaws)Non-standard +* [bot_barrier](https://caddyserver.com/docs/modules/http.handlers.bot_barrier)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cerberus](https://caddyserver.com/docs/modules/http.handlers.cerberus)Non-standard +* [cgi](https://caddyserver.com/docs/modules/http.handlers.cgi)Non-standard +* [cookiecrypt](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt)Non-standard +* [cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag)Non-standard +* [crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec)Non-standard +* [ct](https://caddyserver.com/docs/modules/http.handlers.ct)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [discord](https://caddyserver.com/docs/modules/http.handlers.discord)Non-standard +* [dns01proxy](https://caddyserver.com/docs/modules/http.handlers.dns01proxy)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher)Non-standard +* [esi](https://caddyserver.com/docs/modules/http.handlers.esi)Non-standard +* [exec](https://caddyserver.com/docs/modules/http.handlers.exec)Non-standard +* [extra_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders)Non-standard +* [filter](https://caddyserver.com/docs/modules/http.handlers.filter)Non-standard +* [floaty](https://caddyserver.com/docs/modules/http.handlers.floaty)Non-standard +* [forward_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth)Non-standard +* [gbox](https://caddyserver.com/docs/modules/http.handlers.gbox)Non-standard +* [geofence](https://caddyserver.com/docs/modules/http.handlers.geofence)Non-standard +* [geoip](https://caddyserver.com/docs/modules/http.handlers.geoip)Non-standard +* [geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2)Non-standard +* [git](https://caddyserver.com/docs/modules/http.handlers.git)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [grpc_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web)Non-standard +* [guard](https://caddyserver.com/docs/modules/http.handlers.guard)Non-standard +* [hmac](https://caddyserver.com/docs/modules/http.handlers.hmac)Non-standard +* [http_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache)Non-standard +* [i18n](https://caddyserver.com/docs/modules/http.handlers.i18n)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor)Non-standard +* [imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy)Non-standard +* [inspect](https://caddyserver.com/docs/modules/http.handlers.inspect)Non-standard +* [ip_filter](https://caddyserver.com/docs/modules/http.handlers.ip_filter)Non-standard +* [ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap)Non-standard +* [jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait)Non-standard +* [json_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse)Non-standard +* [jwt_issuer](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer)Non-standard +* [k8s_admission](https://caddyserver.com/docs/modules/http.handlers.k8s_admission)Non-standard +* [lambda](https://caddyserver.com/docs/modules/http.handlers.lambda)Non-standard +* [ldap_basic_auth](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth)Non-standard +* [listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy)Non-standard +* [lura](https://caddyserver.com/docs/modules/http.handlers.lura)Non-standard +* [mercure](https://caddyserver.com/docs/modules/http.handlers.mercure)Non-standard +* [minifier](https://caddyserver.com/docs/modules/http.handlers.minifier)Non-standard +* [mirror](https://caddyserver.com/docs/modules/http.handlers.mirror)Non-standard +* [myplugin](https://caddyserver.com/docs/modules/http.handlers.myplugin)Non-standard +* [nobots](https://caddyserver.com/docs/modules/http.handlers.nobots)Non-standard +* [oauth2_token_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection)Non-standard +* [olaf](https://caddyserver.com/docs/modules/http.handlers.olaf)Non-standard +* [olo_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature)Non-standard +* [openapi](https://caddyserver.com/docs/modules/http.handlers.openapi)Non-standard +* [openapi_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator)Non-standard +* [php](https://caddyserver.com/docs/modules/http.handlers.php)Non-standard +* [pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch)Non-standard +* [pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster)Non-standard +* [placeholder_dump](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump)Non-standard +* [plausible](https://caddyserver.com/docs/modules/http.handlers.plausible)Non-standard +* [pmtiles_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy)Non-standard +* [pocketbase](https://caddyserver.com/docs/modules/http.handlers.pocketbase)Non-standard +* [postauth2fa](https://caddyserver.com/docs/modules/http.handlers.postauth2fa)Non-standard +* [prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus)Non-standard +* [public_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix)Non-standard +* [quantity_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [realip](https://caddyserver.com/docs/modules/http.handlers.realip)Non-standard +* [redir_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns)Non-standard +* [replace_response](https://caddyserver.com/docs/modules/http.handlers.replace_response)Non-standard +* [request_body_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var)Non-standard +* [request_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug)Non-standard +* [request_id](https://caddyserver.com/docs/modules/http.handlers.request_id)Non-standard +* [s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [save](https://caddyserver.com/docs/modules/http.handlers.save)Non-standard +* [scion](https://caddyserver.com/docs/modules/http.handlers.scion)Non-standard +* [teapot](https://caddyserver.com/docs/modules/http.handlers.teapot)Non-standard +* [trace](https://caddyserver.com/docs/modules/http.handlers.trace)Non-standard +* [trapdoor](https://caddyserver.com/docs/modules/http.handlers.trapdoor)Non-standard +* [trojan](https://caddyserver.com/docs/modules/http.handlers.trojan)Non-standard +* [umami](https://caddyserver.com/docs/modules/http.handlers.umami)Non-standard +* [upload](https://caddyserver.com/docs/modules/http.handlers.upload)Non-standard +* [user_agent_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse)Non-standard +* [vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf_chaitin](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin)Non-standard +* [wafris](https://caddyserver.com/docs/modules/http.handlers.wafris)Non-standard +* [wake_on_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan)Non-standard +* [webdav](https://caddyserver.com/docs/modules/http.handlers.webdav)Non-standard +* [webhook](https://caddyserver.com/docs/modules/http.handlers.webhook)Non-standard +* [x_clacks_overhead](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#routes/terminal)routes/terminal +If true, no more routes will be executed after this one. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#errors)errors +If the primary routes return an error, error handling can be promoted to this configuration instead. + +HTTPErrorConfig determines how to handle errors from the HTTP handlers. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#errors/routes)errors/routes +The routes to evaluate after the primary handler chain returns an error. In an error route, extra placeholders are available: + +| Placeholder | Description | +| --- | --- | +| `{http.error.status_code}` | The recommended HTTP status code | +| `{http.error.status_text}` | The status text associated with the recommended status code | +| `{http.error.message}` | The error message | +| `{http.error.trace}` | The origin of the error | +| `{http.error.id}` | An identifier for this occurrence of the error | + +Route consists of a set of rules for matching HTTP requests, a list of handlers to execute, and optional flow control parameters which customize the handling of HTTP requests in a highly flexible and performant manner. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#errors/routes/group)errors/routes/group +Group is an optional name for a group to which this route belongs. Grouping a route makes it mutually exclusive with others in its group; if a route belongs to a group, only the first matching route in that group will be executed. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#errors/routes/match)errors/routes/match +The matcher sets which will be used to qualify this route for a request (essentially the "if" statement of this route). Each matcher set is OR'ed, but matchers within a set are AND'ed together. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.matchers** + +* [client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) +* [expression](https://caddyserver.com/docs/modules/http.matchers.expression) +* [file](https://caddyserver.com/docs/modules/http.matchers.file) +* [header](https://caddyserver.com/docs/modules/http.matchers.header) +* [header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) +* [host](https://caddyserver.com/docs/modules/http.matchers.host) +* [method](https://caddyserver.com/docs/modules/http.matchers.method) +* [not](https://caddyserver.com/docs/modules/http.matchers.not) +* [path](https://caddyserver.com/docs/modules/http.matchers.path) +* [path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) +* [protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) +* [query](https://caddyserver.com/docs/modules/http.matchers.query) +* [remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) +* [tls](https://caddyserver.com/docs/modules/http.matchers.tls) +* [vars](https://caddyserver.com/docs/modules/http.matchers.vars) +* [vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) +* [client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn)Non-standard +* [client_country](https://caddyserver.com/docs/modules/http.matchers.client_country)Non-standard +* [conneg](https://caddyserver.com/docs/modules/http.matchers.conneg)Non-standard +* [crawler](https://caddyserver.com/docs/modules/http.matchers.crawler)Non-standard +* [cron](https://caddyserver.com/docs/modules/http.matchers.cron)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.matchers.dnsfetcher)Non-standard +* [dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip)Non-standard +* [dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip)Non-standard +* [exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop)Non-standard +* [execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [geocity](https://caddyserver.com/docs/modules/http.matchers.geocity)Non-standard +* [geocn](https://caddyserver.com/docs/modules/http.matchers.geocn)Non-standard +* [geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn)Non-standard +* [geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country)Non-standard +* [maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation)Non-standard +* [remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host)Non-standard +* [signed](https://caddyserver.com/docs/modules/http.matchers.signed)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#errors/routes/handle)errors/routes/handle +The list of handlers for this route. Upon matching a request, they are chained together in a middleware fashion: requests flow from the first handler to the last (top of the list to the bottom), with the possibility that any handler could stop the chain and/or return an error. Responses flow back through the chain (bottom of the list to the top) as they are written out to the client. + +Not all handlers call the next handler in the chain. For example, the reverse_proxy handler always sends a request upstream or returns an error. Thus, configuring handlers after reverse_proxy in the same route is illogical, since they would never be executed. You will want to put handlers which originate the response at the very end of your route(s). The documentation for a module should state whether it invokes the next handler, but sometimes it is common sense. + +Some handlers manipulate the response. Remember that requests flow down the list, and responses flow up the list. + +For example, if you wanted to use both `templates` and `encode` handlers, you would need to put `templates` after `encode` in your route, because responses flow up. Thus, `templates` will be able to parse and execute the plain-text response as a template, and then return it up to the `encode` handler which will then compress it into a binary format. + +If `templates` came before `encode`, then `encode` would write a compressed, binary-encoded response to `templates` which would not be able to parse the response properly. + +The correct order, then, is this: + +``` +[ + {"handler": "encode"}, + {"handler": "templates"}, + {"handler": "file_server"} +] +``` + +The request flows ⬇️ DOWN (`encode` ->`templates` ->`file_server`). + +1. First, `encode` will choose how to `encode` the response and wrap the response. +2. Then, `templates` will wrap the response with a buffer. +3. Finally, `file_server` will originate the content from a file. + +The response flows ⬆️ UP (`file_server` ->`templates` ->`encode`): + +1. First, `file_server` will write the file to the response. +2. That write will be buffered and then executed by `templates`. +3. Lastly, the write from `templates` will flow into `encode` which will compress the stream. + +If you think of routes in this way, it will be easy and even fun to solve the puzzle of writing correct routes. + +Fulfilled by modules in namespace: **http.handlers** + +* [acme_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) +* [authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) +* [copy_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) +* [copy_response_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) +* [encode](https://caddyserver.com/docs/modules/http.handlers.encode) +* [error](https://caddyserver.com/docs/modules/http.handlers.error) +* [file_server](https://caddyserver.com/docs/modules/http.handlers.file_server) +* [headers](https://caddyserver.com/docs/modules/http.handlers.headers) +* [intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) +* [invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) +* [log_append](https://caddyserver.com/docs/modules/http.handlers.log_append) +* [map](https://caddyserver.com/docs/modules/http.handlers.map) +* [metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) +* [push](https://caddyserver.com/docs/modules/http.handlers.push) +* [request_body](https://caddyserver.com/docs/modules/http.handlers.request_body) +* [reverse_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) +* [rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) +* [static_response](https://caddyserver.com/docs/modules/http.handlers.static_response) +* [subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) +* [templates](https://caddyserver.com/docs/modules/http.handlers.templates) +* [tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) +* [vars](https://caddyserver.com/docs/modules/http.handlers.vars) +* [adobe_usage_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [authelia](https://caddyserver.com/docs/modules/http.handlers.authelia)Non-standard +* [authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator)Non-standard +* [authp](https://caddyserver.com/docs/modules/http.handlers.authp)Non-standard +* [authz](https://caddyserver.com/docs/modules/http.handlers.authz)Non-standard +* [basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp)Non-standard +* [blockaws](https://caddyserver.com/docs/modules/http.handlers.blockaws)Non-standard +* [bot_barrier](https://caddyserver.com/docs/modules/http.handlers.bot_barrier)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cerberus](https://caddyserver.com/docs/modules/http.handlers.cerberus)Non-standard +* [cgi](https://caddyserver.com/docs/modules/http.handlers.cgi)Non-standard +* [cookiecrypt](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt)Non-standard +* [cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag)Non-standard +* [crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec)Non-standard +* [ct](https://caddyserver.com/docs/modules/http.handlers.ct)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [discord](https://caddyserver.com/docs/modules/http.handlers.discord)Non-standard +* [dns01proxy](https://caddyserver.com/docs/modules/http.handlers.dns01proxy)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher)Non-standard +* [esi](https://caddyserver.com/docs/modules/http.handlers.esi)Non-standard +* [exec](https://caddyserver.com/docs/modules/http.handlers.exec)Non-standard +* [extra_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders)Non-standard +* [filter](https://caddyserver.com/docs/modules/http.handlers.filter)Non-standard +* [floaty](https://caddyserver.com/docs/modules/http.handlers.floaty)Non-standard +* [forward_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth)Non-standard +* [gbox](https://caddyserver.com/docs/modules/http.handlers.gbox)Non-standard +* [geofence](https://caddyserver.com/docs/modules/http.handlers.geofence)Non-standard +* [geoip](https://caddyserver.com/docs/modules/http.handlers.geoip)Non-standard +* [geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2)Non-standard +* [git](https://caddyserver.com/docs/modules/http.handlers.git)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [grpc_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web)Non-standard +* [guard](https://caddyserver.com/docs/modules/http.handlers.guard)Non-standard +* [hmac](https://caddyserver.com/docs/modules/http.handlers.hmac)Non-standard +* [http_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache)Non-standard +* [i18n](https://caddyserver.com/docs/modules/http.handlers.i18n)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor)Non-standard +* [imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy)Non-standard +* [inspect](https://caddyserver.com/docs/modules/http.handlers.inspect)Non-standard +* [ip_filter](https://caddyserver.com/docs/modules/http.handlers.ip_filter)Non-standard +* [ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap)Non-standard +* [jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait)Non-standard +* [json_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse)Non-standard +* [jwt_issuer](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer)Non-standard +* [k8s_admission](https://caddyserver.com/docs/modules/http.handlers.k8s_admission)Non-standard +* [lambda](https://caddyserver.com/docs/modules/http.handlers.lambda)Non-standard +* [ldap_basic_auth](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth)Non-standard +* [listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy)Non-standard +* [lura](https://caddyserver.com/docs/modules/http.handlers.lura)Non-standard +* [mercure](https://caddyserver.com/docs/modules/http.handlers.mercure)Non-standard +* [minifier](https://caddyserver.com/docs/modules/http.handlers.minifier)Non-standard +* [mirror](https://caddyserver.com/docs/modules/http.handlers.mirror)Non-standard +* [myplugin](https://caddyserver.com/docs/modules/http.handlers.myplugin)Non-standard +* [nobots](https://caddyserver.com/docs/modules/http.handlers.nobots)Non-standard +* [oauth2_token_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection)Non-standard +* [olaf](https://caddyserver.com/docs/modules/http.handlers.olaf)Non-standard +* [olo_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature)Non-standard +* [openapi](https://caddyserver.com/docs/modules/http.handlers.openapi)Non-standard +* [openapi_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator)Non-standard +* [php](https://caddyserver.com/docs/modules/http.handlers.php)Non-standard +* [pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch)Non-standard +* [pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster)Non-standard +* [placeholder_dump](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump)Non-standard +* [plausible](https://caddyserver.com/docs/modules/http.handlers.plausible)Non-standard +* [pmtiles_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy)Non-standard +* [pocketbase](https://caddyserver.com/docs/modules/http.handlers.pocketbase)Non-standard +* [postauth2fa](https://caddyserver.com/docs/modules/http.handlers.postauth2fa)Non-standard +* [prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus)Non-standard +* [public_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix)Non-standard +* [quantity_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [realip](https://caddyserver.com/docs/modules/http.handlers.realip)Non-standard +* [redir_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns)Non-standard +* [replace_response](https://caddyserver.com/docs/modules/http.handlers.replace_response)Non-standard +* [request_body_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var)Non-standard +* [request_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug)Non-standard +* [request_id](https://caddyserver.com/docs/modules/http.handlers.request_id)Non-standard +* [s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [save](https://caddyserver.com/docs/modules/http.handlers.save)Non-standard +* [scion](https://caddyserver.com/docs/modules/http.handlers.scion)Non-standard +* [teapot](https://caddyserver.com/docs/modules/http.handlers.teapot)Non-standard +* [trace](https://caddyserver.com/docs/modules/http.handlers.trace)Non-standard +* [trapdoor](https://caddyserver.com/docs/modules/http.handlers.trapdoor)Non-standard +* [trojan](https://caddyserver.com/docs/modules/http.handlers.trojan)Non-standard +* [umami](https://caddyserver.com/docs/modules/http.handlers.umami)Non-standard +* [upload](https://caddyserver.com/docs/modules/http.handlers.upload)Non-standard +* [user_agent_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse)Non-standard +* [vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf_chaitin](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin)Non-standard +* [wafris](https://caddyserver.com/docs/modules/http.handlers.wafris)Non-standard +* [wake_on_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan)Non-standard +* [webdav](https://caddyserver.com/docs/modules/http.handlers.webdav)Non-standard +* [webhook](https://caddyserver.com/docs/modules/http.handlers.webhook)Non-standard +* [x_clacks_overhead](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http.handlers.subroute#errors/routes/terminal)errors/routes/terminal +If true, no more routes will be executed after this one. diff --git a/docs/caddy/modules/http.handlers.teapot.md b/docs/caddy/modules/http.handlers.teapot.md new file mode 100644 index 0000000..ed91407 --- /dev/null +++ b/docs/caddy/modules/http.handlers.teapot.md @@ -0,0 +1,38 @@ +Title: Module http.handlers.teapot - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.teapot + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.teapot**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.teapot#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/hairyhenderson/caddy-teapot-module](https://github.com/hairyhenderson/caddy-teapot-module)** + +**Custom builds:**`xcaddy build --with github.com/hairyhenderson/caddy-teapot-module` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.teapot#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.handlers.teapot implements a static "418 I'm a teapot" response to all requests on the route diff --git a/docs/caddy/modules/http.handlers.templates.functions.hitCounter.md b/docs/caddy/modules/http.handlers.templates.functions.hitCounter.md new file mode 100644 index 0000000..a12b495 --- /dev/null +++ b/docs/caddy/modules/http.handlers.templates.functions.hitCounter.md @@ -0,0 +1,44 @@ +Title: Module http.handlers.templates.functions.hitCounter - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.templates.functions.hitCounter + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.templates.functions.hitCounter**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.templates.functions.hitCounter#docs "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +`{▾ "style": "", "pad_digits": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-hitcounter](https://github.com/mholt/caddy-hitcounter)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-hitcounter` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.templates.functions.hitCounter#docs "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +http.handlers.templates.functions.hitCounter implements a simple early-Web hit counter. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.templates.functions.hitCounter#style)style +The style of digit/counter to use. Supported values are bright_green, green, odometer, or yellow. Default: green. (Styles and default are subject to change.) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.templates.functions.hitCounter#pad_digits)pad_digits +How many digits wide to make the counter. If zero/unset, padding is disabled. diff --git a/docs/caddy/docs/docs/modules/http.handlers.templates.md b/docs/caddy/modules/http.handlers.templates.md similarity index 73% rename from docs/caddy/docs/docs/modules/http.handlers.templates.md rename to docs/caddy/modules/http.handlers.templates.md index 78b4f45..4f7f443 100644 --- a/docs/caddy/docs/docs/modules/http.handlers.templates.md +++ b/docs/caddy/modules/http.handlers.templates.md @@ -1,21 +1,21 @@ -Title: Module http.handlers.templates - Caddy Documentation +Title: Modules - Caddy Documentation URL Source: https://caddyserver.com/docs/modules/http.handlers.templates Markdown Content: -Module http.handlers.templates - Caddy Documentation -=============== +Modules - Caddy Documentation -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== -Documentation +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +Documentation -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +27,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +40,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,9 +59,10 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) All Modules =========== @@ -71,13 +74,13 @@ We recommend using your browser's "Find in page" feature for quick lookups. | | Module ID | Description | | --- | --- | --- | -There is more than one module named . Choose one by its repository. + There is more than one module named . Choose one by its repository. -**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. - -**Code repository:[](javascript:)** - -**Custom builds:** `xcaddy build --with ` +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` Description ----------- @@ -89,9 +92,12 @@ Fulfilled by modules in namespace: This property is **required** because it specifies the module name. -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.trace.md b/docs/caddy/modules/http.handlers.trace.md new file mode 100644 index 0000000..605790c --- /dev/null +++ b/docs/caddy/modules/http.handlers.trace.md @@ -0,0 +1,47 @@ +Title: Module http.handlers.trace - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.trace + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.trace**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.trace#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾ "disabled": false, "tag": "", "response_debug_enabled": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/greenpau/caddy-trace](https://github.com/greenpau/caddy-trace)** + +**Custom builds:**`xcaddy build --with github.com/greenpau/caddy-trace` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.trace#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.handlers.trace is a middleware which displays the content of the request it handles. It helps troubleshooting web requests by exposing headers (e.g. cookies), URL parameters, etc. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.trace#disabled)disabled +Enables or disables the plugin. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.trace#tag)tag +Adds a tag to a log message + +[🔗](https://caddyserver.com/docs/modules/http.handlers.trace#response_debug_enabled)response_debug_enabled +Adds response buffering and debugging diff --git a/docs/caddy/modules/http.handlers.tracing.md b/docs/caddy/modules/http.handlers.tracing.md new file mode 100644 index 0000000..15f9f7b --- /dev/null +++ b/docs/caddy/modules/http.handlers.tracing.md @@ -0,0 +1,129 @@ +Title: Module http.handlers.tracing - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.tracing + +Markdown Content: +Module http.handlers.tracing - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.tracing +============================ + + There is more than one module named **Module http.handlers.tracing**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.tracing#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "span": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.tracing#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.handlers.tracing implements an HTTP handler that adds support for distributed tracing, using OpenTelemetry. This module is responsible for the injection and propagation of the trace context. Configure this module via environment variables (see [https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/sdk-environment-variables.md)). Some values can be overwritten in the configuration file. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.tracing#span)span +SpanName is a span name. It should follow the naming guidelines here: [https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/api.md#span](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/trace/api.md#span) + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.trapdoor.md b/docs/caddy/modules/http.handlers.trapdoor.md new file mode 100644 index 0000000..b900754 --- /dev/null +++ b/docs/caddy/modules/http.handlers.trapdoor.md @@ -0,0 +1,54 @@ +Title: Module http.handlers.trapdoor - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.trapdoor + +Markdown Content: +[🔗](https://caddyserver.com/docs/modules/http.handlers.trapdoor#action)action +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.trapdoor#duration)duration +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.trapdoor#expunger_interval)expunger_interval +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.trapdoor#matchers)matchers +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.matchers** + +* [client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) +* [expression](https://caddyserver.com/docs/modules/http.matchers.expression) +* [file](https://caddyserver.com/docs/modules/http.matchers.file) +* [header](https://caddyserver.com/docs/modules/http.matchers.header) +* [header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) +* [host](https://caddyserver.com/docs/modules/http.matchers.host) +* [method](https://caddyserver.com/docs/modules/http.matchers.method) +* [not](https://caddyserver.com/docs/modules/http.matchers.not) +* [path](https://caddyserver.com/docs/modules/http.matchers.path) +* [path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) +* [protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) +* [query](https://caddyserver.com/docs/modules/http.matchers.query) +* [remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) +* [tls](https://caddyserver.com/docs/modules/http.matchers.tls) +* [vars](https://caddyserver.com/docs/modules/http.matchers.vars) +* [vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) +* [client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn)Non-standard +* [client_country](https://caddyserver.com/docs/modules/http.matchers.client_country)Non-standard +* [conneg](https://caddyserver.com/docs/modules/http.matchers.conneg)Non-standard +* [crawler](https://caddyserver.com/docs/modules/http.matchers.crawler)Non-standard +* [cron](https://caddyserver.com/docs/modules/http.matchers.cron)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.matchers.dnsfetcher)Non-standard +* [dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip)Non-standard +* [dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip)Non-standard +* [exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop)Non-standard +* [execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [geocity](https://caddyserver.com/docs/modules/http.matchers.geocity)Non-standard +* [geocn](https://caddyserver.com/docs/modules/http.matchers.geocn)Non-standard +* [geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn)Non-standard +* [geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country)Non-standard +* [maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation)Non-standard +* [remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host)Non-standard +* [signed](https://caddyserver.com/docs/modules/http.matchers.signed)Non-standard diff --git a/docs/caddy/modules/http.handlers.trojan.md b/docs/caddy/modules/http.handlers.trojan.md new file mode 100644 index 0000000..88090b0 --- /dev/null +++ b/docs/caddy/modules/http.handlers.trojan.md @@ -0,0 +1,47 @@ +Title: Module http.handlers.trojan - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.trojan + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.trojan**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.trojan#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "websocket": false, "connect_method": false, "verbose": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/imgk/caddy-trojan](https://github.com/imgk/caddy-trojan)** + +**Custom builds:**`xcaddy build --with github.com/imgk/caddy-trojan/handler` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.trojan#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.handlers.trojan implements an HTTP handler that ... + +[🔗](https://caddyserver.com/docs/modules/http.handlers.trojan#websocket)websocket +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.trojan#connect_method)connect_method +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.trojan#verbose)verbose +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.umami.md b/docs/caddy/modules/http.handlers.umami.md new file mode 100644 index 0000000..5173a5f --- /dev/null +++ b/docs/caddy/modules/http.handlers.umami.md @@ -0,0 +1,172 @@ +Title: Module http.handlers.umami - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.umami + +Markdown Content: +Module http.handlers.umami - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.umami +========================== + + There is more than one module named **Module http.handlers.umami**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/jonaharagon/caddy-umami + +`{▾ "event_endpoint": "", "website_uuid": "", "allowed_extensions": [""], "client_ip_header": "", "report_all_resources": false, "trusted_ip_header": "", "cookie_consent": [{▾ "name": "", "behavior": "" }], "cookie_resolution": "", "device_detection": false, "static_metadata": [{▾ "key": "", "value": "" }]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/jonaharagon/caddy-umami](https://github.com/jonaharagon/caddy-umami)** + +**Custom builds:**`xcaddy build --with github.com/jonaharagon/caddy-umami` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#docs "Direct link") +-------------------------------------------------------------------------------------------- + +A Caddy module which sends visitor information to Umami's Events REST API endpoint. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#event_endpoint)event_endpoint +The address of your Umami installation's send API endpoint. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#website_uuid)website_uuid +The UUID of the website you want to track. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#allowed_extensions)allowed_extensions +A map of page path extensions that should be reported to Umami. You must include the leading dot. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#client_ip_header)client_ip_header +The header to send the client IP address to Umami with. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#report_all_resources)report_all_resources +Enables reporting of all resources (ignoring extension checks). + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#trusted_ip_header)trusted_ip_header +The header to use to get the client IP address from, behind a trusted reverse proxy. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#cookie_consent)cookie_consent +A map of cookie-based consent settings. Only the first value in the map is utilized currently. + +Cookie-based consent settings. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#cookie_consent/name)cookie_consent/name +The name of the cookie that stores the consent setting. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#cookie_consent/behavior)cookie_consent/behavior +Can be "disable_all" to disable sending analytics if the cookie value is "false", or "path_only" to send analytic data without client information (IP, user agent, etc.) if the cookie value is "false". Defaults to "disable_all" if not specified. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#cookie_resolution)cookie_resolution +The name of the cookie that stores the visitor's screen resolution. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#device_detection)device_detection +Enable rudimentary device detection based on Sec-CH-UA-Mobile and Sec-CH-UA-Platform headers. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#static_metadata)static_metadata +Optional static metadata to include with each event via query string. + +Optional static metadata to include with each event via query string. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#static_metadata/key)static_metadata/key +The key of the metadata. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.umami#static_metadata/value)static_metadata/value +The value of the metadata. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.upload.md b/docs/caddy/modules/http.handlers.upload.md new file mode 100644 index 0000000..cd8f28d --- /dev/null +++ b/docs/caddy/modules/http.handlers.upload.md @@ -0,0 +1,53 @@ +Title: Module http.handlers.upload - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.upload + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.upload**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.upload#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "dest_dir": "", "max_filesize": 0, "response_template": "", "notify_url": "", "notify_method": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/git001/caddyv2-upload](https://github.com/git001/caddyv2-upload)** + +**Custom builds:**`xcaddy build --with github.com/git001/caddyv2-upload` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.upload#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Middleware implements an HTTP handler that writes the uploaded file to a file on the disk. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.upload#dest_dir)dest_dir +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.upload#max_filesize)max_filesize +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.upload#response_template)response_template +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.upload#notify_url)notify_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.upload#notify_method)notify_method +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.user_agent_parse.md b/docs/caddy/modules/http.handlers.user_agent_parse.md new file mode 100644 index 0000000..e13cd4d --- /dev/null +++ b/docs/caddy/modules/http.handlers.user_agent_parse.md @@ -0,0 +1,36 @@ +Title: Module http.handlers.user_agent_parse - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.user_agent_parse + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.user_agent_parse**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/neodyme-labs/user_agent_parse](https://github.com/neodyme-labs/user_agent_parse)** + +**Custom builds:**`xcaddy build --with github.com/neodyme-labs/user_agent_parse` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse#docs "Direct link") +------------------------------------------------------------------------------------------------------- diff --git a/docs/caddy/modules/http.handlers.vars.md b/docs/caddy/modules/http.handlers.vars.md new file mode 100644 index 0000000..7f97cc4 --- /dev/null +++ b/docs/caddy/modules/http.handlers.vars.md @@ -0,0 +1,44 @@ +Title: Module http.handlers.vars - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.vars + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.vars**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.vars#docs "Direct link") +------------------------------------------------------------------------------------------- + +``` +{ + "": +} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.vars#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.handlers.vars is an HTTP middleware which sets variables to have values that can be used in the HTTP request handler chain. The primary way to access variables is with placeholders, which have the form: `{http.vars.variable_name}`, or with the `vars` and `vars_regexp` request matchers. + +The key is the variable name, and the value is the value of the variable. Both the name and value may use or contain placeholders. diff --git a/docs/caddy/modules/http.handlers.vulcain.md b/docs/caddy/modules/http.handlers.vulcain.md new file mode 100644 index 0000000..5c5c42d --- /dev/null +++ b/docs/caddy/modules/http.handlers.vulcain.md @@ -0,0 +1,47 @@ +Title: Module http.handlers.vulcain - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.vulcain + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.vulcain**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.vulcain#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾ "openapi_file": "", "max_pushes": 0, "early_hints": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/dunglas/vulcain](https://github.com/dunglas/vulcain)** + +**Custom builds:**`xcaddy build --with github.com/dunglas/vulcain/caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.vulcain#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.handlers.vulcain add suport for the Vulcain protocol (fast and idiomatic client-driven REST APIs) as a Caddy module. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.vulcain#openapi_file)openapi_file +Path to an OpenAPI file documenting relations between resources (for non-hypermedia APIs) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.vulcain#max_pushes)max_pushes +Maximum number of resources to push + +[🔗](https://caddyserver.com/docs/modules/http.handlers.vulcain#early_hints)early_hints +To eable 103 Early Hints responses diff --git a/docs/caddy/modules/http.handlers.waf.md b/docs/caddy/modules/http.handlers.waf.md new file mode 100644 index 0000000..76405c1 --- /dev/null +++ b/docs/caddy/modules/http.handlers.waf.md @@ -0,0 +1,151 @@ +Title: Module http.handlers.waf - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.waf + +Markdown Content: +Module http.handlers.waf - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.waf +======================== + + There is more than one module named **http.handlers.waf**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.waf#docs "Direct link") +------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/BraveRoy/caddy-waf + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/BraveRoy/caddy-waf](https://github.com/BraveRoy/caddy-waf)** + +**Custom builds:**`xcaddy build --with github.com/BraveRoy/caddy-waf` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.waf#docs "Direct link") +------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/corazawaf/coraza-caddy + +`{▾ "include": [""], "directives": "", "load_owasp_crs": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/corazawaf/coraza-caddy](https://github.com/corazawaf/coraza-caddy)** + +**Custom builds:**`xcaddy build --with github.com/corazawaf/coraza-caddy/v2` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.waf#docs "Direct link") +------------------------------------------------------------------------------------------ + +http.handlers.waf is a Web Application Firewall implementation for Caddy. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.waf#include)include +deprecated + +[🔗](https://caddyserver.com/docs/modules/http.handlers.waf#directives)directives +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.waf#load_owasp_crs)load_owasp_crs +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.waf_chaitin.md b/docs/caddy/modules/http.handlers.waf_chaitin.md new file mode 100644 index 0000000..15be8ce --- /dev/null +++ b/docs/caddy/modules/http.handlers.waf_chaitin.md @@ -0,0 +1,44 @@ +Title: Module http.handlers.waf_chaitin - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.waf_chaitin + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.waf_chaitin**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "waf_engine_addr": "", "pool_size": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/W0n9/caddy_waf_t1k](https://github.com/W0n9/caddy_waf_t1k)** + +**Custom builds:**`xcaddy build --with github.com/W0n9/caddy_waf_t1k` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +http.handlers.waf_chaitin implements an HTTP handler for WAF. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin#waf_engine_addr)waf_engine_addr +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin#pool_size)pool_size +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.wafris.md b/docs/caddy/modules/http.handlers.wafris.md new file mode 100644 index 0000000..0c30c72 --- /dev/null +++ b/docs/caddy/modules/http.handlers.wafris.md @@ -0,0 +1,41 @@ +Title: Module http.handlers.wafris - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.wafris + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.wafris**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.wafris#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "wafris_url": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/Wafris/wafris-caddy](https://github.com/Wafris/wafris-caddy)** + +**Custom builds:**`xcaddy build --with github.com/Wafris/wafris-caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.wafris#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Wafris, a free, open source WAF (web application firewall) + +[🔗](https://caddyserver.com/docs/modules/http.handlers.wafris#wafris_url)wafris_url +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.wake_on_lan.md b/docs/caddy/modules/http.handlers.wake_on_lan.md new file mode 100644 index 0000000..9fec07b --- /dev/null +++ b/docs/caddy/modules/http.handlers.wake_on_lan.md @@ -0,0 +1,44 @@ +Title: Module http.handlers.wake_on_lan - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.wake_on_lan + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.wake_on_lan**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "mac": "", "broadcast_address": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/dulli/caddy-wol](https://github.com/dulli/caddy-wol)** + +**Custom builds:**`xcaddy build --with github.com/dulli/caddy-wol` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +http.handlers.wake_on_lan wakes up a target host on HTTP requests using wake-on-lan. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan#mac)mac +MAC address of the target host in a net.ParseMAC compatible format. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan#broadcast_address)broadcast_address +Broadcast address (:) the magic packet should be sent to. Defaults to "255.255.255.255:9". diff --git a/docs/caddy/modules/http.handlers.webdav.md b/docs/caddy/modules/http.handlers.webdav.md new file mode 100644 index 0000000..ea12588 --- /dev/null +++ b/docs/caddy/modules/http.handlers.webdav.md @@ -0,0 +1,44 @@ +Title: Module http.handlers.webdav - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.webdav + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.webdav**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.webdav#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "root": "", "prefix": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-webdav](https://github.com/mholt/caddy-webdav)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-webdav` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.webdav#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.handlers.webdav implements an HTTP handler for responding to WebDAV clients. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webdav#root)root +The root directory out of which to serve files. If not specified, `{http.vars.root}` will be used if set; otherwise, the current directory is assumed. Accepts placeholders. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webdav#prefix)prefix +The base path prefix used to access the WebDAV share. Should be used if one more more matchers are used with the webdav directive and it's needed to let the webdav share know what the request base path will be. For example: webdav /some/path/match/* { root /path prefix /some/path/match } Accepts placeholders. diff --git a/docs/caddy/modules/http.handlers.webhook.md b/docs/caddy/modules/http.handlers.webhook.md new file mode 100644 index 0000000..cde78b7 --- /dev/null +++ b/docs/caddy/modules/http.handlers.webhook.md @@ -0,0 +1,165 @@ +Title: Module http.handlers.webhook - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.webhook + +Markdown Content: +Module http.handlers.webhook - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.webhook +============================ + + There is more than one module named **Module http.handlers.webhook**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/WingLim/caddy-webhook + +`{▾ "repo": "", "path": "", "branch": "", "type": "", "secret": "", "depth": "", "submodule": false, "command": [""], "key": "", "key_password": "", "username": "", "password": "", "token": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/WingLim/caddy-webhook](https://github.com/WingLim/caddy-webhook)** + +**Custom builds:**`xcaddy build --with github.com/WingLim/caddy-webhook` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.handlers.webhook is the module configuration. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#repo)repo +Git repository URL, supported http, https and ssh. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#path)path +Path to clone and update repository. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#branch)branch +Branch to pull. Default to `main`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#type)type +Webhook type. Default to `github`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#secret)secret +Secret to verify webhook request. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#depth)depth +Depth for pull and fetch. Default to `0`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#submodule)submodule +Enable recurse submodules. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#command)command +Command to run when repo initializes or receive a correct webhook request. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#key)key +Path of private key, using to access git with ssh. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#key_password)key_password +Password of private key. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#username)username +Username for http auth. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#password)password +Password for http auth. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.webhook#token)token +GitHub personal access token. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.x_clacks_overhead.md b/docs/caddy/modules/http.handlers.x_clacks_overhead.md new file mode 100644 index 0000000..ef61544 --- /dev/null +++ b/docs/caddy/modules/http.handlers.x_clacks_overhead.md @@ -0,0 +1,39 @@ +Title: Module http.handlers.x_clacks_overhead - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.handlers.x_clacks_overhead**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +`{▾ "gnu": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://git.madhouse-project.org/algernon/caddy-x-clacks-overhead.git](https://git.madhouse-project.org/algernon/caddy-x-clacks-overhead.git)** + +**Custom builds:**`xcaddy build --with git.madhouse-project.org/algernon/caddy-x-clacks-overhead` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead#gnu)gnu +There are no docs for this property. diff --git a/docs/caddy/modules/http.handlers.xtemplate.md b/docs/caddy/modules/http.handlers.xtemplate.md new file mode 100644 index 0000000..d17a8ca --- /dev/null +++ b/docs/caddy/modules/http.handlers.xtemplate.md @@ -0,0 +1,220 @@ +Title: Module http.handlers.xtemplate - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.xtemplate + +Markdown Content: +Module http.handlers.xtemplate - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.xtemplate +============================== + + There is more than one module named **http.handlers.xtemplate**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#docs "Direct link") +------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/infogulch/xtemplate-caddy + +``` +{▾ "template": {▾ "path": "", "template_extension": "", "delimiters": {▾ "left": "", "right": "" } }, "context": {▾ "path": "" }, "database": {▾ "driver": "", "connstr": "" }, "config": { + "": "" + }, "log_level": 0, "watch_template_path": false, "watch_context_path": false, "funcs_modules": [""]} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/infogulch/xtemplate-caddy](https://github.com/infogulch/xtemplate-caddy)** + +**Custom builds:**`xcaddy build --with github.com/infogulch/xtemplate-caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#docs "Direct link") +------------------------------------------------------------------------------------------------ + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#template)template +Control where and how templates are loaded. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#template/path)template/path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#template/template_extension)template/template_extension +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#template/delimiters)template/delimiters +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#template/delimiters/left)template/delimiters/left +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#template/delimiters/right)template/delimiters/right +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#context)context +Control where the templates may have dynamic access the filesystem. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#context/path)context/path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#database)database +The database driver and connection string. If set, must be precicely two elements: the driver name and the connection string. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#database/driver)database/driver +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#database/connstr)database/connstr +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#config)config +User configration, accessible in the template execution context as `.Config`. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#log_level)log_level +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#watch_template_path)watch_template_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#watch_context_path)watch_context_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#funcs_modules)funcs_modules +There are no docs for this property. + +▸github.com/infogulch/xtemplate + +``` +{▾ "template_root": "", "context_root": "", "delimiters": [""], "database": {▾ "driver": "", "connstr": "" }, "config": { + "": "" + }, "funcs_modules": [""]} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/infogulch/xtemplate](https://github.com/infogulch/xtemplate)** + +**Custom builds:**`xcaddy build --with github.com/infogulch/xtemplate/caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#docs "Direct link") +------------------------------------------------------------------------------------------------ + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#template_root)template_root +The root path from which to load template files within the selected filesystem (the native filesystem by default). Default is the current working directory. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#context_root)context_root +The root path to reference files from within template funcs. The default, empty string means the local filesystem funcs in templates are disabled. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#delimiters)delimiters +The template action delimiters. If set, must be precisely two elements: the opening and closing delimiters. Default: `["{{", "}}"]` + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#database)database +The database driver and connection string. If set, must be precicely two elements: the driver name and the connection string. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#database/driver)database/driver +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#database/connstr)database/connstr +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#config)config +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplate#funcs_modules)funcs_modules +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.handlers.xtemplates.md b/docs/caddy/modules/http.handlers.xtemplates.md new file mode 100644 index 0000000..eeb2091 --- /dev/null +++ b/docs/caddy/modules/http.handlers.xtemplates.md @@ -0,0 +1,200 @@ +Title: Module http.handlers.xtemplates - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.handlers.xtemplates + +Markdown Content: +Module http.handlers.xtemplates - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.handlers.xtemplates +=============================== + + There is more than one module named **http.handlers.xtemplates**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/infogulch/caddy-xtemplate + +`{▾ "fs_module": "", "root": "", "delimiters": [""], "func_modules": [""], "database": {▾ "driver": "", "connstr": "" }}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/infogulch/caddy-xtemplate](https://github.com/infogulch/caddy-xtemplate)** + +**Custom builds:**`xcaddy build --with github.com/infogulch/caddy-xtemplate` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#fs_module)fs_module +The filesystem from which to load template files. May be "native" (default), or the caddy module ID of a module that implements the CustomFSProvider interface + +ModuleID is a string that uniquely identifies a Caddy module. A module ID is lightly structured. It consists of dot-separated labels which form a simple hierarchy from left to right. The last label is the module name, and the labels before that constitute the namespace (or scope). + +Thus, a module ID has the form: . + +An ID with no dot has the empty namespace, which is appropriate for app modules (these are "top-level" modules that Caddy core loads and runs). + +Module IDs should be lowercase and use underscores (_) instead of spaces. + +Examples of valid IDs: + +* http +* http.handlers.file_server +* caddy.logging.encoders.json + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#root)root +The root path from which to load template files within the selected filesystem (the native filesystem by default). Default is the current working directory. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#delimiters)delimiters +The template action delimiters. If set, must be precisely two elements: the opening and closing delimiters. Default: `["{{", "}}"]` + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#func_modules)func_modules +A list of caddy module IDs from which to load template FuncMaps, by + +ModuleID is a string that uniquely identifies a Caddy module. A module ID is lightly structured. It consists of dot-separated labels which form a simple hierarchy from left to right. The last label is the module name, and the labels before that constitute the namespace (or scope). + +Thus, a module ID has the form: . + +An ID with no dot has the empty namespace, which is appropriate for app modules (these are "top-level" modules that Caddy core loads and runs). + +Module IDs should be lowercase and use underscores (_) instead of spaces. + +Examples of valid IDs: + +* http +* http.handlers.file_server +* caddy.logging.encoders.json + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#database)database +The database driver and connection string. If set, must be precicely two elements: the driver name and the connection string. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#database/driver)database/driver +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#database/connstr)database/connstr +There are no docs for this property. + +▸github.com/infogulch/caddy-xtemplates + +`{▾ "file_root": "", "delimiters": [""], "database": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/infogulch/caddy-xtemplates](https://github.com/infogulch/caddy-xtemplates)** + +**Custom builds:**`xcaddy build --with github.com/infogulch/caddy-xtemplates` + +Description[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#file_root)file_root +The root path from which to load files. Required if template functions accessing the file system are used (such as include). Default is `{http.vars.root}` if set, or current working directory otherwise. + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#delimiters)delimiters +The template action delimiters. If set, must be precisely two elements: the opening and closing delimiters. Default: `["{{", "}}"]` + +[🔗](https://caddyserver.com/docs/modules/http.handlers.xtemplates#database)database +The database driver and connection string. If set, must be precicely two elements: the driver name and the connection string. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fhttp.handlers.xtemplates&r=&sid=GVMGKAKP&qs=%7B%7D&cid=13738052) diff --git a/docs/caddy/modules/http.ip_sources.bunny.md b/docs/caddy/modules/http.ip_sources.bunny.md new file mode 100644 index 0000000..c194e5a --- /dev/null +++ b/docs/caddy/modules/http.ip_sources.bunny.md @@ -0,0 +1,136 @@ +Title: Module http.ip_sources.bunny - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.ip_sources.bunny + +Markdown Content: +Module http.ip_sources.bunny - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.ip_sources.bunny +============================ + + There is more than one module named **Module http.ip_sources.bunny**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.bunny#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/digilolnet/caddy-bunny-ip + +`{▾ "interval": 0, "timeout": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/digilolnet/caddy-bunny-ip](https://github.com/digilolnet/caddy-bunny-ip)** + +**Custom builds:**`xcaddy build --with github.com/digilolnet/caddy-bunny-ip` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.bunny#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.ip_sources.bunny provides a range of IP address prefixes (CIDRs) retrieved from [https://api.bunny.net/system/edgeserverlist](https://api.bunny.net/system/edgeserverlist) and [https://api.bunny.net/system/edgeserverlist/ipv6](https://api.bunny.net/system/edgeserverlist/ipv6). + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.bunny#interval)interval +refresh Interval + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.bunny#timeout)timeout +request Timeout + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.ip_sources.cloudflare.md b/docs/caddy/modules/http.ip_sources.cloudflare.md new file mode 100644 index 0000000..4dd3589 --- /dev/null +++ b/docs/caddy/modules/http.ip_sources.cloudflare.md @@ -0,0 +1,136 @@ +Title: Module http.ip_sources.cloudflare - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.ip_sources.cloudflare + +Markdown Content: +Module http.ip_sources.cloudflare - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.ip_sources.cloudflare +================================= + + There is more than one module named **Module http.ip_sources.cloudflare**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.cloudflare#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/WeidiDeng/caddy-cloudflare-ip + +`{▾ "interval": 0, "timeout": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/WeidiDeng/caddy-cloudflare-ip](https://github.com/WeidiDeng/caddy-cloudflare-ip)** + +**Custom builds:**`xcaddy build --with github.com/WeidiDeng/caddy-cloudflare-ip` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.cloudflare#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +http.ip_sources.cloudflare provides a range of IP address prefixes (CIDRs) retrieved from cloudflare. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.cloudflare#interval)interval +refresh Interval + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.cloudflare#timeout)timeout +request Timeout + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.ip_sources.cloudfront.md b/docs/caddy/modules/http.ip_sources.cloudfront.md new file mode 100644 index 0000000..d751d1b --- /dev/null +++ b/docs/caddy/modules/http.ip_sources.cloudfront.md @@ -0,0 +1,133 @@ +Title: Module http.ip_sources.cloudfront - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.ip_sources.cloudfront + +Markdown Content: +Module http.ip_sources.cloudfront - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.ip_sources.cloudfront +================================= + + There is more than one module named **Module http.ip_sources.cloudfront**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.cloudfront#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/xcaddyplugins/caddy-trusted-cloudfront + +`{▾ "interval": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/xcaddyplugins/caddy-trusted-cloudfront](https://github.com/xcaddyplugins/caddy-trusted-cloudfront)** + +**Custom builds:**`xcaddy build --with github.com/xcaddyplugins/caddy-trusted-cloudfront` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.cloudfront#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +The module that auto trusted_proxies `AWS CloudFront EDGE servers` from CloudFront. Doc: [https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/LocationsOfEdgeServers.html](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/LocationsOfEdgeServers.html) Range from: [https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips](https://d7uri8nf7uskq.cloudfront.net/tools/list-cloudfront-ips) + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.cloudfront#interval)interval +Interval to update the trusted proxies list. default: 1d + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fhttp.ip_sources.cloudfront&r=&sid=GVMGKAKP&qs=%7B%7D&cid=98641214) diff --git a/docs/caddy/modules/http.ip_sources.combine.md b/docs/caddy/modules/http.ip_sources.combine.md new file mode 100644 index 0000000..6fc798f --- /dev/null +++ b/docs/caddy/modules/http.ip_sources.combine.md @@ -0,0 +1,143 @@ +Title: Module http.ip_sources.combine - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.ip_sources.combine + +Markdown Content: +Module http.ip_sources.combine - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.ip_sources.combine +============================== + + There is more than one module named **Module http.ip_sources.combine**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.combine#docs "Direct link") +------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/fvbommel/caddy-combine-ip-ranges + +`{▾ "parts": [{•••}]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/fvbommel/caddy-combine-ip-ranges](https://github.com/fvbommel/caddy-combine-ip-ranges)** + +**Custom builds:**`xcaddy build --with github.com/fvbommel/caddy-combine-ip-ranges` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.combine#docs "Direct link") +------------------------------------------------------------------------------------------------ + +This module combines the prefixes returned by several other IP source plugins. In a caddyfile, you can specify these in the block following the "combine" tag. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.combine#parts)parts +The IP ranges to combine. + +Fulfilled by modules in namespace: **http.ip_sources** + +* [static](https://caddyserver.com/docs/modules/http.ip_sources.static) +* [bunny](https://caddyserver.com/docs/modules/http.ip_sources.bunny)Non-standard +* [cloudflare](https://caddyserver.com/docs/modules/http.ip_sources.cloudflare)Non-standard +* [cloudfront](https://caddyserver.com/docs/modules/http.ip_sources.cloudfront)Non-standard +* [combine](https://caddyserver.com/docs/modules/http.ip_sources.combine)Non-standard +* [dns](https://caddyserver.com/docs/modules/http.ip_sources.dns)Non-standard +* [edgeone](https://caddyserver.com/docs/modules/http.ip_sources.edgeone)Non-standard +* [gcp_cloudcdn](https://caddyserver.com/docs/modules/http.ip_sources.gcp_cloudcdn)Non-standard +* [list](https://caddyserver.com/docs/modules/http.ip_sources.list)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fhttp.ip_sources.combine&r=&sid=GVMGKAKP&qs=%7B%7D&cid=11755312) diff --git a/docs/caddy/modules/http.ip_sources.dns.md b/docs/caddy/modules/http.ip_sources.dns.md new file mode 100644 index 0000000..3990e33 --- /dev/null +++ b/docs/caddy/modules/http.ip_sources.dns.md @@ -0,0 +1,42 @@ +Title: Module http.ip_sources.dns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.ip_sources.dns + +Markdown Content: +There is more than one module named **Module http.ip_sources.dns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.dns#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +`{▾ "hosts": [""], "interval": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/fvbommel/caddy-dns-ip-range](https://github.com/fvbommel/caddy-dns-ip-range)** + +**Custom builds:**`xcaddy build --with github.com/fvbommel/caddy-dns-ip-range` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.dns#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.ip_sources.dns provides a range of IP addresses associated with a DNS name. Each range will only contain a single IP. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.dns#hosts)hosts +A list of DNS names to look up. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.dns#interval)interval +The refresh interval. Defaults to DefaultInterval. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/modules/http.ip_sources.edgeone.md b/docs/caddy/modules/http.ip_sources.edgeone.md new file mode 100644 index 0000000..db50a18 --- /dev/null +++ b/docs/caddy/modules/http.ip_sources.edgeone.md @@ -0,0 +1,48 @@ +Title: Module http.ip_sources.edgeone - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.ip_sources.edgeone + +Markdown Content: +http.ip_sources.edgeone provides a range of IP address prefixes (CIDRs) retrieved from EdgeOne. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#interval)interval +Interval controls how often the IP lists are refreshed. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#timeout)timeout +Timeout controls the maximum duration for each HTTP fetch. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#urls)urls +URLs is a list of endpoints to fetch CIDR lists from. Each endpoint should return one CIDR per line, or a text body containing CIDRs parseable by caddyhttp.CIDRExpressionToPrefix. Empty or commented lines (#) are ignored. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#version)version +Version filters the IP address type: "v4" or "v6" (optional). + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#area)area +Area filters the region: "global", "mainland-china", or "overseas" (optional). + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#max_retries)max_retries +Retry and backoff settings (optional; sensible defaults applied). + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#backoff_initial)backoff_initial +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#backoff_max)backoff_max +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#jitter)jitter +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#respect_retry_after)respect_retry_after +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#persist_path)persist_path +Persistence options: by default, the plugin persists cache to disk so that ETag/Last-Modified and the last good snapshot survive restarts. If empty, defaults to a file in Caddy's app data directory. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.edgeone#persist_ttl)persist_ttl +Optional TTL for using persisted snapshot. If set, and the snapshot is older than this duration at startup, ranges will not be loaded from disk (validators may still be used). Default: disabled. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/modules/http.ip_sources.gcp_cloudcdn.md b/docs/caddy/modules/http.ip_sources.gcp_cloudcdn.md new file mode 100644 index 0000000..07858e1 --- /dev/null +++ b/docs/caddy/modules/http.ip_sources.gcp_cloudcdn.md @@ -0,0 +1,47 @@ +Title: Module http.ip_sources.gcp_cloudcdn - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.ip_sources.gcp_cloudcdn + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.ip_sources.gcp_cloudcdn**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.gcp_cloudcdn#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +Field List +---------- + +`{▾ "interval": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/xcaddyplugins/caddy-trusted-gcp-cloudcdn](https://github.com/xcaddyplugins/caddy-trusted-gcp-cloudcdn)** + +**Custom builds:**`xcaddy build --with github.com/xcaddyplugins/caddy-trusted-gcp-cloudcdn` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.gcp_cloudcdn#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.gcp_cloudcdn#interval)interval +Interval to update the trusted proxies list. default: 1d + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/modules/http.ip_sources.list.md b/docs/caddy/modules/http.ip_sources.list.md new file mode 100644 index 0000000..d133d54 --- /dev/null +++ b/docs/caddy/modules/http.ip_sources.list.md @@ -0,0 +1,139 @@ +Title: Module http.ip_sources.list - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.ip_sources.list + +Markdown Content: +Module http.ip_sources.list - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.ip_sources.list +=========================== + + There is more than one module named **Module http.ip_sources.list**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.list#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/monobilisim/caddy-ip-list + +`{▾ "url": [""], "interval": 0, "timeout": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/monobilisim/caddy-ip-list](https://github.com/monobilisim/caddy-ip-list)** + +**Custom builds:**`xcaddy build --with github.com/monobilisim/caddy-ip-list` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.list#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.ip_sources.list provides a range of IP address prefixes (CIDRs) retrieved from url. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.list#url)url +List of URLs to fetch the IP ranges from. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.list#interval)interval +refresh Interval + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.list#timeout)timeout +request Timeout + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.ip_sources.static.md b/docs/caddy/modules/http.ip_sources.static.md new file mode 100644 index 0000000..fa968ec --- /dev/null +++ b/docs/caddy/modules/http.ip_sources.static.md @@ -0,0 +1,41 @@ +Title: Module http.ip_sources.static - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.ip_sources.static + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.ip_sources.static**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.static#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾ "ranges": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.ip_sources.static#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.ip_sources.static provides a static range of IP address prefixes (CIDRs). + +[🔗](https://caddyserver.com/docs/modules/http.ip_sources.static#ranges)ranges +A static list of IP ranges (supports CIDR notation). diff --git a/docs/caddy/modules/http.matchers.client_asn.md b/docs/caddy/modules/http.matchers.client_asn.md new file mode 100644 index 0000000..b26ae0e --- /dev/null +++ b/docs/caddy/modules/http.matchers.client_asn.md @@ -0,0 +1,152 @@ +Title: Module http.matchers.client_asn - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.client_asn + +Markdown Content: +Module http.matchers.client_asn - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.matchers.client_asn +=============================== + + There is more than one module named **Module http.matchers.client_asn**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.client_asn#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸git.gorbe.io/caddy/geoip.git + +`{▾ "numbers": [0]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://git.gorbe.io/caddy/geoip.git](https://git.gorbe.io/caddy/geoip.git)** + +**Custom builds:**`xcaddy build --with git.gorbe.io/caddy/geoip` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.client_asn#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.matchers.client_asn matches requests by the client_ip GeoIP ASN. + +Caddyfile syntax: + +``` +@asn-matcher client_asn "24940" +respond @asn-matcher "Hetzner Online GmbH" +``` + +Logging +======= + +To ERROR level when failed to parse client IP: + +`{"level":"error", ... ,"logger":"http.matchers.client_asn","msg":"Failed to parse client IP","client_ip":"...","error":"..."}` +To ERROR when failed to get ASN for client IP: + +`{"level":"error", ... ,"logger":"http.matchers.client_asn","msg":"Failed to get ASN for client IP","client_ip":"...","error":"..."}` +To WARN level when there is no data for the client IP: + +`{"level":"warn", ... ,"logger":"http.matchers.client_asn","msg":"No data for client IP","client_ip":"..."}` +To INFO level when request matched: + +`{"level":"info", ... ,"logger":"http.matchers.client_asn","msg":"Request matched","client_ip":"...", "asn": "..."}` + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.matchers.client_asn#numbers)numbers +Autonomous System Numbers to match with. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.matchers.client_country.md b/docs/caddy/modules/http.matchers.client_country.md new file mode 100644 index 0000000..0abc566 --- /dev/null +++ b/docs/caddy/modules/http.matchers.client_country.md @@ -0,0 +1,152 @@ +Title: Module http.matchers.client_country - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.client_country + +Markdown Content: +Module http.matchers.client_country - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.matchers.client_country +=================================== + + There is more than one module named **Module http.matchers.client_country**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.client_country#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸git.gorbe.io/caddy/geoip.git + +`{▾ "countries": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://git.gorbe.io/caddy/geoip.git](https://git.gorbe.io/caddy/geoip.git)** + +**Custom builds:**`xcaddy build --with git.gorbe.io/caddy/geoip` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.client_country#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +http.matchers.client_country matches requests by the client_ip GeoIP Country. + +Caddyfile syntax: + +``` +@country-matcher client_country "HU" "DE" +respond @country-matcher "Country matcher" +``` + +Logging +======= + +To ERROR level when failed to parse client IP: + +`{"level":"error", ... ,"logger":"http.matchers.client_country","msg":"Failed to parse client IP","client_ip":"...","error":"..."}` +To ERROR when failed to get Country for client IP: + +`{"level":"error", ... ,"logger":"http.matchers.client_country","msg":"Failed to get Country for client IP","client_ip":"...","error":"..."}` +To WARN level when there is no data for the client IP: + +`{"level":"warn", ... ,"logger":"http.matchers.client_country","msg":"No data for client IP","client_ip":"..."}` +To INFO level when request matched: + +`{"level":"info", ... ,"logger":"http.matchers.client_country","msg":"Request matched","client_ip":"...", "country": "..."}` + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.matchers.client_country#countries)countries +Two-character ISO 3166-1 alpha-2 country codes to match with. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.matchers.client_ip.md b/docs/caddy/modules/http.matchers.client_ip.md new file mode 100644 index 0000000..c7fc825 --- /dev/null +++ b/docs/caddy/modules/http.matchers.client_ip.md @@ -0,0 +1,41 @@ +Title: Module http.matchers.client_ip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.client_ip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.client_ip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.client_ip#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "ranges": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.client_ip#docs "Direct link") +------------------------------------------------------------------------------------------------ + +http.matchers.client_ip matches requests by the client IP address, i.e. the resolved address, considering trusted proxies. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.client_ip#ranges)ranges +The IPs or CIDR ranges to match. diff --git a/docs/caddy/modules/http.matchers.conneg.md b/docs/caddy/modules/http.matchers.conneg.md new file mode 100644 index 0000000..dd462ba --- /dev/null +++ b/docs/caddy/modules/http.matchers.conneg.md @@ -0,0 +1,82 @@ +Title: Module http.matchers.conneg - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.conneg + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.conneg**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "match_types": [""], "match_languages": [""], "match_charsets": [""], "match_encodings": [""], "force_type_query_string": "", "force_language_query_string": "", "force_charset_query_string": "", "force_encoding_query_string": "", "var_type": "", "var_language": "", "var_charset": "", "var_encoding": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mpilhlt/caddy-conneg](https://github.com/mpilhlt/caddy-conneg)** + +**Custom builds:**`xcaddy build --with github.com/mpilhlt/caddy-conneg` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.matchers.conneg matches requests by comparing results of a content negotiation process to a (list of) value(s). + +Lists of media types, languages, charsets, and encodings to match the request against can be given - and at least one of them MUST be specified. + +OPTIONAL parameters are strings for identifying URL query string parameter keys that allow requests to override/skip the connection negotiation process and force a media type, a language, a charset or an encoding. + +Some shorthand values for query string parameters translating to full media types (languages, encodings, etc.) are hardcoded in a variable called `aliases`: They presently cover `htm` and `html` for `text/html`, `rdf` for `application/rdf+xml`, `tei` and `xml` for `application/tei+xml`, and `pdf` for `application/pdf`. For instance, if `force_type_query_string` is set to `format`, a request uri ending in `foo.com?format=tei` will result in content type `application/tei+xml` and then succeed or not based on whether that content type is listed in `match_types`. + +COMPATIBILITY NOTE: This module is still experimental and is not subject to Caddy's compatibility guarantee. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#match_types)match_types +List of content/mime types to match against ([IETF RFC 7231, section 5.3.2](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.2)). Default: Empty list + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#match_languages)match_languages +List of language codes to match against ([IETF RFC 7231, section 5.3.5](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.5)). Default: Empty list + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#match_charsets)match_charsets +List of character sets to match against ([IETF RFC 7231, section 5.3.3](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.3)). Default: Empty list + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#match_encodings)match_encodings +List of encodings to match against ([IETF RFC 7231, section 5.3.4](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.4)). Default: Empty list + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#force_type_query_string)force_type_query_string +Query string parameter key to override content negotiation. Default: "" + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#force_language_query_string)force_language_query_string +Query string parameter key to override language negotiation. Default: "" + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#force_charset_query_string)force_charset_query_string +Query string parameter key to override charset negotiation. Default: "" + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#force_encoding_query_string)force_encoding_query_string +Query string parameter key to override encoding negotiation. Default: "" + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#var_type)var_type +Variable name (will be prefixed with `conneg_`) to hold result of content negotiation. Default: "" + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#var_language)var_language +Variable name (will be prefixed with `conneg_`) to hold result of language negotiation. Default: "" + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#var_charset)var_charset +Variable name (will be prefixed with `conneg_`) to hold result of charset negotiation. Default: "" + +[🔗](https://caddyserver.com/docs/modules/http.matchers.conneg#var_encoding)var_encoding +Variable name (will be prefixed with `conneg_`) to hold result of encoding negotiation. Default: "" diff --git a/docs/caddy/modules/http.matchers.crawler.md b/docs/caddy/modules/http.matchers.crawler.md new file mode 100644 index 0000000..b878484 --- /dev/null +++ b/docs/caddy/modules/http.matchers.crawler.md @@ -0,0 +1,45 @@ +Title: Module http.matchers.crawler - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.crawler + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.crawler**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.crawler#docs "Direct link") +---------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://git.gorbe.io/caddy/crawler.git](https://git.gorbe.io/caddy/crawler.git)** + +**Custom builds:**`xcaddy build --with git.gorbe.io/caddy/crawler` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.crawler#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.matchers.crawler is a HTTP request matcher to detect crawlers. It allows you to detect known crawlers/spiders/bots via the `User-Agent`. + +Caddyfile syntax: + +``` +@is-crawler crawler +abort @is-crawler +``` diff --git a/docs/caddy/modules/http.matchers.cron.md b/docs/caddy/modules/http.matchers.cron.md new file mode 100644 index 0000000..fb55ca8 --- /dev/null +++ b/docs/caddy/modules/http.matchers.cron.md @@ -0,0 +1,44 @@ +Title: Module http.matchers.cron - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.cron + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.cron**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.cron#docs "Direct link") +------------------------------------------------------------------------------------------- + +`{▾ "enable_at": [""], "disable_at": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/steffenbusch/caddy-cron-matcher](https://github.com/steffenbusch/caddy-cron-matcher)** + +**Custom builds:**`xcaddy build --with github.com/steffenbusch/caddy-cron-matcher` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.cron#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.matchers.cron matches requests based on multiple sets of cron expressions. It allows you to define multiple time windows during which requests should be matched. The matcher becomes active after any of the time windows specified by EnableAt and inactive after any corresponding DisableAt. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.cron#enable_at)enable_at +EnableAt is a slice of cron expressions specifying when the matcher should start matching. Each entry in the slice corresponds to a matching time window. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.cron#disable_at)disable_at +DisableAt is a slice of cron expressions specifying when the matcher should stop matching. Each entry in the slice must correspond to an entry in EnableAt. diff --git a/docs/caddy/modules/http.matchers.dynamic_client_ip.md b/docs/caddy/modules/http.matchers.dynamic_client_ip.md new file mode 100644 index 0000000..6ab781f --- /dev/null +++ b/docs/caddy/modules/http.matchers.dynamic_client_ip.md @@ -0,0 +1,41 @@ +Title: Module http.matchers.dynamic_client_ip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.dynamic_client_ip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +`{▾ "providers": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/tuzzmaniandevil/caddy-dynamic-clientip](https://github.com/tuzzmaniandevil/caddy-dynamic-clientip)** + +**Custom builds:**`xcaddy build --with github.com/tuzzmaniandevil/caddy-dynamic-clientip` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +http.matchers.dynamic_client_ip matchers the requests by the client IP address. The IP ranges are provided by modules to allow for dynamic ranges. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip#providers)providers +A module which provides a source of IP ranges, from which requests are matched. diff --git a/docs/caddy/modules/http.matchers.dynamic_remote_ip.md b/docs/caddy/modules/http.matchers.dynamic_remote_ip.md new file mode 100644 index 0000000..706542d --- /dev/null +++ b/docs/caddy/modules/http.matchers.dynamic_remote_ip.md @@ -0,0 +1,41 @@ +Title: Module http.matchers.dynamic_remote_ip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.dynamic_remote_ip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +`{▾ "providers": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/lanrat/caddy-dynamic-remoteip](https://github.com/lanrat/caddy-dynamic-remoteip)** + +**Custom builds:**`xcaddy build --with github.com/lanrat/caddy-dynamic-remoteip` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +http.matchers.dynamic_remote_ip matchers the requests by the remote IP address. The IP ranges are provided by modules to allow for dynamic ranges. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip#providers)providers +A module which provides a source of IP ranges, from which requests are matched. diff --git a/docs/caddy/modules/http.matchers.exec_noop.md b/docs/caddy/modules/http.matchers.exec_noop.md new file mode 100644 index 0000000..e9b1cef --- /dev/null +++ b/docs/caddy/modules/http.matchers.exec_noop.md @@ -0,0 +1,41 @@ +Title: Module http.matchers.exec_noop - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.exec_noop + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.exec_noop**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.exec_noop#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "label": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/abiosoft/caddy-exec](https://github.com/abiosoft/caddy-exec)** + +**Custom builds:**`xcaddy build --with github.com/abiosoft/caddy-exec` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.exec_noop#docs "Direct link") +------------------------------------------------------------------------------------------------ + +http.matchers.exec_noop is a matcher that blocks all requests. It's primary purpose is to ensure the command is not executed when no route/matcher is specified. Limitation of Caddyfile config. JSON/API config do not need this. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.exec_noop#label)label +There are no docs for this property. diff --git a/docs/caddy/modules/http.matchers.execnopmatch.md b/docs/caddy/modules/http.matchers.execnopmatch.md new file mode 100644 index 0000000..dbb9153 --- /dev/null +++ b/docs/caddy/modules/http.matchers.execnopmatch.md @@ -0,0 +1,41 @@ +Title: Module http.matchers.execnopmatch - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.execnopmatch + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.execnopmatch**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.execnopmatch#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +`{▾ "label": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/abiosoft/caddy-exec](https://github.com/abiosoft/caddy-exec)** + +**Custom builds:**`xcaddy build --with github.com/abiosoft/caddy-exec` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.execnopmatch#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +http.matchers.execnopmatch is a matcher that blocks all request. It's primary purpose is to ensure the command is not executed when no route/matcher is specified. Limitation of Caddyfile config. JSON/API config do not need this. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.execnopmatch#label)label +There are no docs for this property. diff --git a/docs/caddy/modules/http.matchers.expression.md b/docs/caddy/modules/http.matchers.expression.md new file mode 100644 index 0000000..a0ed4fe --- /dev/null +++ b/docs/caddy/modules/http.matchers.expression.md @@ -0,0 +1,48 @@ +Title: Module http.matchers.expression - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.expression + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.expression**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.expression#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "expr": "", "name": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.expression#docs "Direct link") +------------------------------------------------------------------------------------------------- + +http.matchers.expression matches requests by evaluating a [CEL](https://github.com/google/cel-spec) expression. This enables complex logic to be expressed using a comfortable, familiar syntax. Please refer to [the standard definitions of CEL functions and operators](https://github.com/google/cel-spec/blob/master/doc/langdef.md#standard-definitions). + +This matcher's JSON interface is actually a string, not a struct. The generated docs are not correct because this type has custom marshaling logic. + +COMPATIBILITY NOTE: This module is still experimental and is not subject to Caddy's compatibility guarantee. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.expression#expr)expr +The CEL expression to evaluate. Any Caddy placeholders will be expanded and situated into proper CEL function calls before evaluating. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.expression#name)name +Name is an optional name for this matcher. This is used to populate the name for regexp matchers that appear in the expression. diff --git a/docs/caddy/modules/http.matchers.fail2ban.md b/docs/caddy/modules/http.matchers.fail2ban.md new file mode 100644 index 0000000..0f8cb08 --- /dev/null +++ b/docs/caddy/modules/http.matchers.fail2ban.md @@ -0,0 +1,150 @@ +Title: Module http.matchers.fail2ban - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.fail2ban + +Markdown Content: +Module http.matchers.fail2ban - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.matchers.fail2ban +============================= + + There is more than one module named **http.matchers.fail2ban**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.fail2ban#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/Javex/caddy-fail2ban + +`{▾ "banfile": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/Javex/caddy-fail2ban](https://github.com/Javex/caddy-fail2ban)** + +**Custom builds:**`xcaddy build --with github.com/Javex/caddy-fail2ban` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.fail2ban#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.matchers.fail2ban implements an HTTP handler that checks a specified file for banned IPs and matches if they are found + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.matchers.fail2ban#banfile)banfile +There are no docs for this property. + +▸github.com/chris-swift-dev/caddy-fail2ban + +`{▾ "banfile": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/chris-swift-dev/caddy-fail2ban](https://github.com/chris-swift-dev/caddy-fail2ban)** + +**Custom builds:**`xcaddy build --with github.com/chris-swift-dev/caddy-fail2ban` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.fail2ban#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.matchers.fail2ban implements an HTTP handler that checks a specified file for banned IPs and matches if they are found + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.matchers.fail2ban#banfile)banfile +There are no docs for this property. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.matchers.file.md b/docs/caddy/modules/http.matchers.file.md new file mode 100644 index 0000000..2dcd350 --- /dev/null +++ b/docs/caddy/modules/http.matchers.file.md @@ -0,0 +1,158 @@ +Title: Module http.matchers.file - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.file + +Markdown Content: +Module http.matchers.file - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.matchers.file +========================= + + There is more than one module named **Module http.matchers.file**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.file#docs "Direct link") +------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "fs": "", "root": "", "try_files": [""], "try_policy": "", "split_path": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.file#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.matchers.file is an HTTP request matcher that can match requests based upon file existence. + +Upon matching, three new placeholders will be made available: + +* `{http.matchers.file.relative}` The root-relative path of the file. This is often useful when rewriting requests. +* `{http.matchers.file.absolute}` The absolute path of the matched file. +* `{http.matchers.file.type}` Set to "directory" if the matched file is a directory, "file" otherwise. +* `{http.matchers.file.remainder}` Set to the remainder of the path if the path was split by `split_path`. + +Even though file matching may depend on the OS path separator, the placeholder values always use /. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.matchers.file#fs)fs +The file system implementation to use. By default, the local disk file system will be used. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.file#root)root +The root directory, used for creating absolute file paths, and required when working with relative paths; if not specified, `{http.vars.root}` will be used, if set; otherwise, the current directory is assumed. Accepts placeholders. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.file#try_files)try_files +The list of files to try. Each path here is considered related to Root. If nil, the request URL's path will be assumed. Files and directories are treated distinctly, so to match a directory, the filepath MUST end in a forward slash `/`. To match a regular file, there must be no trailing slash. Accepts placeholders. If the policy is "first_exist", then an error may be triggered as a fallback by configuring "=" followed by a status code number, for example "=404". + +[🔗](https://caddyserver.com/docs/modules/http.matchers.file#try_policy)try_policy +How to choose a file in TryFiles. Can be: + +* first_exist +* first_exist_fallback +* smallest_size +* largest_size +* most_recently_modified + +Default is first_exist. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.file#split_path)split_path +A list of delimiters to use to split the path in two when trying files. If empty, no splitting will occur, and the path will be tried as-is. For each split value, the left-hand side of the split, including the split value, will be the path tried. For example, the path `/remote.php/dav/` using the split value `.php` would try the file `/remote.php`. Each delimiter must appear at the end of a URI path component in order to be used as a split delimiter. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.matchers.geocity.md b/docs/caddy/modules/http.matchers.geocity.md new file mode 100644 index 0000000..13d526a --- /dev/null +++ b/docs/caddy/modules/http.matchers.geocity.md @@ -0,0 +1,149 @@ +Title: Module http.matchers.geocity - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.geocity + +Markdown Content: +Module http.matchers.geocity - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.matchers.geocity +============================ + + There is more than one module named **Module http.matchers.geocity**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.geocity#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/ysicing/caddy2-geocn + +`{▾ "interval": 0, "timeout": 0, "remote_file": "", "local_file": "", "provinces": [""], "cities": [""], "mode": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ysicing/caddy2-geocn](https://github.com/ysicing/caddy2-geocn)** + +**Custom builds:**`xcaddy build --with github.com/ysicing/caddy2-geocn` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.geocity#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocity#interval)interval +刷新间隔 + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocity#timeout)timeout +请求超时 + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocity#remote_file)remote_file +ip2region 远程文件地址 + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocity#local_file)local_file +ip2region 本地文件路径 + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocity#provinces)provinces +省份列表(根据mode决定是允许还是拒绝) + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocity#cities)cities +城市列表(根据mode决定是允许还是拒绝) + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocity#mode)mode +匹配模式:allow(白名单)或 deny(黑名单) + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.matchers.geocn.md b/docs/caddy/modules/http.matchers.geocn.md new file mode 100644 index 0000000..c7bcbaf --- /dev/null +++ b/docs/caddy/modules/http.matchers.geocn.md @@ -0,0 +1,140 @@ +Title: Module http.matchers.geocn - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.geocn + +Markdown Content: +Module http.matchers.geocn - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.matchers.geocn +========================== + + There is more than one module named **Module http.matchers.geocn**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.geocn#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/ysicing/caddy2-geocn + +`{▾ "interval": 0, "timeout": 0, "georemote": "", "geolocal": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/ysicing/caddy2-geocn](https://github.com/ysicing/caddy2-geocn)** + +**Custom builds:**`xcaddy build --with github.com/ysicing/caddy2-geocn` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.geocn#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocn#interval)interval +refresh Interval + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocn#timeout)timeout +request Timeout + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocn#georemote)georemote +GeoIP2-CN remotefile + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geocn#geolocal)geolocal +GeoIP2-CN localfile + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.matchers.geoip_asn.md b/docs/caddy/modules/http.matchers.geoip_asn.md new file mode 100644 index 0000000..ce1b61f --- /dev/null +++ b/docs/caddy/modules/http.matchers.geoip_asn.md @@ -0,0 +1,48 @@ +Title: Module http.matchers.geoip_asn - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.geoip_asn + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.geoip_asn**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.geoip_asn#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "numbers": [0]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://git.gorbe.io/caddy/geoip.git](https://git.gorbe.io/caddy/geoip.git)** + +**Custom builds:**`xcaddy build --with git.gorbe.io/caddy/geoip` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.geoip_asn#docs "Direct link") +------------------------------------------------------------------------------------------------ + +http.matchers.geoip_asn matches requests by the client_ip GeoIP ASN. + +Caddyfile syntax: + +``` +@asn-matcher geoip_asn "24940" +respond @asn-matcher "Hetzner Online GmbH" +``` + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geoip_asn#numbers)numbers +Autonomous System Numbers to match with. diff --git a/docs/caddy/modules/http.matchers.geoip_country.md b/docs/caddy/modules/http.matchers.geoip_country.md new file mode 100644 index 0000000..e7e3a8e --- /dev/null +++ b/docs/caddy/modules/http.matchers.geoip_country.md @@ -0,0 +1,48 @@ +Title: Module http.matchers.geoip_country - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.geoip_country + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.geoip_country**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.geoip_country#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾ "countries": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://git.gorbe.io/caddy/geoip.git](https://git.gorbe.io/caddy/geoip.git)** + +**Custom builds:**`xcaddy build --with git.gorbe.io/caddy/geoip` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.geoip_country#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +http.matchers.geoip_country matches requests by the client_ip GeoIP Country. + +Caddyfile syntax: + +``` +@country-matcher geoip_country "HU" "DE" +respond @country-mathers "Country matcher" +``` + +[🔗](https://caddyserver.com/docs/modules/http.matchers.geoip_country#countries)countries +Two-character ISO 3166-1 alpha-2 country codes to match with. diff --git a/docs/caddy/modules/http.matchers.header.md b/docs/caddy/modules/http.matchers.header.md new file mode 100644 index 0000000..8c42bef --- /dev/null +++ b/docs/caddy/modules/http.matchers.header.md @@ -0,0 +1,44 @@ +Title: Module http.matchers.header - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.header + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.header**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.header#docs "Direct link") +--------------------------------------------------------------------------------------------- + +``` +{ + "": [""] +} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.header#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.matchers.header matches requests by header fields. The key is the field name and the array is the list of field values. It performs fast, exact string comparisons of the field values. Fast prefix, suffix, and substring matches can also be done by suffixing, prefixing, or surrounding the value with the wildcard `*` character, respectively. If a list is null, the header must not exist. If the list is empty, the field must simply exist, regardless of its value. + +**NOTE:** Notice that header values are arrays, not singular values. This is because repeated fields are valid in headers, and each one may have a different value. This matcher will match for a field if any one of its configured values matches in the header. Backend applications relying on headers MUST take into consideration that header field values are arrays and can have multiple values. diff --git a/docs/caddy/modules/http.matchers.header_regexp.md b/docs/caddy/modules/http.matchers.header_regexp.md new file mode 100644 index 0000000..a530863 --- /dev/null +++ b/docs/caddy/modules/http.matchers.header_regexp.md @@ -0,0 +1,50 @@ +Title: Module http.matchers.header_regexp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.header_regexp + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.header_regexp**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.header_regexp#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +``` +{ + "": {▾ "name": "", "pattern": "" } +} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.header_regexp#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +http.matchers.header_regexp matches requests by a regular expression on header fields. + +Upon a match, it adds placeholders to the request: `{http.regexp.name.capture_group}` where `name` is the regular expression's name, and `capture_group` is either the named or positional capture group from the expression itself. If no name is given, then the placeholder omits the name: `{http.regexp.capture_group}` (potentially leading to collisions). + +[🔗](https://caddyserver.com/docs/modules/http.matchers.header_regexp#name)name +A unique name for this regular expression. Optional, but useful to prevent overwriting captures from other regexp matchers. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.header_regexp#pattern)pattern +The regular expression to evaluate, in RE2 syntax, which is the same general syntax used by Go, Perl, and Python. For details, see [Go's regexp package](https://golang.org/pkg/regexp/). Captures are accessible via placeholders. Unnamed capture groups are exposed as their numeric, 1-based index, while named capture groups are available by the capture group name. diff --git a/docs/caddy/modules/http.matchers.host.md b/docs/caddy/modules/http.matchers.host.md new file mode 100644 index 0000000..3aeec1b --- /dev/null +++ b/docs/caddy/modules/http.matchers.host.md @@ -0,0 +1,48 @@ +Title: Module http.matchers.host - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.host + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.host**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.host#docs "Direct link") +------------------------------------------------------------------------------------------- + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.host#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.matchers.host matches requests by the Host value (case-insensitive). + +When used in a top-level HTTP route, [qualifying domain names](https://caddyserver.com/docs/automatic-https#hostname-requirements) may trigger [automatic HTTPS](https://caddyserver.com/docs/automatic-https), which automatically provisions and renews certificates for you. Before doing this, you should ensure that DNS records for these domains are properly configured, especially A/AAAA pointed at your server. + +Automatic HTTPS can be [customized or disabled](https://caddyserver.com/docs/modules/http#servers/automatic_https). + +Wildcards (`*`) may be used to represent exactly one label of the hostname, in accordance with RFC 1034 (because host matchers are also used for automatic HTTPS which influences TLS certificates). Thus, a host of `*` matches hosts like `localhost` or `internal` but not `example.com`. To catch all hosts, omit the host matcher entirely. + +The wildcard can be useful for matching all subdomains, for example: `*.example.com` matches `foo.example.com` but not `foo.bar.example.com`. + +Duplicate entries will return an error. diff --git a/docs/caddy/modules/http.matchers.maxmind_geolocation.md b/docs/caddy/modules/http.matchers.maxmind_geolocation.md new file mode 100644 index 0000000..8bc492a --- /dev/null +++ b/docs/caddy/modules/http.matchers.maxmind_geolocation.md @@ -0,0 +1,147 @@ +Title: Module http.matchers.maxmind_geolocation - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation + +Markdown Content: +Module http.matchers.maxmind_geolocation - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.matchers.maxmind_geolocation +======================================== + + There is more than one module named **Module http.matchers.maxmind_geolocation**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/porech/caddy-maxmind-geolocation + +`{▾ "db_path": "", "allow_countries": [""], "deny_countries": [""], "allow_subdivisions": [""], "deny_subdivisions": [""], "allow_metro_codes": [""], "deny_metro_codes": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/porech/caddy-maxmind-geolocation](https://github.com/porech/caddy-maxmind-geolocation)** + +**Custom builds:**`xcaddy build --with github.com/porech/caddy-maxmind-geolocation` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +Allows to filter requests based on source IP country. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation#db_path)db_path +The path of the MaxMind GeoLite2-Country.mmdb file. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation#allow_countries)allow_countries +A list of countries that the filter will allow. If you specify this, you should not specify DenyCountries. If both are specified, DenyCountries will take precedence. All countries that are not in this list will be denied. You can specify the special value "UNK" to match unrecognized countries. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation#deny_countries)deny_countries +A list of countries that the filter will deny. If you specify this, you should not specify AllowCountries. If both are specified, DenyCountries will take precedence. All countries that are not in this list will be allowed. You can specify the special value "UNK" to match unrecognized countries. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation#allow_subdivisions)allow_subdivisions +A list of subdivisions that the filter will allow. If you specify this, you should not specify DenySubdivisions. If both are specified, DenySubdivisions will take precedence. All subdivisions that are not in this list will be denied. You can specify the special value "UNK" to match unrecognized subdivisions. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation#deny_subdivisions)deny_subdivisions +A list of subdivisions that the filter will deny. If you specify this, you should not specify AllowSubdivisions. If both are specified, DenySubdivisions will take precedence. All subdivisions that are not in this list will be allowed. You can specify the special value "UNK" to match unrecognized subdivisions. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation#allow_metro_codes)allow_metro_codes +A list of metro codes that the filter will allow. If you specify this, you should not specify DenyMetroCodes. If both are specified, DenyMetroCodes will take precedence. All metro codes that are not in this list will be denied. You can specify the special value "UNK" to match unrecognized metro codes. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation#deny_metro_codes)deny_metro_codes +A list of METRO CODES that the filter will deny. If you specify this, you should not specify AllowMetroCodes. If both are specified, DenyMetroCodes will take precedence. All metro codes that are not in this list will be allowed. You can specify the special value "UNK" to match unrecognized metro codes. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.matchers.method.md b/docs/caddy/modules/http.matchers.method.md new file mode 100644 index 0000000..5919dba --- /dev/null +++ b/docs/caddy/modules/http.matchers.method.md @@ -0,0 +1,126 @@ +Title: Module http.matchers.method - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.method + +Markdown Content: +Module http.matchers.method - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.matchers.method +=========================== + + There is more than one module named **Module http.matchers.method**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.method#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.method#docs "Direct link") +--------------------------------------------------------------------------------------------- + +http.matchers.method matches requests by the method. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.matchers.not.md b/docs/caddy/modules/http.matchers.not.md new file mode 100644 index 0000000..fe0c6c7 --- /dev/null +++ b/docs/caddy/modules/http.matchers.not.md @@ -0,0 +1,49 @@ +Title: Module http.matchers.not - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.not + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.not**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.not#docs "Direct link") +------------------------------------------------------------------------------------------ + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.not#docs "Direct link") +------------------------------------------------------------------------------------------ + +http.matchers.not matches requests by negating the results of its matcher sets. A single "not" matcher takes one or more matcher sets. Each matcher set is OR'ed; in other words, if any matcher set returns true, the final result of the "not" matcher is false. Individual matchers within a set work the same (i.e. different matchers in the same set are AND'ed). + +NOTE: The generated docs which describe the structure of this module are wrong because of how this type unmarshals JSON in a custom way. The correct structure is: + +``` +[ + {}, + {} +] +``` + +where each of the array elements is a matcher set, i.e. an object keyed by matcher name. diff --git a/docs/caddy/modules/http.matchers.path.md b/docs/caddy/modules/http.matchers.path.md new file mode 100644 index 0000000..f75ec02 --- /dev/null +++ b/docs/caddy/modules/http.matchers.path.md @@ -0,0 +1,143 @@ +Title: Module http.matchers.path - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.path + +Markdown Content: +Module http.matchers.path - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.matchers.path +========================= + + There is more than one module named **Module http.matchers.path**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.path#docs "Direct link") +------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.path#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.matchers.path case-insensitively matches requests by the URI's path. Path matching is exact, not prefix-based, giving you more control and clarity over matching. Wildcards (`*`) may be used: + +* At the end only, for a prefix match (`/prefix/*`) +* At the beginning only, for a suffix match (`*.suffix`) +* On both sides only, for a substring match (`*/contains/*`) +* In the middle, for a globular match (`/accounts/*/info`) + +Slashes are significant; i.e. `/foo*` matches `/foo`, `/foo/`, `/foo/bar`, and `/foobar`; but `/foo/*` does not match `/foo` or `/foobar`. Valid paths start with a slash `/`. + +Because there are, in general, multiple possible escaped forms of any path, path matchers operate in unescaped space; that is, path matchers should be written in their unescaped form to prevent ambiguities and possible security issues, as all request paths will be normalized to their unescaped forms before matcher evaluation. + +However, escape sequences in a match pattern are supported; they are compared with the request's raw/escaped path for those bytes only. In other words, a matcher of `/foo%2Fbar` will match a request path of precisely `/foo%2Fbar`, but not `/foo/bar`. It follows that matching the literal percent sign (%) in normalized space can be done using the escaped form, `%25`. + +Even though wildcards (`*`) operate in the normalized space, the special escaped wildcard (`%*`), which is not a valid escape sequence, may be used in place of a span that should NOT be decoded; that is, `/bands/%*` will match `/bands/AC%2fDC` whereas `/bands/*` will not. + +Even though path matching is done in normalized space, the special wildcard `%*` may be used in place of a span that should NOT be decoded; that is, `/bands/%*/` will match `/bands/AC%2fDC/` whereas `/bands/*/` will not. + +This matcher is fast, so it does not support regular expressions or capture groups. For slower but more powerful matching, use the path_regexp matcher. (Note that due to the special treatment of escape sequences in matcher patterns, they may perform slightly slower in high-traffic environments.) + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.matchers.path_regexp.md b/docs/caddy/modules/http.matchers.path_regexp.md new file mode 100644 index 0000000..c75acb2 --- /dev/null +++ b/docs/caddy/modules/http.matchers.path_regexp.md @@ -0,0 +1,46 @@ +Title: Module http.matchers.path_regexp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.path_regexp + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.path_regexp**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.path_regexp#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "name": "", "pattern": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.path_regexp#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +http.matchers.path_regexp matches requests by a regular expression on the URI's path. Path matching is performed in the unescaped (decoded) form of the path. + +Upon a match, it adds placeholders to the request: `{http.regexp.name.capture_group}` where `name` is the regular expression's name, and `capture_group` is either the named or positional capture group from the expression itself. If no name is given, then the placeholder omits the name: `{http.regexp.capture_group}` (potentially leading to collisions). + +[🔗](https://caddyserver.com/docs/modules/http.matchers.path_regexp#name)name +A unique name for this regular expression. Optional, but useful to prevent overwriting captures from other regexp matchers. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.path_regexp#pattern)pattern +The regular expression to evaluate, in RE2 syntax, which is the same general syntax used by Go, Perl, and Python. For details, see [Go's regexp package](https://golang.org/pkg/regexp/). Captures are accessible via placeholders. Unnamed capture groups are exposed as their numeric, 1-based index, while named capture groups are available by the capture group name. diff --git a/docs/caddy/modules/http.matchers.protocol.md b/docs/caddy/modules/http.matchers.protocol.md new file mode 100644 index 0000000..dcc4f71 --- /dev/null +++ b/docs/caddy/modules/http.matchers.protocol.md @@ -0,0 +1,38 @@ +Title: Module http.matchers.protocol - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.protocol + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.protocol**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.protocol#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`""` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.protocol#docs "Direct link") +----------------------------------------------------------------------------------------------- + +http.matchers.protocol matches requests by protocol. Recognized values are "http", "https", and "grpc" for broad protocol matches, or specific HTTP versions can be specified like so: "http/1", "http/1.1", "http/2", "http/3", or minimum versions: "http/2+", etc. diff --git a/docs/caddy/modules/http.matchers.query.md b/docs/caddy/modules/http.matchers.query.md new file mode 100644 index 0000000..bf53ac7 --- /dev/null +++ b/docs/caddy/modules/http.matchers.query.md @@ -0,0 +1,56 @@ +Title: Module http.matchers.query - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.query + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.query**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.query#docs "Direct link") +-------------------------------------------------------------------------------------------- + +``` +{ + "": [""] +} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.query#docs "Direct link") +-------------------------------------------------------------------------------------------- + +http.matchers.query matches requests by the URI's query string. It takes a JSON object keyed by the query keys, with an array of string values to match for that key. Query key matches are exact, but wildcards may be used for value matches. Both keys and values may be placeholders. + +An example of the structure to match `?key=value&topic=api&query=something` is: + +``` +{ + "key": ["value"], + "topic": ["api"], + "query": ["*"] +} +``` + +Invalid query strings, including those with bad escapings or illegal characters like semicolons, will fail to parse and thus fail to match. + +**NOTE:** Notice that query string values are arrays, not singular values. This is because repeated keys are valid in query strings, and each one may have a different value. This matcher will match for a key if any one of its configured values is assigned in the query string. Backend applications relying on query strings MUST take into consideration that query string values are arrays and can have multiple values. diff --git a/docs/caddy/modules/http.matchers.remote_host.md b/docs/caddy/modules/http.matchers.remote_host.md new file mode 100644 index 0000000..e90e5fd --- /dev/null +++ b/docs/caddy/modules/http.matchers.remote_host.md @@ -0,0 +1,46 @@ +Title: Module http.matchers.remote_host - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.remote_host + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.remote_host**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.remote_host#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "hosts": [""], "forwarded": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/muety/caddy-remote-host](https://github.com/muety/caddy-remote-host)** + +**Custom builds:**`xcaddy build --with github.com/muety/caddy-remote-host` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.remote_host#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +http.matchers.remote_host matches based on the remote IP of the connection. A host name can be specified, whose A and AAAA DNS records will be resolved to a corresponding IP for matching. + +Note that IPs can sometimes be spoofed, so do not rely on this as a replacement for actual authentication. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.remote_host#hosts)hosts +Host names, whose corresponding IPs to match against + +[🔗](https://caddyserver.com/docs/modules/http.matchers.remote_host#forwarded)forwarded +If true, prefer the first IP in the request's X-Forwarded-For header, if present, rather than the immediate peer's IP, as the reference IP against which to match. Note that it is easy to spoof request headers. Default: false diff --git a/docs/caddy/modules/http.matchers.remote_ip.md b/docs/caddy/modules/http.matchers.remote_ip.md new file mode 100644 index 0000000..fec078b --- /dev/null +++ b/docs/caddy/modules/http.matchers.remote_ip.md @@ -0,0 +1,41 @@ +Title: Module http.matchers.remote_ip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.remote_ip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.remote_ip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.remote_ip#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "ranges": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.remote_ip#docs "Direct link") +------------------------------------------------------------------------------------------------ + +http.matchers.remote_ip matches requests by the remote IP address, i.e. the IP address of the direct connection to Caddy. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.remote_ip#ranges)ranges +The IPs or CIDR ranges to match. diff --git a/docs/caddy/modules/http.matchers.signed.md b/docs/caddy/modules/http.matchers.signed.md new file mode 100644 index 0000000..09aded9 --- /dev/null +++ b/docs/caddy/modules/http.matchers.signed.md @@ -0,0 +1,39 @@ +Title: Module http.matchers.signed - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.signed + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.signed**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.signed#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "secret": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/anthemaker/caddy-signed-urls](https://github.com/anthemaker/caddy-signed-urls)** + +**Custom builds:**`xcaddy build --with github.com/anthemaker/caddy-signed-urls` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.signed#docs "Direct link") +--------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.matchers.signed#secret)secret +There are no docs for this property. diff --git a/docs/caddy/modules/http.matchers.tls.md b/docs/caddy/modules/http.matchers.tls.md new file mode 100644 index 0000000..850525d --- /dev/null +++ b/docs/caddy/modules/http.matchers.tls.md @@ -0,0 +1,41 @@ +Title: Module http.matchers.tls - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.tls + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.tls**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.tls#docs "Direct link") +------------------------------------------------------------------------------------------ + +`{▾ "handshake_complete": false}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.tls#docs "Direct link") +------------------------------------------------------------------------------------------ + +http.matchers.tls matches HTTP requests based on the underlying TLS connection state. If this matcher is specified but the request did not come over TLS, it will never match. If this matcher is specified but is empty and the request did come in over TLS, it will always match. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.tls#handshake_complete)handshake_complete +Matches if the TLS handshake has completed. QUIC 0-RTT early data may arrive before the handshake completes. Generally, it is unsafe to replay these requests if they are not idempotent; additionally, the remote IP of early data packets can more easily be spoofed. It is conventional to respond with HTTP 425 Too Early if the request cannot risk being processed in this state. diff --git a/docs/caddy/modules/http.matchers.vars.md b/docs/caddy/modules/http.matchers.vars.md new file mode 100644 index 0000000..cca19da --- /dev/null +++ b/docs/caddy/modules/http.matchers.vars.md @@ -0,0 +1,46 @@ +Title: Module http.matchers.vars - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.vars + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.vars**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.vars#docs "Direct link") +------------------------------------------------------------------------------------------- + +``` +{ + "": [""] +} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.vars#docs "Direct link") +------------------------------------------------------------------------------------------- + +http.matchers.vars is an HTTP request matcher which can match requests based on variables in the context or placeholder values. The key is the placeholder or name of the variable, and the values are possible values the variable can be in order to match (logical OR'ed). + +If the key is surrounded by `{ }` it is assumed to be a placeholder. Otherwise, it will be considered a variable name. + +Placeholders in the keys are not expanded, but placeholders in the values are. diff --git a/docs/caddy/modules/http.matchers.vars_regexp.md b/docs/caddy/modules/http.matchers.vars_regexp.md new file mode 100644 index 0000000..bf2a7f2 --- /dev/null +++ b/docs/caddy/modules/http.matchers.vars_regexp.md @@ -0,0 +1,50 @@ +Title: Module http.matchers.vars_regexp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.matchers.vars_regexp + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.matchers.vars_regexp**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.vars_regexp#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +``` +{ + "": {▾ "name": "", "pattern": "" } +} +``` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.matchers.vars_regexp#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +http.matchers.vars_regexp matches the value of the context variables by a given regular expression. + +Upon a match, it adds placeholders to the request: `{http.regexp.name.capture_group}` where `name` is the regular expression's name, and `capture_group` is either the named or positional capture group from the expression itself. If no name is given, then the placeholder omits the name: `{http.regexp.capture_group}` (potentially leading to collisions). + +[🔗](https://caddyserver.com/docs/modules/http.matchers.vars_regexp#name)name +A unique name for this regular expression. Optional, but useful to prevent overwriting captures from other regexp matchers. + +[🔗](https://caddyserver.com/docs/modules/http.matchers.vars_regexp#pattern)pattern +The regular expression to evaluate, in RE2 syntax, which is the same general syntax used by Go, Perl, and Python. For details, see [Go's regexp package](https://golang.org/pkg/regexp/). Captures are accessible via placeholders. Unnamed capture groups are exposed as their numeric, 1-based index, while named capture groups are available by the capture group name. diff --git a/docs/caddy/modules/http.md b/docs/caddy/modules/http.md new file mode 100644 index 0000000..9592d36 --- /dev/null +++ b/docs/caddy/modules/http.md @@ -0,0 +1,985 @@ +Title: Module http - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http + +Markdown Content: +[🔗](https://caddyserver.com/docs/modules/http#http_port)http_port +HTTPPort specifies the port to use for HTTP (as opposed to HTTPS), which is used when setting up HTTP->HTTPS redirects or ACME HTTP challenge solvers. Default: 80. + +[🔗](https://caddyserver.com/docs/modules/http#https_port)https_port +HTTPSPort specifies the port to use for HTTPS, which is used when solving the ACME TLS-ALPN challenges, or whenever HTTPS is needed but no specific port number is given. Default: 443. + +[🔗](https://caddyserver.com/docs/modules/http#grace_period)grace_period +GracePeriod is how long to wait for active connections when shutting down the servers. During the grace period, no new connections are accepted, idle connections are closed, and active connections will be given the full length of time to become idle and close. Once the grace period is over, connections will be forcefully closed. If zero, the grace period is eternal. Default: 0. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http#shutdown_delay)shutdown_delay +ShutdownDelay is how long to wait before initiating the grace period. When this app is stopping (e.g. during a config reload or process exit), all servers will be shut down. Normally this immediately initiates the grace period. However, if this delay is configured, servers will not be shut down until the delay is over. During this time, servers continue to function normally and allow new connections. At the end, the grace period will begin. This can be useful to allow downstream load balancers time to move this instance out of the rotation without hiccups. + +When shutdown has been scheduled, placeholders {http.shutting_down} (bool) and {http.time_until_shutdown} (duration) may be useful for health checks. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http#servers)servers +Servers is the list of servers, keyed by arbitrary names chosen at your discretion for your own convenience; the keys do not affect functionality. + +Server describes an HTTP server. + +[🔗](https://caddyserver.com/docs/modules/http#servers/listen)servers/listen +Socket addresses to which to bind listeners. Accepts [network addresses](https://caddyserver.com/docs/conventions#network-addresses) that may include port ranges. Listener addresses must be unique; they cannot be repeated across all defined servers. + +[🔗](https://caddyserver.com/docs/modules/http#servers/listener_wrappers)servers/listener_wrappers +A list of listener wrapper modules, which can modify the behavior of the base listener. They are applied in the given order. + +[🔗](https://caddyserver.com/docs/modules/http#servers/read_timeout)servers/read_timeout +How long to allow a read from a client's upload. Setting this to a short, non-zero value can mitigate slowloris attacks, but may also affect legitimately slow clients. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +ReadHeaderTimeout is like ReadTimeout but for request headers. Default is 1 minute. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http#servers/write_timeout)servers/write_timeout +WriteTimeout is how long to allow a write to a client. Note that setting this to a small value when serving large files may negatively affect legitimately slow clients. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http#servers/idle_timeout)servers/idle_timeout +IdleTimeout is the maximum time to wait for the next request when keep-alives are enabled. If zero, a default timeout of 5m is applied to help avoid resource exhaustion. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http#servers/keepalive_interval)servers/keepalive_interval +KeepAliveInterval is the interval at which TCP keepalive packets are sent to keep the connection alive at the TCP layer when no other data is being transmitted. The default is 15s. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +MaxHeaderBytes is the maximum size to parse from a client's HTTP request headers. + +[🔗](https://caddyserver.com/docs/modules/http#servers/enable_full_duplex)servers/enable_full_duplex +Enable full-duplex communication for HTTP/1 requests. Only has an effect if Caddy was built with Go 1.21 or later. + +For HTTP/1 requests, the Go HTTP server by default consumes any unread portion of the request body before beginning to write the response, preventing handlers from concurrently reading from the request and writing the response. Enabling this option disables this behavior and permits handlers to continue to read from the request while concurrently writing the response. + +For HTTP/2 requests, the Go HTTP server always permits concurrent reads and responses, so this option has no effect. + +Test thoroughly with your HTTP clients, as some older clients may not support full-duplex HTTP/1 which can cause them to deadlock. See [https://github.com/golang/go/issues/57786](https://github.com/golang/go/issues/57786) for more info. + +TODO: This is an EXPERIMENTAL feature. Subject to change or removal. + +[🔗](https://caddyserver.com/docs/modules/http#servers/routes)servers/routes +Routes describes how this server will handle requests. Routes are executed sequentially. First a route's matchers are evaluated, then its grouping. If it matches and has not been mutually-excluded by its grouping, then its handlers are executed sequentially. The sequence of invoked handlers comprises a compiled middleware chain that flows from each matching route and its handlers to the next. + +By default, all unrouted requests receive a 200 OK response to indicate the server is working. + +Route consists of a set of rules for matching HTTP requests, a list of handlers to execute, and optional flow control parameters which customize the handling of HTTP requests in a highly flexible and performant manner. + +[🔗](https://caddyserver.com/docs/modules/http#servers/routes/group)servers/routes/group +Group is an optional name for a group to which this route belongs. Grouping a route makes it mutually exclusive with others in its group; if a route belongs to a group, only the first matching route in that group will be executed. + +[🔗](https://caddyserver.com/docs/modules/http#servers/routes/match)servers/routes/match +The matcher sets which will be used to qualify this route for a request (essentially the "if" statement of this route). Each matcher set is OR'ed, but matchers within a set are AND'ed together. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.matchers** + +* [client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) +* [expression](https://caddyserver.com/docs/modules/http.matchers.expression) +* [file](https://caddyserver.com/docs/modules/http.matchers.file) +* [header](https://caddyserver.com/docs/modules/http.matchers.header) +* [header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) +* [host](https://caddyserver.com/docs/modules/http.matchers.host) +* [method](https://caddyserver.com/docs/modules/http.matchers.method) +* [not](https://caddyserver.com/docs/modules/http.matchers.not) +* [path](https://caddyserver.com/docs/modules/http.matchers.path) +* [path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) +* [protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) +* [query](https://caddyserver.com/docs/modules/http.matchers.query) +* [remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) +* [tls](https://caddyserver.com/docs/modules/http.matchers.tls) +* [vars](https://caddyserver.com/docs/modules/http.matchers.vars) +* [vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) +* [client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn)Non-standard +* [client_country](https://caddyserver.com/docs/modules/http.matchers.client_country)Non-standard +* [conneg](https://caddyserver.com/docs/modules/http.matchers.conneg)Non-standard +* [crawler](https://caddyserver.com/docs/modules/http.matchers.crawler)Non-standard +* [cron](https://caddyserver.com/docs/modules/http.matchers.cron)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.matchers.dnsfetcher)Non-standard +* [dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip)Non-standard +* [dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip)Non-standard +* [exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop)Non-standard +* [execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [geocity](https://caddyserver.com/docs/modules/http.matchers.geocity)Non-standard +* [geocn](https://caddyserver.com/docs/modules/http.matchers.geocn)Non-standard +* [geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn)Non-standard +* [geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country)Non-standard +* [maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation)Non-standard +* [remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host)Non-standard +* [signed](https://caddyserver.com/docs/modules/http.matchers.signed)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http#servers/routes/handle)servers/routes/handle +The list of handlers for this route. Upon matching a request, they are chained together in a middleware fashion: requests flow from the first handler to the last (top of the list to the bottom), with the possibility that any handler could stop the chain and/or return an error. Responses flow back through the chain (bottom of the list to the top) as they are written out to the client. + +Not all handlers call the next handler in the chain. For example, the reverse_proxy handler always sends a request upstream or returns an error. Thus, configuring handlers after reverse_proxy in the same route is illogical, since they would never be executed. You will want to put handlers which originate the response at the very end of your route(s). The documentation for a module should state whether it invokes the next handler, but sometimes it is common sense. + +Some handlers manipulate the response. Remember that requests flow down the list, and responses flow up the list. + +For example, if you wanted to use both `templates` and `encode` handlers, you would need to put `templates` after `encode` in your route, because responses flow up. Thus, `templates` will be able to parse and execute the plain-text response as a template, and then return it up to the `encode` handler which will then compress it into a binary format. + +If `templates` came before `encode`, then `encode` would write a compressed, binary-encoded response to `templates` which would not be able to parse the response properly. + +The correct order, then, is this: + +``` +[ + {"handler": "encode"}, + {"handler": "templates"}, + {"handler": "file_server"} +] +``` + +The request flows ⬇️ DOWN (`encode` ->`templates` ->`file_server`). + +1. First, `encode` will choose how to `encode` the response and wrap the response. +2. Then, `templates` will wrap the response with a buffer. +3. Finally, `file_server` will originate the content from a file. + +The response flows ⬆️ UP (`file_server` ->`templates` ->`encode`): + +1. First, `file_server` will write the file to the response. +2. That write will be buffered and then executed by `templates`. +3. Lastly, the write from `templates` will flow into `encode` which will compress the stream. + +If you think of routes in this way, it will be easy and even fun to solve the puzzle of writing correct routes. + +Fulfilled by modules in namespace: **http.handlers** + +* [acme_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) +* [authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) +* [copy_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) +* [copy_response_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) +* [encode](https://caddyserver.com/docs/modules/http.handlers.encode) +* [error](https://caddyserver.com/docs/modules/http.handlers.error) +* [file_server](https://caddyserver.com/docs/modules/http.handlers.file_server) +* [headers](https://caddyserver.com/docs/modules/http.handlers.headers) +* [intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) +* [invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) +* [log_append](https://caddyserver.com/docs/modules/http.handlers.log_append) +* [map](https://caddyserver.com/docs/modules/http.handlers.map) +* [metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) +* [push](https://caddyserver.com/docs/modules/http.handlers.push) +* [request_body](https://caddyserver.com/docs/modules/http.handlers.request_body) +* [reverse_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) +* [rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) +* [static_response](https://caddyserver.com/docs/modules/http.handlers.static_response) +* [subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) +* [templates](https://caddyserver.com/docs/modules/http.handlers.templates) +* [tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) +* [vars](https://caddyserver.com/docs/modules/http.handlers.vars) +* [adobe_usage_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [authelia](https://caddyserver.com/docs/modules/http.handlers.authelia)Non-standard +* [authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator)Non-standard +* [authp](https://caddyserver.com/docs/modules/http.handlers.authp)Non-standard +* [authz](https://caddyserver.com/docs/modules/http.handlers.authz)Non-standard +* [basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp)Non-standard +* [blockaws](https://caddyserver.com/docs/modules/http.handlers.blockaws)Non-standard +* [bot_barrier](https://caddyserver.com/docs/modules/http.handlers.bot_barrier)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cerberus](https://caddyserver.com/docs/modules/http.handlers.cerberus)Non-standard +* [cgi](https://caddyserver.com/docs/modules/http.handlers.cgi)Non-standard +* [cookiecrypt](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt)Non-standard +* [cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag)Non-standard +* [crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec)Non-standard +* [ct](https://caddyserver.com/docs/modules/http.handlers.ct)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [discord](https://caddyserver.com/docs/modules/http.handlers.discord)Non-standard +* [dns01proxy](https://caddyserver.com/docs/modules/http.handlers.dns01proxy)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher)Non-standard +* [esi](https://caddyserver.com/docs/modules/http.handlers.esi)Non-standard +* [exec](https://caddyserver.com/docs/modules/http.handlers.exec)Non-standard +* [extra_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders)Non-standard +* [filter](https://caddyserver.com/docs/modules/http.handlers.filter)Non-standard +* [floaty](https://caddyserver.com/docs/modules/http.handlers.floaty)Non-standard +* [forward_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth)Non-standard +* [gbox](https://caddyserver.com/docs/modules/http.handlers.gbox)Non-standard +* [geofence](https://caddyserver.com/docs/modules/http.handlers.geofence)Non-standard +* [geoip](https://caddyserver.com/docs/modules/http.handlers.geoip)Non-standard +* [geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2)Non-standard +* [git](https://caddyserver.com/docs/modules/http.handlers.git)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [grpc_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web)Non-standard +* [guard](https://caddyserver.com/docs/modules/http.handlers.guard)Non-standard +* [hmac](https://caddyserver.com/docs/modules/http.handlers.hmac)Non-standard +* [http_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache)Non-standard +* [i18n](https://caddyserver.com/docs/modules/http.handlers.i18n)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor)Non-standard +* [imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy)Non-standard +* [inspect](https://caddyserver.com/docs/modules/http.handlers.inspect)Non-standard +* [ip_filter](https://caddyserver.com/docs/modules/http.handlers.ip_filter)Non-standard +* [ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap)Non-standard +* [jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait)Non-standard +* [json_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse)Non-standard +* [jwt_issuer](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer)Non-standard +* [k8s_admission](https://caddyserver.com/docs/modules/http.handlers.k8s_admission)Non-standard +* [lambda](https://caddyserver.com/docs/modules/http.handlers.lambda)Non-standard +* [ldap_basic_auth](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth)Non-standard +* [listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy)Non-standard +* [lura](https://caddyserver.com/docs/modules/http.handlers.lura)Non-standard +* [mercure](https://caddyserver.com/docs/modules/http.handlers.mercure)Non-standard +* [minifier](https://caddyserver.com/docs/modules/http.handlers.minifier)Non-standard +* [mirror](https://caddyserver.com/docs/modules/http.handlers.mirror)Non-standard +* [myplugin](https://caddyserver.com/docs/modules/http.handlers.myplugin)Non-standard +* [nobots](https://caddyserver.com/docs/modules/http.handlers.nobots)Non-standard +* [oauth2_token_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection)Non-standard +* [olaf](https://caddyserver.com/docs/modules/http.handlers.olaf)Non-standard +* [olo_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature)Non-standard +* [openapi](https://caddyserver.com/docs/modules/http.handlers.openapi)Non-standard +* [openapi_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator)Non-standard +* [php](https://caddyserver.com/docs/modules/http.handlers.php)Non-standard +* [pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch)Non-standard +* [pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster)Non-standard +* [placeholder_dump](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump)Non-standard +* [plausible](https://caddyserver.com/docs/modules/http.handlers.plausible)Non-standard +* [pmtiles_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy)Non-standard +* [pocketbase](https://caddyserver.com/docs/modules/http.handlers.pocketbase)Non-standard +* [postauth2fa](https://caddyserver.com/docs/modules/http.handlers.postauth2fa)Non-standard +* [prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus)Non-standard +* [public_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix)Non-standard +* [quantity_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [realip](https://caddyserver.com/docs/modules/http.handlers.realip)Non-standard +* [redir_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns)Non-standard +* [replace_response](https://caddyserver.com/docs/modules/http.handlers.replace_response)Non-standard +* [request_body_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var)Non-standard +* [request_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug)Non-standard +* [request_id](https://caddyserver.com/docs/modules/http.handlers.request_id)Non-standard +* [s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [save](https://caddyserver.com/docs/modules/http.handlers.save)Non-standard +* [scion](https://caddyserver.com/docs/modules/http.handlers.scion)Non-standard +* [teapot](https://caddyserver.com/docs/modules/http.handlers.teapot)Non-standard +* [trace](https://caddyserver.com/docs/modules/http.handlers.trace)Non-standard +* [trapdoor](https://caddyserver.com/docs/modules/http.handlers.trapdoor)Non-standard +* [trojan](https://caddyserver.com/docs/modules/http.handlers.trojan)Non-standard +* [umami](https://caddyserver.com/docs/modules/http.handlers.umami)Non-standard +* [upload](https://caddyserver.com/docs/modules/http.handlers.upload)Non-standard +* [user_agent_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse)Non-standard +* [vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf_chaitin](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin)Non-standard +* [wafris](https://caddyserver.com/docs/modules/http.handlers.wafris)Non-standard +* [wake_on_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan)Non-standard +* [webdav](https://caddyserver.com/docs/modules/http.handlers.webdav)Non-standard +* [webhook](https://caddyserver.com/docs/modules/http.handlers.webhook)Non-standard +* [x_clacks_overhead](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http#servers/routes/terminal)servers/routes/terminal +If true, no more routes will be executed after this one. + +[🔗](https://caddyserver.com/docs/modules/http#servers/errors)servers/errors +Errors is how this server will handle errors returned from any of the handlers in the primary routes. If the primary handler chain returns an error, the error along with its recommended status code are bubbled back up to the HTTP server which executes a separate error route, specified using this property. The error routes work exactly like the normal routes. + +HTTPErrorConfig determines how to handle errors from the HTTP handlers. + +[🔗](https://caddyserver.com/docs/modules/http#servers/errors/routes)servers/errors/routes +The routes to evaluate after the primary handler chain returns an error. In an error route, extra placeholders are available: + +| Placeholder | Description | +| --- | --- | +| `{http.error.status_code}` | The recommended HTTP status code | +| `{http.error.status_text}` | The status text associated with the recommended status code | +| `{http.error.message}` | The error message | +| `{http.error.trace}` | The origin of the error | +| `{http.error.id}` | An identifier for this occurrence of the error | + +Route consists of a set of rules for matching HTTP requests, a list of handlers to execute, and optional flow control parameters which customize the handling of HTTP requests in a highly flexible and performant manner. + +[🔗](https://caddyserver.com/docs/modules/http#servers/errors/routes/group)servers/errors/routes/group +Group is an optional name for a group to which this route belongs. Grouping a route makes it mutually exclusive with others in its group; if a route belongs to a group, only the first matching route in that group will be executed. + +[🔗](https://caddyserver.com/docs/modules/http#servers/errors/routes/match)servers/errors/routes/match +The matcher sets which will be used to qualify this route for a request (essentially the "if" statement of this route). Each matcher set is OR'ed, but matchers within a set are AND'ed together. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.matchers** + +* [client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) +* [expression](https://caddyserver.com/docs/modules/http.matchers.expression) +* [file](https://caddyserver.com/docs/modules/http.matchers.file) +* [header](https://caddyserver.com/docs/modules/http.matchers.header) +* [header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) +* [host](https://caddyserver.com/docs/modules/http.matchers.host) +* [method](https://caddyserver.com/docs/modules/http.matchers.method) +* [not](https://caddyserver.com/docs/modules/http.matchers.not) +* [path](https://caddyserver.com/docs/modules/http.matchers.path) +* [path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) +* [protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) +* [query](https://caddyserver.com/docs/modules/http.matchers.query) +* [remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) +* [tls](https://caddyserver.com/docs/modules/http.matchers.tls) +* [vars](https://caddyserver.com/docs/modules/http.matchers.vars) +* [vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) +* [client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn)Non-standard +* [client_country](https://caddyserver.com/docs/modules/http.matchers.client_country)Non-standard +* [conneg](https://caddyserver.com/docs/modules/http.matchers.conneg)Non-standard +* [crawler](https://caddyserver.com/docs/modules/http.matchers.crawler)Non-standard +* [cron](https://caddyserver.com/docs/modules/http.matchers.cron)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.matchers.dnsfetcher)Non-standard +* [dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip)Non-standard +* [dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip)Non-standard +* [exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop)Non-standard +* [execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [geocity](https://caddyserver.com/docs/modules/http.matchers.geocity)Non-standard +* [geocn](https://caddyserver.com/docs/modules/http.matchers.geocn)Non-standard +* [geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn)Non-standard +* [geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country)Non-standard +* [maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation)Non-standard +* [remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host)Non-standard +* [signed](https://caddyserver.com/docs/modules/http.matchers.signed)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http#servers/errors/routes/handle)servers/errors/routes/handle +The list of handlers for this route. Upon matching a request, they are chained together in a middleware fashion: requests flow from the first handler to the last (top of the list to the bottom), with the possibility that any handler could stop the chain and/or return an error. Responses flow back through the chain (bottom of the list to the top) as they are written out to the client. + +Not all handlers call the next handler in the chain. For example, the reverse_proxy handler always sends a request upstream or returns an error. Thus, configuring handlers after reverse_proxy in the same route is illogical, since they would never be executed. You will want to put handlers which originate the response at the very end of your route(s). The documentation for a module should state whether it invokes the next handler, but sometimes it is common sense. + +Some handlers manipulate the response. Remember that requests flow down the list, and responses flow up the list. + +For example, if you wanted to use both `templates` and `encode` handlers, you would need to put `templates` after `encode` in your route, because responses flow up. Thus, `templates` will be able to parse and execute the plain-text response as a template, and then return it up to the `encode` handler which will then compress it into a binary format. + +If `templates` came before `encode`, then `encode` would write a compressed, binary-encoded response to `templates` which would not be able to parse the response properly. + +The correct order, then, is this: + +``` +[ + {"handler": "encode"}, + {"handler": "templates"}, + {"handler": "file_server"} +] +``` + +The request flows ⬇️ DOWN (`encode` ->`templates` ->`file_server`). + +1. First, `encode` will choose how to `encode` the response and wrap the response. +2. Then, `templates` will wrap the response with a buffer. +3. Finally, `file_server` will originate the content from a file. + +The response flows ⬆️ UP (`file_server` ->`templates` ->`encode`): + +1. First, `file_server` will write the file to the response. +2. That write will be buffered and then executed by `templates`. +3. Lastly, the write from `templates` will flow into `encode` which will compress the stream. + +If you think of routes in this way, it will be easy and even fun to solve the puzzle of writing correct routes. + +Fulfilled by modules in namespace: **http.handlers** + +* [acme_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) +* [authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) +* [copy_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) +* [copy_response_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) +* [encode](https://caddyserver.com/docs/modules/http.handlers.encode) +* [error](https://caddyserver.com/docs/modules/http.handlers.error) +* [file_server](https://caddyserver.com/docs/modules/http.handlers.file_server) +* [headers](https://caddyserver.com/docs/modules/http.handlers.headers) +* [intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) +* [invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) +* [log_append](https://caddyserver.com/docs/modules/http.handlers.log_append) +* [map](https://caddyserver.com/docs/modules/http.handlers.map) +* [metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) +* [push](https://caddyserver.com/docs/modules/http.handlers.push) +* [request_body](https://caddyserver.com/docs/modules/http.handlers.request_body) +* [reverse_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) +* [rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) +* [static_response](https://caddyserver.com/docs/modules/http.handlers.static_response) +* [subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) +* [templates](https://caddyserver.com/docs/modules/http.handlers.templates) +* [tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) +* [vars](https://caddyserver.com/docs/modules/http.handlers.vars) +* [adobe_usage_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [authelia](https://caddyserver.com/docs/modules/http.handlers.authelia)Non-standard +* [authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator)Non-standard +* [authp](https://caddyserver.com/docs/modules/http.handlers.authp)Non-standard +* [authz](https://caddyserver.com/docs/modules/http.handlers.authz)Non-standard +* [basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp)Non-standard +* [blockaws](https://caddyserver.com/docs/modules/http.handlers.blockaws)Non-standard +* [bot_barrier](https://caddyserver.com/docs/modules/http.handlers.bot_barrier)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cerberus](https://caddyserver.com/docs/modules/http.handlers.cerberus)Non-standard +* [cgi](https://caddyserver.com/docs/modules/http.handlers.cgi)Non-standard +* [cookiecrypt](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt)Non-standard +* [cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag)Non-standard +* [crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec)Non-standard +* [ct](https://caddyserver.com/docs/modules/http.handlers.ct)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [discord](https://caddyserver.com/docs/modules/http.handlers.discord)Non-standard +* [dns01proxy](https://caddyserver.com/docs/modules/http.handlers.dns01proxy)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher)Non-standard +* [esi](https://caddyserver.com/docs/modules/http.handlers.esi)Non-standard +* [exec](https://caddyserver.com/docs/modules/http.handlers.exec)Non-standard +* [extra_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders)Non-standard +* [filter](https://caddyserver.com/docs/modules/http.handlers.filter)Non-standard +* [floaty](https://caddyserver.com/docs/modules/http.handlers.floaty)Non-standard +* [forward_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth)Non-standard +* [gbox](https://caddyserver.com/docs/modules/http.handlers.gbox)Non-standard +* [geofence](https://caddyserver.com/docs/modules/http.handlers.geofence)Non-standard +* [geoip](https://caddyserver.com/docs/modules/http.handlers.geoip)Non-standard +* [geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2)Non-standard +* [git](https://caddyserver.com/docs/modules/http.handlers.git)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [grpc_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web)Non-standard +* [guard](https://caddyserver.com/docs/modules/http.handlers.guard)Non-standard +* [hmac](https://caddyserver.com/docs/modules/http.handlers.hmac)Non-standard +* [http_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache)Non-standard +* [i18n](https://caddyserver.com/docs/modules/http.handlers.i18n)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor)Non-standard +* [imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy)Non-standard +* [inspect](https://caddyserver.com/docs/modules/http.handlers.inspect)Non-standard +* [ip_filter](https://caddyserver.com/docs/modules/http.handlers.ip_filter)Non-standard +* [ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap)Non-standard +* [jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait)Non-standard +* [json_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse)Non-standard +* [jwt_issuer](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer)Non-standard +* [k8s_admission](https://caddyserver.com/docs/modules/http.handlers.k8s_admission)Non-standard +* [lambda](https://caddyserver.com/docs/modules/http.handlers.lambda)Non-standard +* [ldap_basic_auth](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth)Non-standard +* [listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy)Non-standard +* [lura](https://caddyserver.com/docs/modules/http.handlers.lura)Non-standard +* [mercure](https://caddyserver.com/docs/modules/http.handlers.mercure)Non-standard +* [minifier](https://caddyserver.com/docs/modules/http.handlers.minifier)Non-standard +* [mirror](https://caddyserver.com/docs/modules/http.handlers.mirror)Non-standard +* [myplugin](https://caddyserver.com/docs/modules/http.handlers.myplugin)Non-standard +* [nobots](https://caddyserver.com/docs/modules/http.handlers.nobots)Non-standard +* [oauth2_token_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection)Non-standard +* [olaf](https://caddyserver.com/docs/modules/http.handlers.olaf)Non-standard +* [olo_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature)Non-standard +* [openapi](https://caddyserver.com/docs/modules/http.handlers.openapi)Non-standard +* [openapi_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator)Non-standard +* [php](https://caddyserver.com/docs/modules/http.handlers.php)Non-standard +* [pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch)Non-standard +* [pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster)Non-standard +* [placeholder_dump](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump)Non-standard +* [plausible](https://caddyserver.com/docs/modules/http.handlers.plausible)Non-standard +* [pmtiles_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy)Non-standard +* [pocketbase](https://caddyserver.com/docs/modules/http.handlers.pocketbase)Non-standard +* [postauth2fa](https://caddyserver.com/docs/modules/http.handlers.postauth2fa)Non-standard +* [prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus)Non-standard +* [public_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix)Non-standard +* [quantity_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [realip](https://caddyserver.com/docs/modules/http.handlers.realip)Non-standard +* [redir_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns)Non-standard +* [replace_response](https://caddyserver.com/docs/modules/http.handlers.replace_response)Non-standard +* [request_body_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var)Non-standard +* [request_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug)Non-standard +* [request_id](https://caddyserver.com/docs/modules/http.handlers.request_id)Non-standard +* [s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [save](https://caddyserver.com/docs/modules/http.handlers.save)Non-standard +* [scion](https://caddyserver.com/docs/modules/http.handlers.scion)Non-standard +* [teapot](https://caddyserver.com/docs/modules/http.handlers.teapot)Non-standard +* [trace](https://caddyserver.com/docs/modules/http.handlers.trace)Non-standard +* [trapdoor](https://caddyserver.com/docs/modules/http.handlers.trapdoor)Non-standard +* [trojan](https://caddyserver.com/docs/modules/http.handlers.trojan)Non-standard +* [umami](https://caddyserver.com/docs/modules/http.handlers.umami)Non-standard +* [upload](https://caddyserver.com/docs/modules/http.handlers.upload)Non-standard +* [user_agent_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse)Non-standard +* [vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf_chaitin](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin)Non-standard +* [wafris](https://caddyserver.com/docs/modules/http.handlers.wafris)Non-standard +* [wake_on_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan)Non-standard +* [webdav](https://caddyserver.com/docs/modules/http.handlers.webdav)Non-standard +* [webhook](https://caddyserver.com/docs/modules/http.handlers.webhook)Non-standard +* [x_clacks_overhead](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http#servers/errors/routes/terminal)servers/errors/routes/terminal +If true, no more routes will be executed after this one. + +[🔗](https://caddyserver.com/docs/modules/http#servers/named_routes)servers/named_routes +NamedRoutes describes a mapping of reusable routes that can be invoked by their name. This can be used to optimize memory usage when the same route is needed for many subroutes, by having the handlers and matchers be only provisioned once, but used from many places. These routes are not executed unless they are invoked from another route. + +EXPERIMENTAL: Subject to change or removal. + +Route consists of a set of rules for matching HTTP requests, a list of handlers to execute, and optional flow control parameters which customize the handling of HTTP requests in a highly flexible and performant manner. + +[🔗](https://caddyserver.com/docs/modules/http#servers/named_routes/group)servers/named_routes/group +Group is an optional name for a group to which this route belongs. Grouping a route makes it mutually exclusive with others in its group; if a route belongs to a group, only the first matching route in that group will be executed. + +[🔗](https://caddyserver.com/docs/modules/http#servers/named_routes/match)servers/named_routes/match +The matcher sets which will be used to qualify this route for a request (essentially the "if" statement of this route). Each matcher set is OR'ed, but matchers within a set are AND'ed together. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **http.matchers** + +* [client_ip](https://caddyserver.com/docs/modules/http.matchers.client_ip) +* [expression](https://caddyserver.com/docs/modules/http.matchers.expression) +* [file](https://caddyserver.com/docs/modules/http.matchers.file) +* [header](https://caddyserver.com/docs/modules/http.matchers.header) +* [header_regexp](https://caddyserver.com/docs/modules/http.matchers.header_regexp) +* [host](https://caddyserver.com/docs/modules/http.matchers.host) +* [method](https://caddyserver.com/docs/modules/http.matchers.method) +* [not](https://caddyserver.com/docs/modules/http.matchers.not) +* [path](https://caddyserver.com/docs/modules/http.matchers.path) +* [path_regexp](https://caddyserver.com/docs/modules/http.matchers.path_regexp) +* [protocol](https://caddyserver.com/docs/modules/http.matchers.protocol) +* [query](https://caddyserver.com/docs/modules/http.matchers.query) +* [remote_ip](https://caddyserver.com/docs/modules/http.matchers.remote_ip) +* [tls](https://caddyserver.com/docs/modules/http.matchers.tls) +* [vars](https://caddyserver.com/docs/modules/http.matchers.vars) +* [vars_regexp](https://caddyserver.com/docs/modules/http.matchers.vars_regexp) +* [client_asn](https://caddyserver.com/docs/modules/http.matchers.client_asn)Non-standard +* [client_country](https://caddyserver.com/docs/modules/http.matchers.client_country)Non-standard +* [conneg](https://caddyserver.com/docs/modules/http.matchers.conneg)Non-standard +* [crawler](https://caddyserver.com/docs/modules/http.matchers.crawler)Non-standard +* [cron](https://caddyserver.com/docs/modules/http.matchers.cron)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.matchers.dnsfetcher)Non-standard +* [dynamic_client_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_client_ip)Non-standard +* [dynamic_remote_ip](https://caddyserver.com/docs/modules/http.matchers.dynamic_remote_ip)Non-standard +* [exec_noop](https://caddyserver.com/docs/modules/http.matchers.exec_noop)Non-standard +* [execnopmatch](https://caddyserver.com/docs/modules/http.matchers.execnopmatch)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [fail2ban](https://caddyserver.com/docs/modules/http.matchers.fail2ban)Non-standard +* [geocity](https://caddyserver.com/docs/modules/http.matchers.geocity)Non-standard +* [geocn](https://caddyserver.com/docs/modules/http.matchers.geocn)Non-standard +* [geoip_asn](https://caddyserver.com/docs/modules/http.matchers.geoip_asn)Non-standard +* [geoip_country](https://caddyserver.com/docs/modules/http.matchers.geoip_country)Non-standard +* [maxmind_geolocation](https://caddyserver.com/docs/modules/http.matchers.maxmind_geolocation)Non-standard +* [remote_host](https://caddyserver.com/docs/modules/http.matchers.remote_host)Non-standard +* [signed](https://caddyserver.com/docs/modules/http.matchers.signed)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http#servers/named_routes/handle)servers/named_routes/handle +The list of handlers for this route. Upon matching a request, they are chained together in a middleware fashion: requests flow from the first handler to the last (top of the list to the bottom), with the possibility that any handler could stop the chain and/or return an error. Responses flow back through the chain (bottom of the list to the top) as they are written out to the client. + +Not all handlers call the next handler in the chain. For example, the reverse_proxy handler always sends a request upstream or returns an error. Thus, configuring handlers after reverse_proxy in the same route is illogical, since they would never be executed. You will want to put handlers which originate the response at the very end of your route(s). The documentation for a module should state whether it invokes the next handler, but sometimes it is common sense. + +Some handlers manipulate the response. Remember that requests flow down the list, and responses flow up the list. + +For example, if you wanted to use both `templates` and `encode` handlers, you would need to put `templates` after `encode` in your route, because responses flow up. Thus, `templates` will be able to parse and execute the plain-text response as a template, and then return it up to the `encode` handler which will then compress it into a binary format. + +If `templates` came before `encode`, then `encode` would write a compressed, binary-encoded response to `templates` which would not be able to parse the response properly. + +The correct order, then, is this: + +``` +[ + {"handler": "encode"}, + {"handler": "templates"}, + {"handler": "file_server"} +] +``` + +The request flows ⬇️ DOWN (`encode` ->`templates` ->`file_server`). + +1. First, `encode` will choose how to `encode` the response and wrap the response. +2. Then, `templates` will wrap the response with a buffer. +3. Finally, `file_server` will originate the content from a file. + +The response flows ⬆️ UP (`file_server` ->`templates` ->`encode`): + +1. First, `file_server` will write the file to the response. +2. That write will be buffered and then executed by `templates`. +3. Lastly, the write from `templates` will flow into `encode` which will compress the stream. + +If you think of routes in this way, it will be easy and even fun to solve the puzzle of writing correct routes. + +Fulfilled by modules in namespace: **http.handlers** + +* [acme_server](https://caddyserver.com/docs/modules/http.handlers.acme_server) +* [authentication](https://caddyserver.com/docs/modules/http.handlers.authentication) +* [copy_response](https://caddyserver.com/docs/modules/http.handlers.copy_response) +* [copy_response_headers](https://caddyserver.com/docs/modules/http.handlers.copy_response_headers) +* [encode](https://caddyserver.com/docs/modules/http.handlers.encode) +* [error](https://caddyserver.com/docs/modules/http.handlers.error) +* [file_server](https://caddyserver.com/docs/modules/http.handlers.file_server) +* [headers](https://caddyserver.com/docs/modules/http.handlers.headers) +* [intercept](https://caddyserver.com/docs/modules/http.handlers.intercept) +* [invoke](https://caddyserver.com/docs/modules/http.handlers.invoke) +* [log_append](https://caddyserver.com/docs/modules/http.handlers.log_append) +* [map](https://caddyserver.com/docs/modules/http.handlers.map) +* [metrics](https://caddyserver.com/docs/modules/http.handlers.metrics) +* [push](https://caddyserver.com/docs/modules/http.handlers.push) +* [request_body](https://caddyserver.com/docs/modules/http.handlers.request_body) +* [reverse_proxy](https://caddyserver.com/docs/modules/http.handlers.reverse_proxy) +* [rewrite](https://caddyserver.com/docs/modules/http.handlers.rewrite) +* [static_response](https://caddyserver.com/docs/modules/http.handlers.static_response) +* [subroute](https://caddyserver.com/docs/modules/http.handlers.subroute) +* [templates](https://caddyserver.com/docs/modules/http.handlers.templates) +* [tracing](https://caddyserver.com/docs/modules/http.handlers.tracing) +* [vars](https://caddyserver.com/docs/modules/http.handlers.vars) +* [adobe_usage_tracker](https://caddyserver.com/docs/modules/http.handlers.adobe_usage_tracker)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [argsort](https://caddyserver.com/docs/modules/http.handlers.argsort)Non-standard +* [authelia](https://caddyserver.com/docs/modules/http.handlers.authelia)Non-standard +* [authenticator](https://caddyserver.com/docs/modules/http.handlers.authenticator)Non-standard +* [authp](https://caddyserver.com/docs/modules/http.handlers.authp)Non-standard +* [authz](https://caddyserver.com/docs/modules/http.handlers.authz)Non-standard +* [basicauthtotp](https://caddyserver.com/docs/modules/http.handlers.basicauthtotp)Non-standard +* [blockaws](https://caddyserver.com/docs/modules/http.handlers.blockaws)Non-standard +* [bot_barrier](https://caddyserver.com/docs/modules/http.handlers.bot_barrier)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cache](https://caddyserver.com/docs/modules/http.handlers.cache)Non-standard +* [cerberus](https://caddyserver.com/docs/modules/http.handlers.cerberus)Non-standard +* [cgi](https://caddyserver.com/docs/modules/http.handlers.cgi)Non-standard +* [cookiecrypt](https://caddyserver.com/docs/modules/http.handlers.cookiecrypt)Non-standard +* [cookieflag](https://caddyserver.com/docs/modules/http.handlers.cookieflag)Non-standard +* [crowdsec](https://caddyserver.com/docs/modules/http.handlers.crowdsec)Non-standard +* [ct](https://caddyserver.com/docs/modules/http.handlers.ct)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [defender](https://caddyserver.com/docs/modules/http.handlers.defender)Non-standard +* [discord](https://caddyserver.com/docs/modules/http.handlers.discord)Non-standard +* [dns01proxy](https://caddyserver.com/docs/modules/http.handlers.dns01proxy)Non-standard +* [dnsfetcher](https://caddyserver.com/docs/modules/http.handlers.dnsfetcher)Non-standard +* [esi](https://caddyserver.com/docs/modules/http.handlers.esi)Non-standard +* [exec](https://caddyserver.com/docs/modules/http.handlers.exec)Non-standard +* [extra_placeholders](https://caddyserver.com/docs/modules/http.handlers.extra_placeholders)Non-standard +* [filter](https://caddyserver.com/docs/modules/http.handlers.filter)Non-standard +* [floaty](https://caddyserver.com/docs/modules/http.handlers.floaty)Non-standard +* [forward_auth](https://caddyserver.com/docs/modules/http.handlers.forward_auth)Non-standard +* [gbox](https://caddyserver.com/docs/modules/http.handlers.gbox)Non-standard +* [geofence](https://caddyserver.com/docs/modules/http.handlers.geofence)Non-standard +* [geoip](https://caddyserver.com/docs/modules/http.handlers.geoip)Non-standard +* [geoip2](https://caddyserver.com/docs/modules/http.handlers.geoip2)Non-standard +* [git](https://caddyserver.com/docs/modules/http.handlers.git)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [gopkg](https://caddyserver.com/docs/modules/http.handlers.gopkg)Non-standard +* [grpc_web](https://caddyserver.com/docs/modules/http.handlers.grpc_web)Non-standard +* [guard](https://caddyserver.com/docs/modules/http.handlers.guard)Non-standard +* [hmac](https://caddyserver.com/docs/modules/http.handlers.hmac)Non-standard +* [http_cache](https://caddyserver.com/docs/modules/http.handlers.http_cache)Non-standard +* [i18n](https://caddyserver.com/docs/modules/http.handlers.i18n)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_filter](https://caddyserver.com/docs/modules/http.handlers.image_filter)Non-standard +* [image_processor](https://caddyserver.com/docs/modules/http.handlers.image_processor)Non-standard +* [imageproxy](https://caddyserver.com/docs/modules/http.handlers.imageproxy)Non-standard +* [inspect](https://caddyserver.com/docs/modules/http.handlers.inspect)Non-standard +* [ip_filter](https://caddyserver.com/docs/modules/http.handlers.ip_filter)Non-standard +* [ipmap](https://caddyserver.com/docs/modules/http.handlers.ipmap)Non-standard +* [jailbait](https://caddyserver.com/docs/modules/http.handlers.jailbait)Non-standard +* [json_parse](https://caddyserver.com/docs/modules/http.handlers.json_parse)Non-standard +* [jwt_issuer](https://caddyserver.com/docs/modules/http.handlers.jwt_issuer)Non-standard +* [k8s_admission](https://caddyserver.com/docs/modules/http.handlers.k8s_admission)Non-standard +* [lambda](https://caddyserver.com/docs/modules/http.handlers.lambda)Non-standard +* [ldap_basic_auth](https://caddyserver.com/docs/modules/http.handlers.ldap_basic_auth)Non-standard +* [listencaddy](https://caddyserver.com/docs/modules/http.handlers.listencaddy)Non-standard +* [lura](https://caddyserver.com/docs/modules/http.handlers.lura)Non-standard +* [mercure](https://caddyserver.com/docs/modules/http.handlers.mercure)Non-standard +* [minifier](https://caddyserver.com/docs/modules/http.handlers.minifier)Non-standard +* [mirror](https://caddyserver.com/docs/modules/http.handlers.mirror)Non-standard +* [myplugin](https://caddyserver.com/docs/modules/http.handlers.myplugin)Non-standard +* [nobots](https://caddyserver.com/docs/modules/http.handlers.nobots)Non-standard +* [oauth2_token_introspection](https://caddyserver.com/docs/modules/http.handlers.oauth2_token_introspection)Non-standard +* [olaf](https://caddyserver.com/docs/modules/http.handlers.olaf)Non-standard +* [olo_signature](https://caddyserver.com/docs/modules/http.handlers.olo_signature)Non-standard +* [openapi](https://caddyserver.com/docs/modules/http.handlers.openapi)Non-standard +* [openapi_validator](https://caddyserver.com/docs/modules/http.handlers.openapi_validator)Non-standard +* [php](https://caddyserver.com/docs/modules/http.handlers.php)Non-standard +* [pirsch](https://caddyserver.com/docs/modules/http.handlers.pirsch)Non-standard +* [pixbooster](https://caddyserver.com/docs/modules/http.handlers.pixbooster)Non-standard +* [placeholder_dump](https://caddyserver.com/docs/modules/http.handlers.placeholder_dump)Non-standard +* [plausible](https://caddyserver.com/docs/modules/http.handlers.plausible)Non-standard +* [pmtiles_proxy](https://caddyserver.com/docs/modules/http.handlers.pmtiles_proxy)Non-standard +* [pocketbase](https://caddyserver.com/docs/modules/http.handlers.pocketbase)Non-standard +* [postauth2fa](https://caddyserver.com/docs/modules/http.handlers.postauth2fa)Non-standard +* [prometheus](https://caddyserver.com/docs/modules/http.handlers.prometheus)Non-standard +* [public_suffix](https://caddyserver.com/docs/modules/http.handlers.public_suffix)Non-standard +* [quantity_limiter](https://caddyserver.com/docs/modules/http.handlers.quantity_limiter)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [rate_limit](https://caddyserver.com/docs/modules/http.handlers.rate_limit)Non-standard +* [realip](https://caddyserver.com/docs/modules/http.handlers.realip)Non-standard +* [redir_dns](https://caddyserver.com/docs/modules/http.handlers.redir_dns)Non-standard +* [replace_response](https://caddyserver.com/docs/modules/http.handlers.replace_response)Non-standard +* [request_body_var](https://caddyserver.com/docs/modules/http.handlers.request_body_var)Non-standard +* [request_debug](https://caddyserver.com/docs/modules/http.handlers.request_debug)Non-standard +* [request_id](https://caddyserver.com/docs/modules/http.handlers.request_id)Non-standard +* [s3proxy](https://caddyserver.com/docs/modules/http.handlers.s3proxy)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [sablier](https://caddyserver.com/docs/modules/http.handlers.sablier)Non-standard +* [save](https://caddyserver.com/docs/modules/http.handlers.save)Non-standard +* [scion](https://caddyserver.com/docs/modules/http.handlers.scion)Non-standard +* [teapot](https://caddyserver.com/docs/modules/http.handlers.teapot)Non-standard +* [trace](https://caddyserver.com/docs/modules/http.handlers.trace)Non-standard +* [trapdoor](https://caddyserver.com/docs/modules/http.handlers.trapdoor)Non-standard +* [trojan](https://caddyserver.com/docs/modules/http.handlers.trojan)Non-standard +* [umami](https://caddyserver.com/docs/modules/http.handlers.umami)Non-standard +* [upload](https://caddyserver.com/docs/modules/http.handlers.upload)Non-standard +* [user_agent_parse](https://caddyserver.com/docs/modules/http.handlers.user_agent_parse)Non-standard +* [vulcain](https://caddyserver.com/docs/modules/http.handlers.vulcain)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf](https://caddyserver.com/docs/modules/http.handlers.waf)Non-standard +* [waf_chaitin](https://caddyserver.com/docs/modules/http.handlers.waf_chaitin)Non-standard +* [wafris](https://caddyserver.com/docs/modules/http.handlers.wafris)Non-standard +* [wake_on_lan](https://caddyserver.com/docs/modules/http.handlers.wake_on_lan)Non-standard +* [webdav](https://caddyserver.com/docs/modules/http.handlers.webdav)Non-standard +* [webhook](https://caddyserver.com/docs/modules/http.handlers.webhook)Non-standard +* [x_clacks_overhead](https://caddyserver.com/docs/modules/http.handlers.x_clacks_overhead)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplate](https://caddyserver.com/docs/modules/http.handlers.xtemplate)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard +* [xtemplates](https://caddyserver.com/docs/modules/http.handlers.xtemplates)Non-standard + +[🔗](https://caddyserver.com/docs/modules/http#servers/named_routes/terminal)servers/named_routes/terminal +If true, no more routes will be executed after this one. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies)servers/tls_connection_policies +How to handle TLS connections. At least one policy is required to enable HTTPS on this server if automatic HTTPS is disabled or does not apply. + +ConnectionPolicy specifies the logic for handling a TLS handshake. An empty policy is valid; safe and sensible defaults will be used. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/match)servers/tls_connection_policies/match +How to match this policy with a TLS ClientHello. If this policy is the first to match, it will be used. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/certificate_selection)servers/tls_connection_policies/certificate_selection +How to choose a certificate if more than one matched the given ServerName (SNI) value. + +CustomCertSelectionPolicy represents a policy for selecting the certificate used to complete a handshake when there may be multiple options. All fields specified must match the candidate certificate for it to be chosen. This was needed to solve [https://github.com/caddyserver/caddy/issues/2588](https://github.com/caddyserver/caddy/issues/2588). + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/certificate_selection/serial_number)servers/tls_connection_policies/certificate_selection/serial_number +The certificate must have one of these serial numbers. + +bigInt is a big.Int type that interops with JSON encodings as a string. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/certificate_selection/subject_organization)servers/tls_connection_policies/certificate_selection/subject_organization +The certificate must have one of these organization names. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/certificate_selection/public_key_algorithm)servers/tls_connection_policies/certificate_selection/public_key_algorithm +The certificate must use this public key algorithm. + +PublicKeyAlgorithm is a JSON-unmarshalable wrapper type. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/certificate_selection/any_tag)servers/tls_connection_policies/certificate_selection/any_tag +The certificate must have at least one of the tags in the list. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/certificate_selection/all_tags)servers/tls_connection_policies/certificate_selection/all_tags +The certificate must have all of the tags in the list. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/cipher_suites)servers/tls_connection_policies/cipher_suites +The list of cipher suites to support. Caddy's defaults are modern and secure. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/curves)servers/tls_connection_policies/curves +The list of elliptic curves to support. Caddy's defaults are modern and secure. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/alpn)servers/tls_connection_policies/alpn +Protocols to use for Application-Layer Protocol Negotiation (ALPN) during the handshake. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/protocol_min)servers/tls_connection_policies/protocol_min +Minimum TLS protocol version to allow. Default: `tls1.2` + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/protocol_max)servers/tls_connection_policies/protocol_max +Maximum TLS protocol version to allow. Default: `tls1.3` + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/drop)servers/tls_connection_policies/drop +Reject TLS connections. EXPERIMENTAL: May change. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/client_authentication)servers/tls_connection_policies/client_authentication +Enables and configures TLS client authentication. + +ClientAuthentication configures TLS client auth. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/client_authentication/ca)servers/tls_connection_policies/client_authentication/ca +Certificate authority module which provides the certificate pool of trusted certificates + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/client_authentication/trusted_ca_certs)servers/tls_connection_policies/client_authentication/trusted_ca_certs +Deprecated: Use the `ca` field with the `tls.ca_pool.source.inline` module instead. A list of base64 DER-encoded CA certificates against which to validate client certificates. Client certs which are not signed by any of these CAs will be rejected. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/client_authentication/trusted_ca_certs_pem_files)servers/tls_connection_policies/client_authentication/trusted_ca_certs_pem_files +Deprecated: Use the `ca` field with the `tls.ca_pool.source.file` module instead. TrustedCACertPEMFiles is a list of PEM file names from which to load certificates of trusted CAs. Client certificates which are not signed by any of these CA certificates will be rejected. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/client_authentication/trusted_leaf_certs)servers/tls_connection_policies/client_authentication/trusted_leaf_certs +Deprecated: This field is deprecated and will be removed in a future version. Please use the `validators` field instead with the tls.client_auth.verifier.leaf module instead. + +A list of base64 DER-encoded client leaf certs to accept. If this list is not empty, client certs which are not in this list will be rejected. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/client_authentication/verifiers)servers/tls_connection_policies/client_authentication/verifiers +Client certificate verification modules. These can perform custom client authentication checks, such as ensuring the certificate is not revoked. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/client_authentication/mode)servers/tls_connection_policies/client_authentication/mode +The mode for authenticating the client. Allowed values are: + +| Mode | Description | +| --- | --- | +| `request` | Ask clients for a certificate, but allow even if there isn't one; do not verify it | +| `require` | Require clients to present a certificate, but do not verify it | +| `verify_if_given` | Ask clients for a certificate; allow even if there isn't one, but verify it if there is | +| `require_and_verify` | Require clients to present a valid certificate that is verified | + +The default mode is `require_and_verify` if any TrustedCACerts or TrustedCACertPEMFiles or TrustedLeafCerts are provided; otherwise, the default mode is `require`. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/default_sni)servers/tls_connection_policies/default_sni +DefaultSNI becomes the ServerName in a ClientHello if there is no policy configured for the empty SNI value. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/fallback_sni)servers/tls_connection_policies/fallback_sni +FallbackSNI becomes the ServerName in a ClientHello if the original ServerName doesn't match any certificates in the cache. The use cases for this are very niche; typically if a client is a CDN and passes through the ServerName of the downstream handshake but can accept a certificate with the origin's hostname instead, then you would set this to your origin's hostname. Note that Caddy must be managing a certificate for this name. + +This feature is EXPERIMENTAL and subject to change or removal. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/insecure_secrets_log)servers/tls_connection_policies/insecure_secrets_log +Also known as "SSLKEYLOGFILE", TLS secrets will be written to this file in NSS key log format which can then be parsed by Wireshark and other tools. This is INSECURE as it allows other programs or tools to decrypt TLS connections. However, this capability can be useful for debugging and troubleshooting. **ENABLING THIS LOG COMPROMISES SECURITY!** + +This feature is EXPERIMENTAL and subject to change or removal. + +[🔗](https://caddyserver.com/docs/modules/http#servers/tls_connection_policies/handshake_context)servers/tls_connection_policies/handshake_context +A module that can manipulate the context passed into CertMagic's certificate management functions during TLS handshakes. EXPERIMENTAL - subject to change or removal. + +Fulfilled by modules in namespace: **tls.context** + +[🔗](https://caddyserver.com/docs/modules/http#servers/automatic_https)servers/automatic_https +AutoHTTPS configures or disables automatic HTTPS within this server. HTTPS is enabled automatically and by default when qualifying names are present in a Host matcher and/or when the server is listening only on the HTTPS port. + +AutoHTTPSConfig is used to disable automatic HTTPS or certain aspects of it for a specific server. HTTPS is enabled automatically and by default when qualifying hostnames are available from the config. + +[🔗](https://caddyserver.com/docs/modules/http#servers/automatic_https/disable)servers/automatic_https/disable +If true, automatic HTTPS will be entirely disabled, including certificate management and redirects. + +[🔗](https://caddyserver.com/docs/modules/http#servers/automatic_https/disable_redirects)servers/automatic_https/disable_redirects +If true, only automatic HTTP->HTTPS redirects will be disabled, but other auto-HTTPS features will remain enabled. + +[🔗](https://caddyserver.com/docs/modules/http#servers/automatic_https/disable_certificates)servers/automatic_https/disable_certificates +If true, automatic certificate management will be disabled, but other auto-HTTPS features will remain enabled. + +[🔗](https://caddyserver.com/docs/modules/http#servers/automatic_https/skip)servers/automatic_https/skip +Hosts/domain names listed here will not be included in automatic HTTPS (they will not have certificates loaded nor redirects applied). + +[🔗](https://caddyserver.com/docs/modules/http#servers/automatic_https/skip_certificates)servers/automatic_https/skip_certificates +Hosts/domain names listed here will still be enabled for automatic HTTPS (unless in the Skip list), except that certificates will not be provisioned and managed for these names. + +[🔗](https://caddyserver.com/docs/modules/http#servers/automatic_https/ignore_loaded_certificates)servers/automatic_https/ignore_loaded_certificates +By default, automatic HTTPS will obtain and renew certificates for qualifying hostnames. However, if a certificate with a matching SAN is already loaded into the cache, certificate management will not be enabled. To force automated certificate management regardless of loaded certificates, set this to true. + +[🔗](https://caddyserver.com/docs/modules/http#servers/automatic_https/prefer_wildcard)servers/automatic_https/prefer_wildcard +If true, automatic HTTPS will prefer wildcard names and ignore non-wildcard names if both are available. This allows for writing a config with top-level host matchers without having those names produce certificates. + +[🔗](https://caddyserver.com/docs/modules/http#servers/strict_sni_host)servers/strict_sni_host +If true, will require that a request's Host header match the value of the ServerName sent by the client's TLS ClientHello; often a necessary safeguard when using TLS client authentication. + +[🔗](https://caddyserver.com/docs/modules/http#servers/trusted_proxies)servers/trusted_proxies +A module which provides a source of IP ranges, from which requests should be trusted. By default, no proxies are trusted. + +On its own, this configuration will not do anything, but it can be used as a default set of ranges for handlers or matchers in routes to pick up, instead of needing to configure each of them. See the `reverse_proxy` handler for example, which uses this to trust sensitive incoming `X-Forwarded-*` headers. + +The headers from which the client IP address could be read from. These will be considered in order, with the first good value being used as the client IP. By default, only `X-Forwarded-For` is considered. + +This depends on `trusted_proxies` being configured and the request being validated as coming from a trusted proxy, otherwise the client IP will be set to the direct remote IP address. + +[🔗](https://caddyserver.com/docs/modules/http#servers/trusted_proxies_strict)servers/trusted_proxies_strict +If greater than zero, enables strict ClientIPHeaders (default X-Forwarded-For) parsing. If enabled, the ClientIPHeaders will be parsed from right to left, and the first value that is both valid and doesn't match the trusted proxy list will be used as client IP. If zero, the ClientIPHeaders will be parsed from left to right, and the first value that is a valid IP address will be used as client IP. + +This depends on `trusted_proxies` being configured. This option is disabled by default. + +[🔗](https://caddyserver.com/docs/modules/http#servers/logs)servers/logs +Enables access logging and configures how access logs are handled in this server. To minimally enable access logs, simply set this to a non-null, empty struct. + +ServerLogConfig describes a server's logging configuration. If enabled without customization, all requests to this server are logged to the default logger; logger destinations may be customized per-request-host. + +[🔗](https://caddyserver.com/docs/modules/http#servers/logs/default_logger_name)servers/logs/default_logger_name +The default logger name for all logs emitted by this server for hostnames that are not in the logger_names map. + +[🔗](https://caddyserver.com/docs/modules/http#servers/logs/logger_names)servers/logs/logger_names +LoggerNames maps request hostnames to one or more custom logger names. For example, a mapping of `"example.com": ["example"]` would cause access logs from requests with a Host of example.com to be emitted by a logger named "http.log.access.example". If there are multiple logger names, then the log will be emitted to all of them. If the logger name is an empty, the default logger is used, i.e. the logger "http.log.access". + +Keys must be hostnames (without ports), and may contain wildcards to match subdomains. The value is an array of logger names. + +For backwards compatibility, if the value is a string, it is treated as a single-element array. + +StringArray is a slices of strings, but also accepts a single string as a value when JSON unmarshaling, converting it to a slice of one string. + +[🔗](https://caddyserver.com/docs/modules/http#servers/logs/skip_hosts)servers/logs/skip_hosts +By default, all requests to this server will be logged if access logging is enabled. This field lists the request hosts for which access logging should be disabled. + +[🔗](https://caddyserver.com/docs/modules/http#servers/logs/skip_unmapped_hosts)servers/logs/skip_unmapped_hosts +If true, requests to any host not appearing in the logger_names map will not be logged. + +[🔗](https://caddyserver.com/docs/modules/http#servers/logs/should_log_credentials)servers/logs/should_log_credentials +If true, credentials that are otherwise omitted, will be logged. The definition of credentials is defined by [https://fetch.spec.whatwg.org/#credentials](https://fetch.spec.whatwg.org/#credentials), and this includes some request and response headers, i.e `Cookie`, `Set-Cookie`, `Authorization`, and `Proxy-Authorization`. + +[🔗](https://caddyserver.com/docs/modules/http#servers/logs/trace)servers/logs/trace +Log each individual handler that is invoked. Requires that the log emit at DEBUG level. + +NOTE: This may log the configuration of your HTTP handler modules; do not enable this in insecure contexts when there is sensitive data in the configuration. + +EXPERIMENTAL: Subject to change or removal. + +[🔗](https://caddyserver.com/docs/modules/http#servers/protocols)servers/protocols +Protocols specifies which HTTP protocols to enable. Supported values are: + +* `h1` (HTTP/1.1) +* `h2` (HTTP/2) +* `h2c` (cleartext HTTP/2) +* `h3` (HTTP/3) + +If enabling `h2` or `h2c`, `h1` must also be enabled; this is due to current limitations in the Go standard library. + +HTTP/2 operates only over TLS (HTTPS). HTTP/3 opens a UDP socket to serve QUIC connections. + +H2C operates over plain TCP if the client supports it; however, because this is not implemented by the Go standard library, other server options are not compatible and will not be applied to H2C requests. Do not enable this only to achieve maximum client compatibility. In practice, very few clients implement H2C, and even fewer require it. Enabling H2C can be useful for serving/proxying gRPC if encryption is not possible or desired. + +We recommend for most users to simply let Caddy use the default settings. + +Default: `[h1 h2 h3]` + +[🔗](https://caddyserver.com/docs/modules/http#servers/listen_protocols)servers/listen_protocols +ListenProtocols overrides Protocols for each parallel address in Listen. A nil value or element indicates that Protocols will be used instead. + +[🔗](https://caddyserver.com/docs/modules/http#servers/metrics)servers/metrics +If set, metrics observations will be enabled. This setting is EXPERIMENTAL and subject to change. DEPRECATED: Use the app-level `metrics` field. + +Metrics configures metrics observations. EXPERIMENTAL and subject to change or removal. + +[🔗](https://caddyserver.com/docs/modules/http#servers/metrics/per_host)servers/metrics/per_host +Enable per-host metrics. Enabling this option may incur high-memory consumption, depending on the number of hosts managed by Caddy. + +[🔗](https://caddyserver.com/docs/modules/http#metrics)metrics +If set, metrics observations will be enabled. This setting is EXPERIMENTAL and subject to change. + +Metrics configures metrics observations. EXPERIMENTAL and subject to change or removal. + +[🔗](https://caddyserver.com/docs/modules/http#metrics/per_host)metrics/per_host +Enable per-host metrics. Enabling this option may incur high-memory consumption, depending on the number of hosts managed by Caddy. diff --git a/docs/caddy/modules/http.precompressed.br.md b/docs/caddy/modules/http.precompressed.br.md new file mode 100644 index 0000000..1de8973 --- /dev/null +++ b/docs/caddy/modules/http.precompressed.br.md @@ -0,0 +1,126 @@ +Title: Module http.precompressed.br - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.precompressed.br + +Markdown Content: +Module http.precompressed.br - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.precompressed.br +============================ + + There is more than one module named **Module http.precompressed.br**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.precompressed.br#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.precompressed.br#docs "Direct link") +---------------------------------------------------------------------------------------------- + +http.precompressed.br provides the file extension for files precompressed with brotli encoding. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.precompressed.gzip.md b/docs/caddy/modules/http.precompressed.gzip.md new file mode 100644 index 0000000..32355f1 --- /dev/null +++ b/docs/caddy/modules/http.precompressed.gzip.md @@ -0,0 +1,41 @@ +Title: Module http.precompressed.gzip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.precompressed.gzip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.precompressed.gzip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.precompressed.gzip#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "level": 0}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.precompressed.gzip#docs "Direct link") +------------------------------------------------------------------------------------------------ + +http.precompressed.gzip provides the file extension for files precompressed with gzip encoding. + +[🔗](https://caddyserver.com/docs/modules/http.precompressed.gzip#level)level +There are no docs for this property. diff --git a/docs/caddy/modules/http.precompressed.zstd.md b/docs/caddy/modules/http.precompressed.zstd.md new file mode 100644 index 0000000..df22768 --- /dev/null +++ b/docs/caddy/modules/http.precompressed.zstd.md @@ -0,0 +1,41 @@ +Title: Module http.precompressed.zstd - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.precompressed.zstd + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.precompressed.zstd**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.precompressed.zstd#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "level": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.precompressed.zstd#docs "Direct link") +------------------------------------------------------------------------------------------------ + +http.precompressed.zstd provides the file extension for files precompressed with zstandard encoding. + +[🔗](https://caddyserver.com/docs/modules/http.precompressed.zstd#level)level +The compression level. Accepted values: fastest, better, best, default. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.client_ip_hash.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.client_ip_hash.md new file mode 100644 index 0000000..39ea8b4 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.client_ip_hash.md @@ -0,0 +1,38 @@ +Title: Module http.reverse_proxy.selection_policies.client_ip_hash - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.client_ip_hash + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.selection_policies.client_ip_hash**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.client_ip_hash#docs "Direct link") +----------------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.client_ip_hash#docs "Direct link") +----------------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.client_ip_hash is a policy that selects a host based on hashing the client IP of the request, as determined by the HTTP app's trusted proxies settings. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.cookie.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.cookie.md new file mode 100644 index 0000000..ef70a97 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.cookie.md @@ -0,0 +1,52 @@ +Title: Module http.reverse_proxy.selection_policies.cookie - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.selection_policies.cookie**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie#docs "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +`{▾ "name": "", "secret": "", "max_age": 0, "fallback": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie#docs "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.cookie is a policy that selects a host based on a given cookie name. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie#name)name +The HTTP cookie name whose value is to be hashed and used for upstream selection. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie#secret)secret +Secret to hash (Hmac256) chosen upstream in cookie + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie#max_age)max_age +The cookie's Max-Age before it expires. Default is no expiry. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie#fallback)fallback +The fallback policy to use if the cookie is not present. Defaults to `random`. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.first.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.first.md new file mode 100644 index 0000000..dd16567 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.first.md @@ -0,0 +1,38 @@ +Title: Module http.reverse_proxy.selection_policies.first - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.first + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.selection_policies.first**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.first#docs "Direct link") +-------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.first#docs "Direct link") +-------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.first is a policy that selects the first available host. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.header.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.header.md new file mode 100644 index 0000000..abc5029 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.header.md @@ -0,0 +1,149 @@ +Title: Module http.reverse_proxy.selection_policies.header - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.header + +Markdown Content: +Module http.reverse_proxy.selection_policies.header - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.reverse_proxy.selection_policies.header +=================================================== + + There is more than one module named **Module http.reverse_proxy.selection_policies.header**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.header#docs "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "field": "", "fallback": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.header#docs "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.header is a policy that selects a host based on a given request header. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.header#field)field +The HTTP header field whose value is to be hashed and used for upstream selection. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.header#fallback)fallback +The fallback policy to use if the header is not present. Defaults to `random`. + +Fulfilled by modules in namespace: **http.reverse_proxy.selection_policies** + +* [client_ip_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.client_ip_hash) +* [cookie](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie) +* [first](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.first) +* [header](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.header) +* [ip_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.ip_hash) +* [least_conn](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.least_conn) +* [query](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.query) +* [random](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random) +* [random_choose](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random_choose) +* [round_robin](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.round_robin) +* [uri_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.uri_hash) +* [weighted_round_robin](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.weighted_round_robin) + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fhttp.reverse_proxy.selection_policies.header&r=&sid=GVMGKAKP&qs=%7B%7D&cid=4488638) diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.ip_hash.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.ip_hash.md new file mode 100644 index 0000000..f3de270 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.ip_hash.md @@ -0,0 +1,38 @@ +Title: Module http.reverse_proxy.selection_policies.ip_hash - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.ip_hash + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.selection_policies.ip_hash**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.ip_hash#docs "Direct link") +---------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.ip_hash#docs "Direct link") +---------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.ip_hash is a policy that selects a host based on hashing the remote IP of the request. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.least_conn.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.least_conn.md new file mode 100644 index 0000000..5da7498 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.least_conn.md @@ -0,0 +1,38 @@ +Title: Module http.reverse_proxy.selection_policies.least_conn - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.least_conn + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.selection_policies.least_conn**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.least_conn#docs "Direct link") +------------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.least_conn#docs "Direct link") +------------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.least_conn is a policy that selects the host with the least active requests. If multiple hosts have the same fewest number, one is chosen randomly. The term "conn" or "connection" is used in this policy name due to its similar meaning in other software, but our load balancer actually counts active requests rather than connections, since these days requests are multiplexed onto shared connections. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.query.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.query.md new file mode 100644 index 0000000..8b9b640 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.query.md @@ -0,0 +1,147 @@ +Title: Module http.reverse_proxy.selection_policies.query - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.query + +Markdown Content: +Module http.reverse_proxy.selection_policies.query - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.reverse_proxy.selection_policies.query +================================================== + + There is more than one module named **Module http.reverse_proxy.selection_policies.query**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.query#docs "Direct link") +-------------------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "key": "", "fallback": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.query#docs "Direct link") +-------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.query is a policy that selects a host based on a given request query parameter. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.query#key)key +The query key whose value is to be hashed and used for upstream selection. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.query#fallback)fallback +The fallback policy to use if the query key is not present. Defaults to `random`. + +Fulfilled by modules in namespace: **http.reverse_proxy.selection_policies** + +* [client_ip_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.client_ip_hash) +* [cookie](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.cookie) +* [first](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.first) +* [header](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.header) +* [ip_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.ip_hash) +* [least_conn](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.least_conn) +* [query](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.query) +* [random](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random) +* [random_choose](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random_choose) +* [round_robin](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.round_robin) +* [uri_hash](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.uri_hash) +* [weighted_round_robin](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.weighted_round_robin) + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.random.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.random.md new file mode 100644 index 0000000..58dd2c7 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.random.md @@ -0,0 +1,38 @@ +Title: Module http.reverse_proxy.selection_policies.random - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.selection_policies.random**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random#docs "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random#docs "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.random is a policy that selects an available host at random. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.random_choose.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.random_choose.md new file mode 100644 index 0000000..87b4952 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.random_choose.md @@ -0,0 +1,41 @@ +Title: Module http.reverse_proxy.selection_policies.random_choose - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random_choose + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.selection_policies.random_choose**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random_choose#docs "Direct link") +---------------------------------------------------------------------------------------------------------------------------- + +`{▾ "choose": 0}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random_choose#docs "Direct link") +---------------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.random_choose is a policy that selects two or more available hosts at random, then chooses the one with the least load. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.random_choose#choose)choose +The size of the sub-pool created from the larger upstream pool. The default value is 2 and the maximum at selection time is the size of the upstream pool. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.round_robin.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.round_robin.md new file mode 100644 index 0000000..b046379 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.round_robin.md @@ -0,0 +1,38 @@ +Title: Module http.reverse_proxy.selection_policies.round_robin - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.round_robin + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.selection_policies.round_robin**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.round_robin#docs "Direct link") +-------------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.round_robin#docs "Direct link") +-------------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.round_robin is a policy that selects a host based on round-robin ordering. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.uri_hash.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.uri_hash.md new file mode 100644 index 0000000..ecada8f --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.uri_hash.md @@ -0,0 +1,38 @@ +Title: Module http.reverse_proxy.selection_policies.uri_hash - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.uri_hash + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.selection_policies.uri_hash**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.uri_hash#docs "Direct link") +----------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.uri_hash#docs "Direct link") +----------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.uri_hash is a policy that selects a host by hashing the request URI. diff --git a/docs/caddy/modules/http.reverse_proxy.selection_policies.weighted_round_robin.md b/docs/caddy/modules/http.reverse_proxy.selection_policies.weighted_round_robin.md new file mode 100644 index 0000000..292c1e2 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.selection_policies.weighted_round_robin.md @@ -0,0 +1,41 @@ +Title: Module http.reverse_proxy.selection_policies.weighted_round_robin - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.weighted_round_robin + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.selection_policies.weighted_round_robin**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.weighted_round_robin#docs "Direct link") +----------------------------------------------------------------------------------------------------------------------------------- + +`{▾ "weights": [0]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.weighted_round_robin#docs "Direct link") +----------------------------------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.selection_policies.weighted_round_robin is a policy that selects a host based on weighted round-robin ordering. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.selection_policies.weighted_round_robin#weights)weights +The weight of each upstream in order, corresponding with the list of upstreams configured. diff --git a/docs/caddy/modules/http.reverse_proxy.transport.aws.md b/docs/caddy/modules/http.reverse_proxy.transport.aws.md new file mode 100644 index 0000000..564cfb9 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.transport.aws.md @@ -0,0 +1,140 @@ +Title: Module http.reverse_proxy.transport.aws - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws + +Markdown Content: +The AWS transport module injects the AWS V4 Signature for requests proxied to AWS services. It also implicitly calculates and sets the `x-amz-content-sha256` header value. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#resolver)resolver +Configures the DNS resolver used to resolve the IP address of upstream hostnames. + +UpstreamResolver holds the set of addresses of DNS resolvers of upstream addresses + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#resolver/addresses)resolver/addresses +The addresses of DNS resolvers to use when looking up the addresses of proxy upstreams. It accepts [network addresses](https://caddyserver.com/docs/conventions#network-addresses) with port range of only 1. If the host is an IP address, it will be dialed directly to resolve the upstream server. If the host is not an IP address, the addresses are resolved using the [name resolution convention](https://golang.org/pkg/net/#hdr-Name_Resolution) of the Go standard library. If the array contains more than 1 resolver address, one is chosen at random. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls)tls +Configures TLS to the upstream. Setting this to an empty struct is sufficient to enable TLS with reasonable defaults. + +TLSConfig holds configuration related to the TLS configuration for the transport/client. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls/root_ca_pool)tls/root_ca_pool +Optional list of base64-encoded DER-encoded CA certificates to trust. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls/root_ca_pem_files)tls/root_ca_pem_files +List of PEM-encoded CA certificate files to add to the same trust store as RootCAPool (or root_ca_pool in the JSON). + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls/client_certificate_file)tls/client_certificate_file +PEM-encoded client certificate filename to present to servers. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls/client_certificate_key_file)tls/client_certificate_key_file +PEM-encoded key to use with the client certificate. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls/client_certificate_automate)tls/client_certificate_automate +If specified, Caddy will use and automate a client certificate with this subject name. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls/insecure_skip_verify)tls/insecure_skip_verify +If true, TLS verification of server certificates will be disabled. This is insecure and may be removed in the future. Do not use this option except in testing or local development environments. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls/handshake_timeout)tls/handshake_timeout +The duration to allow a TLS handshake to a server. Default: No timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls/server_name)tls/server_name +The server name used when verifying the certificate received in the TLS handshake. By default, this will use the upstream address' host part. You only need to override this if your upstream address does not match the certificate the upstream is likely to use. For example if the upstream address is an IP address, then you would need to configure this to the hostname being served by the upstream server. Currently, this does not support placeholders because the TLS config is not provisioned on each connection, so a static value must be used. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls/renegotiation)tls/renegotiation +TLS renegotiation level. TLS renegotiation is the act of performing subsequent handshakes on a connection after the first. The level can be: + +* "never": (the default) disables renegotiation. +* "once": allows a remote server to request renegotiation once per connection. +* "freely": allows a remote server to repeatedly request renegotiation. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#tls/except_ports)tls/except_ports +Skip TLS ports specifies a list of upstream ports on which TLS should not be attempted even if it is configured. Handy when using dynamic upstreams that return HTTP and HTTPS endpoints too. When specified, TLS will automatically be configured on the transport. The value can be a list of any valid tcp port numbers, default empty. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#keep_alive)keep_alive +Configures HTTP Keep-Alive (enabled by default). Should only be necessary if rigorous testing has shown that tuning this helps improve performance. + +KeepAlive holds configuration pertaining to HTTP Keep-Alive. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#keep_alive/enabled)keep_alive/enabled +Whether HTTP Keep-Alive is enabled. Default: `true` + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#keep_alive/probe_interval)keep_alive/probe_interval +How often to probe for liveness. Default: `30s`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#keep_alive/max_idle_conns)keep_alive/max_idle_conns +Maximum number of idle connections. Default: `0`, which means no limit. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#keep_alive/max_idle_conns_per_host)keep_alive/max_idle_conns_per_host +Maximum number of idle connections per host. Default: `32`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#keep_alive/idle_timeout)keep_alive/idle_timeout +How long connections should be kept alive when idle. Default: `2m`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#compression)compression +Whether to enable compression to upstream. Default: true + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#max_conns_per_host)max_conns_per_host +Maximum number of connections per host. Default: 0 (no limit) + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#proxy_protocol)proxy_protocol +If non-empty, which PROXY protocol version to send when connecting to an upstream. Default: off. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#dial_timeout)dial_timeout +How long to wait before timing out trying to connect to an upstream. Default: `3s`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#dial_fallback_delay)dial_fallback_delay +How long to wait before spawning an RFC 6555 Fast Fallback connection. A negative value disables this. Default: `300ms`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +How long to wait for reading response headers from server. Default: No timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#expect_continue_timeout)expect_continue_timeout +The length of time to wait for a server's first response headers after fully writing the request headers if the request has a header "Expect: 100-continue". Default: No timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +The maximum bytes to read from response headers. Default: `10MiB`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#write_buffer_size)write_buffer_size +The size of the write buffer in bytes. Default: `4KiB`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#read_buffer_size)read_buffer_size +The size of the read buffer in bytes. Default: `4KiB`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#read_timeout)read_timeout +The maximum time to wait for next read from backend. Default: no timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#write_timeout)write_timeout +The maximum time to wait for next write to backend. Default: no timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#versions)versions +The versions of HTTP to support. As a special case, "h2c" can be specified to use H2C (HTTP/2 over Cleartext) to the upstream (this feature is experimental and subject to change or removal). Default: ["1.1", "2"] + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#access_key_id)access_key_id +One part of the AWS security credentials identifying the service user + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#secret_access_key)secret_access_key +The other part of the AWS security credentials + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#region)region +The AWS region, e.g. us-east-2 + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.aws#service)service +The upstream AWS service diff --git a/docs/caddy/modules/http.reverse_proxy.transport.fastcgi.md b/docs/caddy/modules/http.reverse_proxy.transport.fastcgi.md new file mode 100644 index 0000000..2958399 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.transport.fastcgi.md @@ -0,0 +1,38 @@ +Title: Module http.reverse_proxy.transport.fastcgi - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi + +Markdown Content: +http.reverse_proxy.transport.fastcgi facilitates FastCGI communication. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi#root)root +Use this directory as the fastcgi root directory. Defaults to the root directory of the parent virtual host. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi#split_path)split_path +The path in the URL will be split into two, with the first piece ending with the value of SplitPath. The first piece will be assumed as the actual resource (CGI script) name, and the second piece will be set to PATH_INFO for the CGI script to use. + +Future enhancements should be careful to avoid CVE-2019-11043, which can be mitigated with use of a try_files-like behavior that 404s if the fastcgi path info is not found. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi#resolve_root_symlink)resolve_root_symlink +Path declared as root directory will be resolved to its absolute value after the evaluation of any symbolic links. Due to the nature of PHP opcache, root directory path is cached: when using a symlinked directory as root this could generate errors when symlink is changed without php-fpm being restarted; enabling this directive will set $_SERVER['DOCUMENT_ROOT'] to the real directory path. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi#env)env +Extra environment variables. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi#dial_timeout)dial_timeout +The duration used to set a deadline when connecting to an upstream. Default: `3s`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi#read_timeout)read_timeout +The duration used to set a deadline when reading from the FastCGI server. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi#write_timeout)write_timeout +The duration used to set a deadline when sending to the FastCGI server. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.fastcgi#capture_stderr)capture_stderr +Capture and log any messages sent by the upstream on stderr. Logs at WARN level by default. If the response has a 4xx or 5xx status ERROR level will be used instead. diff --git a/docs/caddy/modules/http.reverse_proxy.transport.http.md b/docs/caddy/modules/http.reverse_proxy.transport.http.md new file mode 100644 index 0000000..5b7f71c --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.transport.http.md @@ -0,0 +1,148 @@ +Title: Module http.reverse_proxy.transport.http - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http + +Markdown Content: +http.reverse_proxy.transport.http is essentially a configuration wrapper for http.Transport. It defines a JSON structure useful when configuring the HTTP transport for Caddy's reverse proxy. It builds its http.Transport at Provision. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#resolver)resolver +Configures the DNS resolver used to resolve the IP address of upstream hostnames. + +UpstreamResolver holds the set of addresses of DNS resolvers of upstream addresses + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#resolver/addresses)resolver/addresses +The addresses of DNS resolvers to use when looking up the addresses of proxy upstreams. It accepts [network addresses](https://caddyserver.com/docs/conventions#network-addresses) with port range of only 1. If the host is an IP address, it will be dialed directly to resolve the upstream server. If the host is not an IP address, the addresses are resolved using the [name resolution convention](https://golang.org/pkg/net/#hdr-Name_Resolution) of the Go standard library. If the array contains more than 1 resolver address, one is chosen at random. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls)tls +Configures TLS to the upstream. Setting this to an empty struct is sufficient to enable TLS with reasonable defaults. + +TLSConfig holds configuration related to the TLS configuration for the transport/client. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/ca)tls/ca +Certificate authority module which provides the certificate pool of trusted certificates + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/root_ca_pool)tls/root_ca_pool +Deprecated: Use the `ca` field with the `tls.ca_pool.source.inline` module instead. Optional list of base64-encoded DER-encoded CA certificates to trust. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/root_ca_pem_files)tls/root_ca_pem_files +Deprecated: Use the `ca` field with the `tls.ca_pool.source.file` module instead. List of PEM-encoded CA certificate files to add to the same trust store as RootCAPool (or root_ca_pool in the JSON). + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/client_certificate_file)tls/client_certificate_file +PEM-encoded client certificate filename to present to servers. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/client_certificate_key_file)tls/client_certificate_key_file +PEM-encoded key to use with the client certificate. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/client_certificate_automate)tls/client_certificate_automate +If specified, Caddy will use and automate a client certificate with this subject name. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/insecure_skip_verify)tls/insecure_skip_verify +If true, TLS verification of server certificates will be disabled. This is insecure and may be removed in the future. Do not use this option except in testing or local development environments. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/handshake_timeout)tls/handshake_timeout +The duration to allow a TLS handshake to a server. Default: No timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/server_name)tls/server_name +The server name used when verifying the certificate received in the TLS handshake. By default, this will use the upstream address' host part. You only need to override this if your upstream address does not match the certificate the upstream is likely to use. For example if the upstream address is an IP address, then you would need to configure this to the hostname being served by the upstream server. Currently, this does not support placeholders because the TLS config is not provisioned on each connection, so a static value must be used. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/renegotiation)tls/renegotiation +TLS renegotiation level. TLS renegotiation is the act of performing subsequent handshakes on a connection after the first. The level can be: + +* "never": (the default) disables renegotiation. +* "once": allows a remote server to request renegotiation once per connection. +* "freely": allows a remote server to repeatedly request renegotiation. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/except_ports)tls/except_ports +Skip TLS ports specifies a list of upstream ports on which TLS should not be attempted even if it is configured. Handy when using dynamic upstreams that return HTTP and HTTPS endpoints too. When specified, TLS will automatically be configured on the transport. The value can be a list of any valid tcp port numbers, default empty. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#tls/curves)tls/curves +The list of elliptic curves to support. Caddy's defaults are modern and secure. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#keep_alive)keep_alive +Configures HTTP Keep-Alive (enabled by default). Should only be necessary if rigorous testing has shown that tuning this helps improve performance. + +KeepAlive holds configuration pertaining to HTTP Keep-Alive. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#keep_alive/enabled)keep_alive/enabled +Whether HTTP Keep-Alive is enabled. Default: `true` + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#keep_alive/probe_interval)keep_alive/probe_interval +How often to probe for liveness. Default: `30s`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#keep_alive/max_idle_conns)keep_alive/max_idle_conns +Maximum number of idle connections. Default: `0`, which means no limit. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#keep_alive/max_idle_conns_per_host)keep_alive/max_idle_conns_per_host +Maximum number of idle connections per host. Default: `32`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#keep_alive/idle_timeout)keep_alive/idle_timeout +How long connections should be kept alive when idle. Default: `2m`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#compression)compression +Whether to enable compression to upstream. Default: true + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#max_conns_per_host)max_conns_per_host +Maximum number of connections per host. Default: 0 (no limit) + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#proxy_protocol)proxy_protocol +If non-empty, which PROXY protocol version to send when connecting to an upstream. Default: off. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#forward_proxy_url)forward_proxy_url +URL to the server that the HTTP transport will use to proxy requests to the upstream. See http.Transport.Proxy for information regarding supported protocols. This value takes precedence over `HTTP_PROXY`, etc. + +Providing a value to this parameter results in requests flowing through the reverse_proxy in the following way: + +User Agent -> reverse_proxy -> forward_proxy_url -> upstream + +Default: http.ProxyFromEnvironment + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#dial_timeout)dial_timeout +How long to wait before timing out trying to connect to an upstream. Default: `3s`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#dial_fallback_delay)dial_fallback_delay +How long to wait before spawning an RFC 6555 Fast Fallback connection. A negative value disables this. Default: `300ms`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +How long to wait for reading response headers from server. Default: No timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#expect_continue_timeout)expect_continue_timeout +The length of time to wait for a server's first response headers after fully writing the request headers if the request has a header "Expect: 100-continue". Default: No timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +The maximum bytes to read from response headers. Default: `10MiB`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#write_buffer_size)write_buffer_size +The size of the write buffer in bytes. Default: `4KiB`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#read_buffer_size)read_buffer_size +The size of the read buffer in bytes. Default: `4KiB`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#read_timeout)read_timeout +The maximum time to wait for next read from backend. Default: no timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#write_timeout)write_timeout +The maximum time to wait for next write to backend. Default: no timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#versions)versions +The versions of HTTP to support. As a special case, "h2c" can be specified to use H2C (HTTP/2 over Cleartext) to the upstream (this feature is experimental and subject to change or removal). Default: ["1.1", "2"] + +EXPERIMENTAL: "3" enables HTTP/3, but it must be the only version specified if enabled. Additionally, HTTPS must be enabled to the upstream as HTTP/3 requires TLS. Subject to change or removal while experimental. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http#local_address)local_address +Specify the address to bind to when connecting to an upstream. In other words, it is the address the upstream sees as the remote address. diff --git a/docs/caddy/modules/http.reverse_proxy.transport.http_ntlm.md b/docs/caddy/modules/http.reverse_proxy.transport.http_ntlm.md new file mode 100644 index 0000000..ee05f72 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.transport.http_ntlm.md @@ -0,0 +1,111 @@ +Title: Module http.reverse_proxy.transport.http_ntlm - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm + +Markdown Content: +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls)tls +Configures TLS to the upstream. Setting this to an empty struct is sufficient to enable TLS with reasonable defaults. + +TLSConfig holds configuration related to the TLS configuration for the transport/client. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/ca)tls/ca +Certificate authority module which provides the certificate pool of trusted certificates + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/root_ca_pool)tls/root_ca_pool +Deprecated: Use the `ca` field with the `tls.ca_pool.source.inline` module instead. Optional list of base64-encoded DER-encoded CA certificates to trust. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/root_ca_pem_files)tls/root_ca_pem_files +Deprecated: Use the `ca` field with the `tls.ca_pool.source.file` module instead. List of PEM-encoded CA certificate files to add to the same trust store as RootCAPool (or root_ca_pool in the JSON). + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/client_certificate_file)tls/client_certificate_file +PEM-encoded client certificate filename to present to servers. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/client_certificate_key_file)tls/client_certificate_key_file +PEM-encoded key to use with the client certificate. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/client_certificate_automate)tls/client_certificate_automate +If specified, Caddy will use and automate a client certificate with this subject name. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/insecure_skip_verify)tls/insecure_skip_verify +If true, TLS verification of server certificates will be disabled. This is insecure and may be removed in the future. Do not use this option except in testing or local development environments. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/handshake_timeout)tls/handshake_timeout +The duration to allow a TLS handshake to a server. Default: No timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/server_name)tls/server_name +The server name used when verifying the certificate received in the TLS handshake. By default, this will use the upstream address' host part. You only need to override this if your upstream address does not match the certificate the upstream is likely to use. For example if the upstream address is an IP address, then you would need to configure this to the hostname being served by the upstream server. Currently, this does not support placeholders because the TLS config is not provisioned on each connection, so a static value must be used. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/renegotiation)tls/renegotiation +TLS renegotiation level. TLS renegotiation is the act of performing subsequent handshakes on a connection after the first. The level can be: + +* "never": (the default) disables renegotiation. +* "once": allows a remote server to request renegotiation once per connection. +* "freely": allows a remote server to repeatedly request renegotiation. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/except_ports)tls/except_ports +Skip TLS ports specifies a list of upstream ports on which TLS should not be attempted even if it is configured. Handy when using dynamic upstreams that return HTTP and HTTPS endpoints too. When specified, TLS will automatically be configured on the transport. The value can be a list of any valid tcp port numbers, default empty. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#tls/curves)tls/curves +The list of elliptic curves to support. Caddy's defaults are modern and secure. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#keep_alive)keep_alive +Configures HTTP Keep-Alive (enabled by default). Should only be necessary if rigorous testing has shown that tuning this helps improve performance. + +KeepAlive holds configuration pertaining to HTTP Keep-Alive. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#keep_alive/enabled)keep_alive/enabled +Whether HTTP Keep-Alive is enabled. Default: `true` + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#keep_alive/probe_interval)keep_alive/probe_interval +How often to probe for liveness. Default: `30s`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#keep_alive/max_idle_conns)keep_alive/max_idle_conns +Maximum number of idle connections. Default: `0`, which means no limit. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#keep_alive/max_idle_conns_per_host)keep_alive/max_idle_conns_per_host +Maximum number of idle connections per host. Default: `32`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#keep_alive/idle_timeout)keep_alive/idle_timeout +How long connections should be kept alive when idle. Default: `2m`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#compression)compression +Whether to enable compression to upstream. Default: true + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#max_conns_per_host)max_conns_per_host +Maximum number of connections per host. Default: 0 (no limit) + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#dial_timeout)dial_timeout +How long to wait before timing out trying to connect to an upstream. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#dial_fallback_delay)dial_fallback_delay +How long to wait before spawning an RFC 6555 Fast Fallback connection. A negative value disables this. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +How long to wait for reading response headers from server. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#expect_continue_timeout)expect_continue_timeout +The length of time to wait for a server's first response headers after fully writing the request headers if the request has a header "Expect: 100-continue". + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +The maximum bytes to read from response headers. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#write_buffer_size)write_buffer_size +The size of the write buffer in bytes. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#read_buffer_size)read_buffer_size +The size of the read buffer in bytes. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.http_ntlm#versions)versions +The versions of HTTP to support. As a special case, "h2c" can be specified to use H2C (HTTP/2 over Cleartext) to the upstream (this feature is experimental and subject to change or removal). Default: ["1.1", "2"] diff --git a/docs/caddy/modules/http.reverse_proxy.transport.scgi.md b/docs/caddy/modules/http.reverse_proxy.transport.scgi.md new file mode 100644 index 0000000..ea00bfc --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.transport.scgi.md @@ -0,0 +1,148 @@ +Title: Module http.reverse_proxy.transport.scgi - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.transport.scgi + +Markdown Content: +Module http.reverse_proxy.transport.scgi - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.reverse_proxy.transport.scgi +======================================== + + There is more than one module named **Module http.reverse_proxy.transport.scgi**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.scgi#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/Elegant996/scgi-transport + +``` +{▾ "env": { + "": "" + }, "dial_timeout": 0, "read_timeout": 0, "write_timeout": 0} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/Elegant996/scgi-transport](https://github.com/Elegant996/scgi-transport)** + +**Custom builds:**`xcaddy build --with github.com/Elegant996/scgi-transport` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.scgi#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.transport.scgi facilitates SCGI communication. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.scgi#env)env +Extra environment variables. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.scgi#dial_timeout)dial_timeout +The duration used to set a deadline when connecting to an upstream. Default: `3s`. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.scgi#read_timeout)read_timeout +The duration used to set a deadline when reading from the SCGI server. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.scgi#write_timeout)write_timeout +The duration used to set a deadline when sending to the SCGI server. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.reverse_proxy.transport.uwsgi.md b/docs/caddy/modules/http.reverse_proxy.transport.uwsgi.md new file mode 100644 index 0000000..63c69bb --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.transport.uwsgi.md @@ -0,0 +1,159 @@ +Title: Module http.reverse_proxy.transport.uwsgi - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.transport.uwsgi + +Markdown Content: +Module http.reverse_proxy.transport.uwsgi - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module http.reverse_proxy.transport.uwsgi +========================================= + + There is more than one module named **http.reverse_proxy.transport.uwsgi**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.uwsgi#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/BadAimWeeb/caddy-uwsgi-transport + +``` +{▾ "uwsgi_params": { + "": "" + }} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/BadAimWeeb/caddy-uwsgi-transport](https://github.com/BadAimWeeb/caddy-uwsgi-transport)** + +**Custom builds:**`xcaddy build --with github.com/BadAimWeeb/caddy-uwsgi-transport` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.uwsgi#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +The uwsgi transport module allows you to proxy requests to an uWSGI server with uwsgi protocol. + +Caddyfile syntax is also supported: + +```caddyfile +reverse_proxy [] [] { + transport uwsgi { + uwsgi_param # in case you need to set uwsgi params (for example UWSGI_SCRIPT) + } + } +``` + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.uwsgi#uwsgi_params)uwsgi_params +UWSGIParams is a map of static uwsgi params to be passed to uWSGI server. This is useful for example, setting UWSGI_SCRIPT (uWSGI may require this for some request) and many other params. + +▸github.com/wxh06/caddy-uwsgi-transport + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/wxh06/caddy-uwsgi-transport](https://github.com/wxh06/caddy-uwsgi-transport)** + +**Custom builds:**`xcaddy build --with github.com/wxh06/caddy-uwsgi-transport` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.uwsgi#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/http.reverse_proxy.transport.ziti.md b/docs/caddy/modules/http.reverse_proxy.transport.ziti.md new file mode 100644 index 0000000..a542eeb --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.transport.ziti.md @@ -0,0 +1,45 @@ +Title: Module http.reverse_proxy.transport.ziti - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.transport.ziti + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.transport.ziti**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.ziti#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +`{▾ "identity": "", "service": "", "terminator": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/openziti-test-kitchen/ziti-caddy](https://github.com/openziti-test-kitchen/ziti-caddy)** + +**Custom builds:**`xcaddy build --with github.com/openziti-test-kitchen/ziti-caddy` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.ziti#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.ziti#identity)identity +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.ziti#service)service +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.transport.ziti#terminator)terminator +There are no docs for this property. diff --git a/docs/caddy/modules/http.reverse_proxy.upstreams.a.md b/docs/caddy/modules/http.reverse_proxy.upstreams.a.md new file mode 100644 index 0000000..c267f32 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.upstreams.a.md @@ -0,0 +1,44 @@ +Title: Module http.reverse_proxy.upstreams.a - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a + +Markdown Content: +http.reverse_proxy.upstreams.a provides upstreams from A/AAAA lookups. Results are cached and refreshed at the configured refresh interval. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a#name)name +The domain name to look up. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a#port)port +The port to use with the upstreams. Default: 80 + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a#refresh)refresh +The interval at which to refresh the A lookup. Results are cached between lookups. Default: 1m + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a#resolver)resolver +Configures the DNS resolver used to resolve the domain name to A records. + +UpstreamResolver holds the set of addresses of DNS resolvers of upstream addresses + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a#resolver/addresses)resolver/addresses +The addresses of DNS resolvers to use when looking up the addresses of proxy upstreams. It accepts [network addresses](https://caddyserver.com/docs/conventions#network-addresses) with port range of only 1. If the host is an IP address, it will be dialed directly to resolve the upstream server. If the host is not an IP address, the addresses are resolved using the [name resolution convention](https://golang.org/pkg/net/#hdr-Name_Resolution) of the Go standard library. If the array contains more than 1 resolver address, one is chosen at random. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a#dial_timeout)dial_timeout +If Resolver is configured, how long to wait before timing out trying to connect to the DNS server. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a#dial_fallback_delay)dial_fallback_delay +If Resolver is configured, how long to wait before spawning an RFC 6555 Fast Fallback connection. A negative value disables this. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a#versions)versions +The IP versions to resolve for. By default, both "ipv4" and "ipv6" will be enabled, which correspond to A and AAAA records respectively. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a#versions/ipv4)versions/ipv4 +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a#versions/ipv6)versions/ipv6 +There are no docs for this property. diff --git a/docs/caddy/modules/http.reverse_proxy.upstreams.docker.md b/docs/caddy/modules/http.reverse_proxy.upstreams.docker.md new file mode 100644 index 0000000..55816d9 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.upstreams.docker.md @@ -0,0 +1,38 @@ +Title: Module http.reverse_proxy.upstreams.docker - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.docker + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.upstreams.docker**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.docker#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/invzhi/caddy-docker-upstreams](https://github.com/invzhi/caddy-docker-upstreams)** + +**Custom builds:**`xcaddy build --with github.com/invzhi/caddy-docker-upstreams` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.docker#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +http.reverse_proxy.upstreams.docker provides upstreams from the docker host. diff --git a/docs/caddy/modules/http.reverse_proxy.upstreams.etcd.md b/docs/caddy/modules/http.reverse_proxy.upstreams.etcd.md new file mode 100644 index 0000000..7e66b4e --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.upstreams.etcd.md @@ -0,0 +1,46 @@ +Title: Module http.reverse_proxy.upstreams.etcd - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.etcd + +Markdown Content: +There is more than one module named **Module http.reverse_proxy.upstreams.etcd**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.etcd#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +Field List +---------- + +`{▾ "endpoints": [""], "key": "", "version_key": "", "timeout": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/deanchou/caddy_etcd](https://github.com/deanchou/caddy_etcd)** + +**Custom builds:**`xcaddy build --with github.com/deanchou/caddy_etcd` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.etcd#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.upstreams.etcd is a Caddy module that integrates etcd with reverse_proxy. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.etcd#endpoints)endpoints +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.etcd#key)key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.etcd#version_key)version_key +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.etcd#timeout)timeout +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/modules/http.reverse_proxy.upstreams.multi.md b/docs/caddy/modules/http.reverse_proxy.upstreams.multi.md new file mode 100644 index 0000000..99adf13 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.upstreams.multi.md @@ -0,0 +1,51 @@ +Title: Module http.reverse_proxy.upstreams.multi - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.multi + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module http.reverse_proxy.upstreams.multi**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.multi#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +`{▾ "sources": [{•••}]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.multi#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +http.reverse_proxy.upstreams.multi is a single dynamic upstream source that aggregates the results of multiple dynamic upstream sources. All configured sources will be queried in order, with their results appended to the end of the list. Errors returned from individual sources will be logged and the next source will continue to be invoked. + +This module makes it easy to implement redundant cluster failovers, especially in conjunction with the `first` load balancing policy: if the first source returns an error or no upstreams, the second source's upstreams will be used naturally. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.multi#sources)sources +The list of upstream source modules to get upstreams from. They will be queried in order, with their results appended in the order they are returned. + +Fulfilled by modules in namespace: **http.reverse_proxy.upstreams** + +* [a](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.a) +* [multi](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.multi) +* [srv](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv) +* [docker](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.docker)Non-standard +* [etcd](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.etcd)Non-standard diff --git a/docs/caddy/modules/http.reverse_proxy.upstreams.srv.md b/docs/caddy/modules/http.reverse_proxy.upstreams.srv.md new file mode 100644 index 0000000..49b9539 --- /dev/null +++ b/docs/caddy/modules/http.reverse_proxy.upstreams.srv.md @@ -0,0 +1,47 @@ +Title: Module http.reverse_proxy.upstreams.srv - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv + +Markdown Content: +http.reverse_proxy.upstreams.srv provides upstreams from SRV lookups. The lookup DNS name can be configured either by its individual parts (that is, specifying the service, protocol, and name separately) to form the standard "_service._proto.name" domain, or the domain can be specified directly in name by leaving service and proto empty. See RFC 2782. + +Lookups are cached and refreshed at the configured refresh interval. + +Returned upstreams are sorted by priority and weight. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv#service)service +The service label. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv#proto)proto +The protocol label; either tcp or udp. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv#name)name +The name label; or, if service and proto are empty, the entire domain name to look up. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv#refresh)refresh +The interval at which to refresh the SRV lookup. Results are cached between lookups. Default: 1m + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv#grace_period)grace_period +If > 0 and there is an error with the lookup, continue to use the cached results for up to this long before trying again, (even though they are stale) instead of returning an error to the client. Default: 0s. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv#resolver)resolver +Configures the DNS resolver used to resolve the SRV address to SRV records. + +UpstreamResolver holds the set of addresses of DNS resolvers of upstream addresses + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv#resolver/addresses)resolver/addresses +The addresses of DNS resolvers to use when looking up the addresses of proxy upstreams. It accepts [network addresses](https://caddyserver.com/docs/conventions#network-addresses) with port range of only 1. If the host is an IP address, it will be dialed directly to resolve the upstream server. If the host is not an IP address, the addresses are resolved using the [name resolution convention](https://golang.org/pkg/net/#hdr-Name_Resolution) of the Go standard library. If the array contains more than 1 resolver address, one is chosen at random. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv#dial_timeout)dial_timeout +If Resolver is configured, how long to wait before timing out trying to connect to the DNS server. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/http.reverse_proxy.upstreams.srv#dial_fallback_delay)dial_fallback_delay +If Resolver is configured, how long to wait before spawning an RFC 6555 Fast Fallback connection. A negative value disables this. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/modules/k8s.admission.always_allow.md b/docs/caddy/modules/k8s.admission.always_allow.md new file mode 100644 index 0000000..f3c43e3 --- /dev/null +++ b/docs/caddy/modules/k8s.admission.always_allow.md @@ -0,0 +1,40 @@ +Title: Module k8s.admission.always_allow - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/k8s.admission.always_allow + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module k8s.admission.always_allow**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/k8s.admission.always_allow#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sagikazarmark/caddy-k8s-admission](https://github.com/sagikazarmark/caddy-k8s-admission)** + +**Custom builds:**`xcaddy build --with github.com/sagikazarmark/caddy-k8s-admission` + +Description[🔗](https://caddyserver.com/docs/modules/k8s.admission.always_allow#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +k8s.admission.always_allow is a simple admission webhook controller that always allows requests. + +This is useful for testing or as a default fallback handler. diff --git a/docs/caddy/modules/k8s.admission.always_deny.md b/docs/caddy/modules/k8s.admission.always_deny.md new file mode 100644 index 0000000..87177c4 --- /dev/null +++ b/docs/caddy/modules/k8s.admission.always_deny.md @@ -0,0 +1,40 @@ +Title: Module k8s.admission.always_deny - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/k8s.admission.always_deny + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module k8s.admission.always_deny**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/k8s.admission.always_deny#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sagikazarmark/caddy-k8s-admission](https://github.com/sagikazarmark/caddy-k8s-admission)** + +**Custom builds:**`xcaddy build --with github.com/sagikazarmark/caddy-k8s-admission` + +Description[🔗](https://caddyserver.com/docs/modules/k8s.admission.always_deny#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +k8s.admission.always_deny is a simple admission webhook controller that always rejects requests. + +This is useful for testing or as a default fallback handler. diff --git a/docs/caddy/modules/k8s.admission.annotation_injector.md b/docs/caddy/modules/k8s.admission.annotation_injector.md new file mode 100644 index 0000000..fe15043 --- /dev/null +++ b/docs/caddy/modules/k8s.admission.annotation_injector.md @@ -0,0 +1,47 @@ +Title: Module k8s.admission.annotation_injector - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/k8s.admission.annotation_injector + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module k8s.admission.annotation_injector**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/k8s.admission.annotation_injector#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +``` +{▾ "annotations": { + "": "" + }} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sagikazarmark/caddy-k8s-admission](https://github.com/sagikazarmark/caddy-k8s-admission)** + +**Custom builds:**`xcaddy build --with github.com/sagikazarmark/caddy-k8s-admission` + +Description[🔗](https://caddyserver.com/docs/modules/k8s.admission.annotation_injector#docs "Direct link") +---------------------------------------------------------------------------------------------------------- + +k8s.admission.annotation_injector is an admission webhook [Handler] that injects annotations into Kubernetes resources. + +It uses JSON Patch operations to add the specified annotations to the resource's metadata. + +[🔗](https://caddyserver.com/docs/modules/k8s.admission.annotation_injector#annotations)annotations +Annotations is a map of annotation keys to values that will be injected into resources. diff --git a/docs/caddy/modules/k8s.admission.json_patch.md b/docs/caddy/modules/k8s.admission.json_patch.md new file mode 100644 index 0000000..7d48597 --- /dev/null +++ b/docs/caddy/modules/k8s.admission.json_patch.md @@ -0,0 +1,145 @@ +Title: Module k8s.admission.json_patch - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/k8s.admission.json_patch + +Markdown Content: +Module k8s.admission.json_patch - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module k8s.admission.json_patch +=============================== + + There is more than one module named **Module k8s.admission.json_patch**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/k8s.admission.json_patch#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/sagikazarmark/caddy-k8s-admission + +`{▾ "patches": [{▾ "op": "", "path": "", "value": , "from": "" }]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sagikazarmark/caddy-k8s-admission](https://github.com/sagikazarmark/caddy-k8s-admission)** + +**Custom builds:**`xcaddy build --with github.com/sagikazarmark/caddy-k8s-admission` + +Description[🔗](https://caddyserver.com/docs/modules/k8s.admission.json_patch#docs "Direct link") +------------------------------------------------------------------------------------------------- + +k8s.admission.json_patch is an admission webhook controller that applies custom JSON patches to resources. + +It accepts a list of JSON Patch operations and applies them to incoming resources. Supports all standard JSON Patch operations: add, remove, replace, move, copy, test. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/k8s.admission.json_patch#patches)patches +Patches is a list of JSON Patch operations to apply to resources. + +JSONPatch represents a single JSON Patch operation. + +[🔗](https://caddyserver.com/docs/modules/k8s.admission.json_patch#patches/op)patches/op +Op is the operation to perform (add, remove, replace, move, copy, test). + +[🔗](https://caddyserver.com/docs/modules/k8s.admission.json_patch#patches/path)patches/path +Path is the JSON Pointer path where the operation should be applied. + +[🔗](https://caddyserver.com/docs/modules/k8s.admission.json_patch#patches/value)patches/value +Value is the value to use for the operation (not used for remove and test operations). + +[🔗](https://caddyserver.com/docs/modules/k8s.admission.json_patch#patches/from)patches/from +From is the source path for move and copy operations. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/k8s.admission.validation_policy.md b/docs/caddy/modules/k8s.admission.validation_policy.md new file mode 100644 index 0000000..e240dd2 --- /dev/null +++ b/docs/caddy/modules/k8s.admission.validation_policy.md @@ -0,0 +1,48 @@ +Title: Module k8s.admission.validation_policy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/k8s.admission.validation_policy + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module k8s.admission.validation_policy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/k8s.admission.validation_policy#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +`{▾ "expression": "", "action": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/sagikazarmark/caddy-k8s-admission](https://github.com/sagikazarmark/caddy-k8s-admission)** + +**Custom builds:**`xcaddy build --with github.com/sagikazarmark/caddy-k8s-admission` + +Description[🔗](https://caddyserver.com/docs/modules/k8s.admission.validation_policy#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +k8s.admission.validation_policy is an admission webhook controller that validates resources using CEL expressions. + +It evaluates the provided expression against the resource and takes the specified action. + +[🔗](https://caddyserver.com/docs/modules/k8s.admission.validation_policy#expression)expression +Expression is the validation expression to evaluate against the resource. + +[🔗](https://caddyserver.com/docs/modules/k8s.admission.validation_policy#action)action +Action is the action to take when the expression matches (allow or deny). + +PolicyAction represents the action to take when a validation policy is matched. diff --git a/docs/caddy/modules/layer4.handlers.echo.md b/docs/caddy/modules/layer4.handlers.echo.md new file mode 100644 index 0000000..ff47bf3 --- /dev/null +++ b/docs/caddy/modules/layer4.handlers.echo.md @@ -0,0 +1,128 @@ +Title: Module layer4.handlers.echo - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.handlers.echo + +Markdown Content: +Module layer4.handlers.echo - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module layer4.handlers.echo +=========================== + + There is more than one module named **Module layer4.handlers.echo**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.handlers.echo#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mholt/caddy-l4 + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4echo` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.handlers.echo#docs "Direct link") +--------------------------------------------------------------------------------------------- + +layer4.handlers.echo is a simple handler that writes what it reads. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Flayer4.handlers.echo&r=&sid=GVMGKAKP&qs=%7B%7D&cid=35125592) diff --git a/docs/caddy/modules/layer4.handlers.proxy.md b/docs/caddy/modules/layer4.handlers.proxy.md new file mode 100644 index 0000000..e1e5752 --- /dev/null +++ b/docs/caddy/modules/layer4.handlers.proxy.md @@ -0,0 +1,124 @@ +Title: Module layer4.handlers.proxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.handlers.proxy + +Markdown Content: +layer4.handlers.proxy is a handler that can proxy connections. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams)upstreams +Upstreams is the list of backends to proxy to. + +Upstream represents a proxy upstream. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/dial)upstreams/dial +The network addresses to dial. Supports placeholders, but not port ranges currently (each address must be exactly 1 socket). + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls)upstreams/tls +Set this field to enable TLS to the upstream. + +TLSConfig holds configuration related to the TLS configuration for the transport/client. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/ca)upstreams/tls/ca +Certificate authority module which provides the certificate pool of trusted certificates + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/root_ca_pool)upstreams/tls/root_ca_pool +Deprecated: Use the `ca` field with the `tls.ca_pool.source.inline` module instead. Optional list of base64-encoded DER-encoded CA certificates to trust. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/root_ca_pem_files)upstreams/tls/root_ca_pem_files +Deprecated: Use the `ca` field with the `tls.ca_pool.source.file` module instead. List of PEM-encoded CA certificate files to add to the same trust store as RootCAPool (or root_ca_pool in the JSON). + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/client_certificate_file)upstreams/tls/client_certificate_file +PEM-encoded client certificate filename to present to servers. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/client_certificate_key_file)upstreams/tls/client_certificate_key_file +PEM-encoded key to use with the client certificate. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/client_certificate_automate)upstreams/tls/client_certificate_automate +If specified, Caddy will use and automate a client certificate with this subject name. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/insecure_skip_verify)upstreams/tls/insecure_skip_verify +If true, TLS verification of server certificates will be disabled. This is insecure and may be removed in the future. Do not use this option except in testing or local development environments. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/handshake_timeout)upstreams/tls/handshake_timeout +The duration to allow a TLS handshake to a server. Default: No timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/server_name)upstreams/tls/server_name +The server name used when verifying the certificate received in the TLS handshake. By default, this will use the upstream address' host part. You only need to override this if your upstream address does not match the certificate the upstream is likely to use. For example if the upstream address is an IP address, then you would need to configure this to the hostname being served by the upstream server. Currently, this does not support placeholders because the TLS config is not provisioned on each connection, so a static value must be used. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/renegotiation)upstreams/tls/renegotiation +TLS renegotiation level. TLS renegotiation is the act of performing subsequent handshakes on a connection after the first. The level can be: + +* "never": (the default) disables renegotiation. +* "once": allows a remote server to request renegotiation once per connection. +* "freely": allows a remote server to repeatedly request renegotiation. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/except_ports)upstreams/tls/except_ports +Skip TLS ports specifies a list of upstream ports on which TLS should not be attempted even if it is configured. Handy when using dynamic upstreams that return HTTP and HTTPS endpoints too. When specified, TLS will automatically be configured on the transport. The value can be a list of any valid tcp port numbers, default empty. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/tls/curves)upstreams/tls/curves +The list of elliptic curves to support. Caddy's defaults are modern and secure. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#upstreams/max_connections)upstreams/max_connections +How many connections this upstream is allowed to have before being marked as unhealthy (if > 0). + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#health_checks)health_checks +Health checks update the status of backends, whether they are up or down. Down backends will not be proxied to. + +HealthChecks configures active and passive health checks. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#health_checks/active)health_checks/active +Active health checks run in the background on a timer. To minimally enable active health checks, set either path or port (or both). + +ActiveHealthChecks holds configuration related to active health checks (that is, health checks which occur independently in a background goroutine). + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#health_checks/active/port)health_checks/active/port +The port to use (if different from the upstream's dial address) for health checks. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#health_checks/active/interval)health_checks/active/interval +How frequently to perform active health checks (default 30s). + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#health_checks/active/timeout)health_checks/active/timeout +How long to wait for a connection to be established with peer before considering it unhealthy (default 5s). + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#health_checks/passive)health_checks/passive +Passive health checks monitor proxied connections for errors or timeouts. To minimally enable passive health checks, specify at least an empty config object. + +PassiveHealthChecks holds configuration related to passive health checks (that is, health checks which occur during the normal flow of connection proxying). + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#health_checks/passive/fail_duration)health_checks/passive/fail_duration +How long to remember a failed connection to a backend. A duration > 0 enables passive health checking. Default 0. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#health_checks/passive/max_fails)health_checks/passive/max_fails +The number of failed connections within the FailDuration window to consider a backend as "down". Must be >= 1; default is 1. Requires that FailDuration be > 0. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#health_checks/passive/unhealthy_connnection_count)health_checks/passive/unhealthy_connnection_count +Limits the number of simultaneous connections to a backend by marking the backend as "down" if it has this many or more concurrent connections. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#load_balancing)load_balancing +Load balancing distributes load/connections between backends. + +LoadBalancing has parameters related to load balancing. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#load_balancing/selection)load_balancing/selection +A selection policy is how to choose an available backend. The default policy is random selection. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#load_balancing/try_duration)load_balancing/try_duration +How long to try selecting available backends for each connection if the next available host is down. By default, this retry is disabled. Clients will wait for up to this long while the load balancer tries to find an available upstream host. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#load_balancing/try_interval)load_balancing/try_interval +How long to wait between selecting the next host from the pool. Default is 250ms. Only relevant when a connection to an upstream host fails. Be aware that setting this to 0 with a non-zero try_duration can cause the CPU to spin if all backends are down and latency is very low. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy#proxy_protocol)proxy_protocol +Specifies the version of the Proxy Protocol header to add, either "v1" or "v2". Ref: [https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt) diff --git a/docs/caddy/modules/layer4.handlers.proxy_protocol.md b/docs/caddy/modules/layer4.handlers.proxy_protocol.md new file mode 100644 index 0000000..1ce87e2 --- /dev/null +++ b/docs/caddy/modules/layer4.handlers.proxy_protocol.md @@ -0,0 +1,134 @@ +Title: Module layer4.handlers.proxy_protocol - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.handlers.proxy_protocol + +Markdown Content: +Module layer4.handlers.proxy_protocol - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module layer4.handlers.proxy_protocol +===================================== + + There is more than one module named **Module layer4.handlers.proxy_protocol**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy_protocol#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mholt/caddy-l4 + +`{▾ "timeout": 0, "allow": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4proxyprotocol` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy_protocol#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +layer4.handlers.proxy_protocol is a connection handler that accepts the PROXY protocol. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy_protocol#timeout)timeout +How long to wait for the PROXY protocol header to be received. Defaults to zero, which means timeout is disabled. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.proxy_protocol#allow)allow +An optional list of CIDR ranges to allow/require PROXY headers from. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/layer4.handlers.tee.md b/docs/caddy/modules/layer4.handlers.tee.md new file mode 100644 index 0000000..eb2b574 --- /dev/null +++ b/docs/caddy/modules/layer4.handlers.tee.md @@ -0,0 +1,41 @@ +Title: Module layer4.handlers.tee - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.handlers.tee + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.handlers.tee**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tee#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾ "branch": [{•••}]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4tee` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tee#docs "Direct link") +-------------------------------------------------------------------------------------------- + +layer4.handlers.tee is a layer4 handler that replicates a connection so that a branch of handlers can concurrently handle it. Reads happen in lock-step with all concurrent branches so as to avoid buffering: if one of the branches (including the main handler chain) stops reading from the connection, it will block all branches. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tee#branch)branch +Handlers is the list of handlers that constitute this concurrent branch. Any handlers that do connection matching (which involves recording and rewinding the stream) are unsafe to tee, so do all connection matching before teeing. diff --git a/docs/caddy/modules/layer4.handlers.throttle.md b/docs/caddy/modules/layer4.handlers.throttle.md new file mode 100644 index 0000000..d6dfced --- /dev/null +++ b/docs/caddy/modules/layer4.handlers.throttle.md @@ -0,0 +1,143 @@ +Title: Module layer4.handlers.throttle - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.handlers.throttle + +Markdown Content: +Module layer4.handlers.throttle - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module layer4.handlers.throttle +=============================== + + There is more than one module named **Module layer4.handlers.throttle**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.handlers.throttle#docs "Direct link") +------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mholt/caddy-l4 + +`{▾ "read_bytes_per_second": 0, "read_burst_size": 0, "total_read_bytes_per_second": 0, "total_read_burst_size": 0, "latency": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4throttle` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.handlers.throttle#docs "Direct link") +------------------------------------------------------------------------------------------------- + +layer4.handlers.throttle throttles connections using leaky bucket rate limiting. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.throttle#read_bytes_per_second)read_bytes_per_second +The number of bytes to read per second, per connection. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.throttle#read_burst_size)read_burst_size +The maximum number of bytes to read at once (rate permitting) per connection. If a rate is specified, burst must be greater than zero; default is same as the rate (truncated to integer). + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.throttle#total_read_bytes_per_second)total_read_bytes_per_second +The number of bytes to read per second, across all connections ("per handler"). + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.throttle#total_read_burst_size)total_read_burst_size +The maximum number of bytes to read at once (rate permitting) across all connections ("per handler"). If a rate is specified, burst must be greater than zero; default is same as the rate (truncated to integer). + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.throttle#latency)latency +Delay before initial read on each connection. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/layer4.handlers.tls.md b/docs/caddy/modules/layer4.handlers.tls.md new file mode 100644 index 0000000..3ea5401 --- /dev/null +++ b/docs/caddy/modules/layer4.handlers.tls.md @@ -0,0 +1,108 @@ +Title: Module layer4.handlers.tls - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.handlers.tls + +Markdown Content: +layer4.handlers.tls is a connection handler that terminates TLS. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies)connection_policies +ConnectionPolicy specifies the logic for handling a TLS handshake. An empty policy is valid; safe and sensible defaults will be used. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/match)connection_policies/match +How to match this policy with a TLS ClientHello. If this policy is the first to match, it will be used. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/certificate_selection)connection_policies/certificate_selection +How to choose a certificate if more than one matched the given ServerName (SNI) value. + +CustomCertSelectionPolicy represents a policy for selecting the certificate used to complete a handshake when there may be multiple options. All fields specified must match the candidate certificate for it to be chosen. This was needed to solve [https://github.com/caddyserver/caddy/issues/2588](https://github.com/caddyserver/caddy/issues/2588). + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/certificate_selection/serial_number)connection_policies/certificate_selection/serial_number +The certificate must have one of these serial numbers. + +bigInt is a big.Int type that interops with JSON encodings as a string. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/certificate_selection/subject_organization)connection_policies/certificate_selection/subject_organization +The certificate must have one of these organization names. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/certificate_selection/public_key_algorithm)connection_policies/certificate_selection/public_key_algorithm +The certificate must use this public key algorithm. + +PublicKeyAlgorithm is a JSON-unmarshalable wrapper type. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/certificate_selection/any_tag)connection_policies/certificate_selection/any_tag +The certificate must have at least one of the tags in the list. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/certificate_selection/all_tags)connection_policies/certificate_selection/all_tags +The certificate must have all of the tags in the list. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/cipher_suites)connection_policies/cipher_suites +The list of cipher suites to support. Caddy's defaults are modern and secure. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/curves)connection_policies/curves +The list of elliptic curves to support. Caddy's defaults are modern and secure. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/alpn)connection_policies/alpn +Protocols to use for Application-Layer Protocol Negotiation (ALPN) during the handshake. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/protocol_min)connection_policies/protocol_min +Minimum TLS protocol version to allow. Default: `tls1.2` + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/protocol_max)connection_policies/protocol_max +Maximum TLS protocol version to allow. Default: `tls1.3` + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/drop)connection_policies/drop +Reject TLS connections. EXPERIMENTAL: May change. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/client_authentication)connection_policies/client_authentication +Enables and configures TLS client authentication. + +ClientAuthentication configures TLS client auth. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/client_authentication/ca)connection_policies/client_authentication/ca +Certificate authority module which provides the certificate pool of trusted certificates + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/client_authentication/trusted_ca_certs)connection_policies/client_authentication/trusted_ca_certs +Deprecated: Use the `ca` field with the `tls.ca_pool.source.inline` module instead. A list of base64 DER-encoded CA certificates against which to validate client certificates. Client certs which are not signed by any of these CAs will be rejected. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/client_authentication/trusted_ca_certs_pem_files)connection_policies/client_authentication/trusted_ca_certs_pem_files +Deprecated: Use the `ca` field with the `tls.ca_pool.source.file` module instead. TrustedCACertPEMFiles is a list of PEM file names from which to load certificates of trusted CAs. Client certificates which are not signed by any of these CA certificates will be rejected. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/client_authentication/trusted_leaf_certs)connection_policies/client_authentication/trusted_leaf_certs +Deprecated: This field is deprecated and will be removed in a future version. Please use the `validators` field instead with the tls.client_auth.verifier.leaf module instead. + +A list of base64 DER-encoded client leaf certs to accept. If this list is not empty, client certs which are not in this list will be rejected. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/client_authentication/verifiers)connection_policies/client_authentication/verifiers +Client certificate verification modules. These can perform custom client authentication checks, such as ensuring the certificate is not revoked. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/client_authentication/mode)connection_policies/client_authentication/mode +The mode for authenticating the client. Allowed values are: + +| Mode | Description | +| --- | --- | +| `request` | Ask clients for a certificate, but allow even if there isn't one; do not verify it | +| `require` | Require clients to present a certificate, but do not verify it | +| `verify_if_given` | Ask clients for a certificate; allow even if there isn't one, but verify it if there is | +| `require_and_verify` | Require clients to present a valid certificate that is verified | + +The default mode is `require_and_verify` if any TrustedCACerts or TrustedCACertPEMFiles or TrustedLeafCerts are provided; otherwise, the default mode is `require`. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/default_sni)connection_policies/default_sni +DefaultSNI becomes the ServerName in a ClientHello if there is no policy configured for the empty SNI value. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/fallback_sni)connection_policies/fallback_sni +FallbackSNI becomes the ServerName in a ClientHello if the original ServerName doesn't match any certificates in the cache. The use cases for this are very niche; typically if a client is a CDN and passes through the ServerName of the downstream handshake but can accept a certificate with the origin's hostname instead, then you would set this to your origin's hostname. Note that Caddy must be managing a certificate for this name. + +This feature is EXPERIMENTAL and subject to change or removal. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/insecure_secrets_log)connection_policies/insecure_secrets_log +Also known as "SSLKEYLOGFILE", TLS secrets will be written to this file in NSS key log format which can then be parsed by Wireshark and other tools. This is INSECURE as it allows other programs or tools to decrypt TLS connections. However, this capability can be useful for debugging and troubleshooting. **ENABLING THIS LOG COMPROMISES SECURITY!** + +This feature is EXPERIMENTAL and subject to change or removal. + +[🔗](https://caddyserver.com/docs/modules/layer4.handlers.tls#connection_policies/handshake_context)connection_policies/handshake_context +A module that can manipulate the context passed into CertMagic's certificate management functions during TLS handshakes. EXPERIMENTAL - subject to change or removal. + +Fulfilled by modules in namespace: **tls.context** diff --git a/docs/caddy/modules/layer4.matchers.crowdsec.md b/docs/caddy/modules/layer4.matchers.crowdsec.md new file mode 100644 index 0000000..9aad4a7 --- /dev/null +++ b/docs/caddy/modules/layer4.matchers.crowdsec.md @@ -0,0 +1,38 @@ +Title: Module layer4.matchers.crowdsec - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.matchers.crowdsec + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.matchers.crowdsec**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.crowdsec#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/hslatman/caddy-crowdsec-bouncer](https://github.com/hslatman/caddy-crowdsec-bouncer)** + +**Custom builds:**`xcaddy build --with github.com/hslatman/caddy-crowdsec-bouncer/layer4` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.crowdsec#docs "Direct link") +------------------------------------------------------------------------------------------------- + +layer4.matchers.crowdsec matches IPs to CrowdSec decisions to (dis)allow access diff --git a/docs/caddy/modules/layer4.matchers.http.md b/docs/caddy/modules/layer4.matchers.http.md new file mode 100644 index 0000000..0460c4b --- /dev/null +++ b/docs/caddy/modules/layer4.matchers.http.md @@ -0,0 +1,38 @@ +Title: Module layer4.matchers.http - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.matchers.http + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.matchers.http**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.http#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4http` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.http#docs "Direct link") +--------------------------------------------------------------------------------------------- + +layer4.matchers.http is able to match HTTP connections. The auto-generated documentation for this type is wrong; instead of an object, it is an array of matcher set objects. diff --git a/docs/caddy/modules/layer4.matchers.ip.md b/docs/caddy/modules/layer4.matchers.ip.md new file mode 100644 index 0000000..ea0e038 --- /dev/null +++ b/docs/caddy/modules/layer4.matchers.ip.md @@ -0,0 +1,41 @@ +Title: Module layer4.matchers.ip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.matchers.ip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.matchers.ip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.ip#docs "Direct link") +------------------------------------------------------------------------------------------- + +`{▾ "ranges": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/layer4` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.ip#docs "Direct link") +------------------------------------------------------------------------------------------- + +layer4.matchers.ip matches requests by remote IP (or CIDR range). + +[🔗](https://caddyserver.com/docs/modules/layer4.matchers.ip#ranges)ranges +There are no docs for this property. diff --git a/docs/caddy/modules/layer4.matchers.proxy_protocol.md b/docs/caddy/modules/layer4.matchers.proxy_protocol.md new file mode 100644 index 0000000..c2091f7 --- /dev/null +++ b/docs/caddy/modules/layer4.matchers.proxy_protocol.md @@ -0,0 +1,36 @@ +Title: Module layer4.matchers.proxy_protocol - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.matchers.proxy_protocol + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.matchers.proxy_protocol**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.proxy_protocol#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4proxy` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.proxy_protocol#docs "Direct link") +------------------------------------------------------------------------------------------------------- diff --git a/docs/caddy/modules/layer4.matchers.ssh.md b/docs/caddy/modules/layer4.matchers.ssh.md new file mode 100644 index 0000000..89126ef --- /dev/null +++ b/docs/caddy/modules/layer4.matchers.ssh.md @@ -0,0 +1,128 @@ +Title: Module layer4.matchers.ssh - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.matchers.ssh + +Markdown Content: +Module layer4.matchers.ssh - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module layer4.matchers.ssh +========================== + + There is more than one module named **Module layer4.matchers.ssh**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.ssh#docs "Direct link") +-------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mholt/caddy-l4 + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4ssh` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.ssh#docs "Direct link") +-------------------------------------------------------------------------------------------- + +layer4.matchers.ssh is able to match SSH connections. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Flayer4.matchers.ssh&r=&sid=GVMGKAKP&qs=%7B%7D&cid=19050517) diff --git a/docs/caddy/modules/layer4.matchers.tls.md b/docs/caddy/modules/layer4.matchers.tls.md new file mode 100644 index 0000000..26575a5 --- /dev/null +++ b/docs/caddy/modules/layer4.matchers.tls.md @@ -0,0 +1,38 @@ +Title: Module layer4.matchers.tls - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.matchers.tls + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.matchers.tls**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.tls#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4tls` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.tls#docs "Direct link") +-------------------------------------------------------------------------------------------- + +layer4.matchers.tls is able to match TLS connections. Its structure is different from the auto-generated documentation. This value should be a map of matcher names to their values. diff --git a/docs/caddy/modules/layer4.matchers.xmpp.md b/docs/caddy/modules/layer4.matchers.xmpp.md new file mode 100644 index 0000000..4b67687 --- /dev/null +++ b/docs/caddy/modules/layer4.matchers.xmpp.md @@ -0,0 +1,38 @@ +Title: Module layer4.matchers.xmpp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.matchers.xmpp + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.matchers.xmpp**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.xmpp#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4xmpp` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.matchers.xmpp#docs "Direct link") +--------------------------------------------------------------------------------------------- + +layer4.matchers.xmpp is able to match XMPP connections. diff --git a/docs/caddy/modules/layer4.md b/docs/caddy/modules/layer4.md new file mode 100644 index 0000000..bbeaa26 --- /dev/null +++ b/docs/caddy/modules/layer4.md @@ -0,0 +1,57 @@ +Title: Module layer4 - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4 + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4#docs "Direct link") +------------------------------------------------------------------------------- + +``` +{▾ "servers": { + "": {▾ "listen": [""], "routes": [{▾ "match": [{•••}], "handle": [{•••}] }] } + }} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/layer4` + +Description[🔗](https://caddyserver.com/docs/modules/layer4#docs "Direct link") +------------------------------------------------------------------------------- + +layer4 is a Caddy app that operates closest to layer 4 of the OSI model. + +[🔗](https://caddyserver.com/docs/modules/layer4#servers)servers +Server represents a Caddy layer4 server. + +[🔗](https://caddyserver.com/docs/modules/layer4#servers/listen)servers/listen +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/layer4#servers/routes)servers/routes +Route represents a collection of handlers that are gated by matching and other kinds of logic. + +[🔗](https://caddyserver.com/docs/modules/layer4#servers/routes/match)servers/routes/match +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/modules/layer4#servers/routes/handle)servers/routes/handle +There are no docs for this property. diff --git a/docs/caddy/modules/layer4.proxy.selection_policies.first.md b/docs/caddy/modules/layer4.proxy.selection_policies.first.md new file mode 100644 index 0000000..059012b --- /dev/null +++ b/docs/caddy/modules/layer4.proxy.selection_policies.first.md @@ -0,0 +1,38 @@ +Title: Module layer4.proxy.selection_policies.first - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.first + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.proxy.selection_policies.first**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.first#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4proxy` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.first#docs "Direct link") +-------------------------------------------------------------------------------------------------------------- + +layer4.proxy.selection_policies.first is a policy that selects the first available host. diff --git a/docs/caddy/modules/layer4.proxy.selection_policies.ip_hash.md b/docs/caddy/modules/layer4.proxy.selection_policies.ip_hash.md new file mode 100644 index 0000000..1a108da --- /dev/null +++ b/docs/caddy/modules/layer4.proxy.selection_policies.ip_hash.md @@ -0,0 +1,38 @@ +Title: Module layer4.proxy.selection_policies.ip_hash - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.ip_hash + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.proxy.selection_policies.ip_hash**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.ip_hash#docs "Direct link") +---------------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4proxy` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.ip_hash#docs "Direct link") +---------------------------------------------------------------------------------------------------------------- + +layer4.proxy.selection_policies.ip_hash is a policy that selects a host based on hashing the remote IP of the connection. diff --git a/docs/caddy/modules/layer4.proxy.selection_policies.least_conn.md b/docs/caddy/modules/layer4.proxy.selection_policies.least_conn.md new file mode 100644 index 0000000..e25d5e1 --- /dev/null +++ b/docs/caddy/modules/layer4.proxy.selection_policies.least_conn.md @@ -0,0 +1,38 @@ +Title: Module layer4.proxy.selection_policies.least_conn - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.least_conn + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.proxy.selection_policies.least_conn**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.least_conn#docs "Direct link") +------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4proxy` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.least_conn#docs "Direct link") +------------------------------------------------------------------------------------------------------------------- + +layer4.proxy.selection_policies.least_conn is a policy that selects the upstream with the least active connections. If multiple upstreams have the same fewest number, one is chosen randomly. diff --git a/docs/caddy/modules/layer4.proxy.selection_policies.random.md b/docs/caddy/modules/layer4.proxy.selection_policies.random.md new file mode 100644 index 0000000..f8cc6a9 --- /dev/null +++ b/docs/caddy/modules/layer4.proxy.selection_policies.random.md @@ -0,0 +1,38 @@ +Title: Module layer4.proxy.selection_policies.random - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.proxy.selection_policies.random**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random#docs "Direct link") +--------------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4proxy` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random#docs "Direct link") +--------------------------------------------------------------------------------------------------------------- + +layer4.proxy.selection_policies.random is a policy that selects an available host at random. diff --git a/docs/caddy/modules/layer4.proxy.selection_policies.random_choose.md b/docs/caddy/modules/layer4.proxy.selection_policies.random_choose.md new file mode 100644 index 0000000..2731cbd --- /dev/null +++ b/docs/caddy/modules/layer4.proxy.selection_policies.random_choose.md @@ -0,0 +1,41 @@ +Title: Module layer4.proxy.selection_policies.random_choose - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random_choose + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.proxy.selection_policies.random_choose**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random_choose#docs "Direct link") +---------------------------------------------------------------------------------------------------------------------- + +`{▾ "choose": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4proxy` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random_choose#docs "Direct link") +---------------------------------------------------------------------------------------------------------------------- + +layer4.proxy.selection_policies.random_choose is a policy that selects two or more available hosts at random, then chooses the one with the least load. + +[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.random_choose#choose)choose +The size of the sub-pool created from the larger upstream pool. The default value is 2 and the maximum at selection time is the size of the upstream pool. diff --git a/docs/caddy/modules/layer4.proxy.selection_policies.round_robin.md b/docs/caddy/modules/layer4.proxy.selection_policies.round_robin.md new file mode 100644 index 0000000..aae5907 --- /dev/null +++ b/docs/caddy/modules/layer4.proxy.selection_policies.round_robin.md @@ -0,0 +1,38 @@ +Title: Module layer4.proxy.selection_policies.round_robin - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.round_robin + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module layer4.proxy.selection_policies.round_robin**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.round_robin#docs "Direct link") +-------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mholt/caddy-l4](https://github.com/mholt/caddy-l4)** + +**Custom builds:**`xcaddy build --with github.com/mholt/caddy-l4/modules/l4proxy` + +Description[🔗](https://caddyserver.com/docs/modules/layer4.proxy.selection_policies.round_robin#docs "Direct link") +-------------------------------------------------------------------------------------------------------------------- + +layer4.proxy.selection_policies.round_robin is a policy that selects a host based on round-robin ordering. diff --git a/docs/caddy/modules/pki.md b/docs/caddy/modules/pki.md new file mode 100644 index 0000000..7c234d5 --- /dev/null +++ b/docs/caddy/modules/pki.md @@ -0,0 +1,61 @@ +Title: Module pki - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/pki + +Markdown Content: +pki provides Public Key Infrastructure facilities for Caddy. + +This app can define certificate authorities (CAs) which are capable of signing certificates. Other modules can be configured to use the CAs defined by this app for issuing certificates or getting key information needed for establishing trust. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities)certificate_authorities +The certificate authorities to manage. Each CA is keyed by an ID that is used to uniquely identify it from other CAs. At runtime, the GetCA() method should be used instead to ensure the default CA is provisioned if it hadn't already been. The default CA ID is "local". + +CA describes a certificate authority, which consists of root/signing certificates and various settings pertaining to the issuance of certificates and trusting them. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/name)certificate_authorities/name +The user-facing name of the certificate authority. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/root_common_name)certificate_authorities/root_common_name +The name to put in the CommonName field of the root certificate. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/intermediate_common_name)certificate_authorities/intermediate_common_name +The name to put in the CommonName field of the intermediate certificates. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/intermediate_lifetime)certificate_authorities/intermediate_lifetime +The lifetime for the intermediate certificates + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/install_trust)certificate_authorities/install_trust +Whether Caddy will attempt to install the CA's root into the system trust store, as well as into Java and Mozilla Firefox trust stores. Default: true. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/root)certificate_authorities/root +The root certificate to use; if null, one will be generated. + +KeyPair represents a public-private key pair, where the public key is also called a certificate. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/root/certificate)certificate_authorities/root/certificate +The certificate. By default, this should be the path to a PEM file unless format is something else. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/root/private_key)certificate_authorities/root/private_key +The private key. By default, this should be the path to a PEM file unless format is something else. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/root/format)certificate_authorities/root/format +The format in which the certificate and private key are provided. Default: pem_file + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/intermediate)certificate_authorities/intermediate +The intermediate (signing) certificate; if null, one will be generated. + +KeyPair represents a public-private key pair, where the public key is also called a certificate. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/intermediate/certificate)certificate_authorities/intermediate/certificate +The certificate. By default, this should be the path to a PEM file unless format is something else. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/intermediate/private_key)certificate_authorities/intermediate/private_key +The private key. By default, this should be the path to a PEM file unless format is something else. + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/intermediate/format)certificate_authorities/intermediate/format +The format in which the certificate and private key are provided. Default: pem_file + +[🔗](https://caddyserver.com/docs/modules/pki#certificate_authorities/storage)certificate_authorities/storage +Optionally configure a separate storage module associated with this issuer, instead of using Caddy's global/default-configured storage. This can be useful if you want to keep your signing keys in a separate location from your leaf certificates. diff --git a/docs/caddy/modules/pocketbase.md b/docs/caddy/modules/pocketbase.md new file mode 100644 index 0000000..15c8bcc --- /dev/null +++ b/docs/caddy/modules/pocketbase.md @@ -0,0 +1,168 @@ +Title: Module pocketbase - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/pocketbase + +Markdown Content: +Module pocketbase - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module pocketbase +================= + + There is more than one module named **Module pocketbase**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/pocketbase#docs "Direct link") +----------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mohammed90/caddy-pocketbase + +`{▾ "listen": "", "data_dir": "", "origins": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy-pocketbase](https://github.com/mohammed90/caddy-pocketbase)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy-pocketbase` + +Description[🔗](https://caddyserver.com/docs/modules/pocketbase#docs "Direct link") +----------------------------------------------------------------------------------- + +pocketbase is a Caddy module that provides an embedded PocketBase server. + +The module provides admin API endpoints under `/pocketbase/`: + +* `POST /pocketbase/superuser` - Create a new superuser +* `PUT /pocketbase/superuser` - Upsert a superuser +* `PATCH /pocketbase/superuser` - Update superuser password +* `DELETE /pocketbase/superuser` - Delete a superuser +* `POST /pocketbase/superuser/{email}/otp` - Generate OTP for superuser + +All the above endpoints require a JSON payload, except for the OTP endpoint. The JSON payload for the superuser endpoints is as follows: + +``` +{ + "email_address": "...", + "password": "..." +} +``` + +The `DELETE` endpoint does not expect the `password` field. + +Although PocketBase prints a URL in the logs to create the first superuser, the host part of the URL is not correct. You can either replace the host part with the host defined in your Caddy configuration, or use the admin API endpoint to create the first superuser. + +The app can be configured in the Caddyfile through the `pocketbase` block in the global options section. Syntax: + +``` +pocketbase { + data_dir + listen + origins +} +``` + +If the block is omitted, the default values are used. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/pocketbase#listen)listen +The listen address of the PocketBase server. If empty, a free port on 127.0.0.1 will be used. + +[🔗](https://caddyserver.com/docs/modules/pocketbase#data_dir)data_dir +The data directory of PocketBase. If empty, a directory named `pb_data` in the Caddy data directory will be used. Refer to [Caddy data directory](https://caddyserver.com/docs/conventions#data-directory) for more information. + +[🔗](https://caddyserver.com/docs/modules/pocketbase#origins)origins +The allowed origins for the PocketBase server with respect to CORS. If empty, all origins are allowed. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/profefe.md b/docs/caddy/modules/profefe.md new file mode 100644 index 0000000..684901e --- /dev/null +++ b/docs/caddy/modules/profefe.md @@ -0,0 +1,154 @@ +Title: Module profefe - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/profefe + +Markdown Content: +Module profefe - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module profefe +============== + + There is more than one module named **Module profefe**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/profefe#docs "Direct link") +-------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mohammed90/caddy_profiling + +`{▾ "address": "", "service": "", "timeout": 0, "parameters": {▾ "cpu_profile_rate": 0, "block_profile_rate": 0, "mutex_profile_fraction": 0, "profile_types": [""] }}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy_profiling](https://github.com/mohammed90/caddy_profiling)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy_profiling/profefe` + +Description[🔗](https://caddyserver.com/docs/modules/profefe#docs "Direct link") +-------------------------------------------------------------------------------- + +The `profefe` app collects profiling data during the life-time of the process and uploads them to the profefe server. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/profefe#address)address +The URL of the Profefe service. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/modules/profefe#service)service +The service name reported to Profefe. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/modules/profefe#timeout)timeout +The timeout for the upload call. Setting the value to `0` disables the timeout and the call waits indefinitely until the upload is finished. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/profefe#parameters)parameters +The profiling parameters to be reported to Profefe. The paramters cpu_profile_rate, block_profile_rate, and mutex_profile_fraction are inherited from the `profiling` app if `profefe` is configured as a child module. The `profile_types` field is inherited if not configured explicitly. If `profefe` is configured as an app, all the parameters are instated as-is. + +Common profiling paramters + +[🔗](https://caddyserver.com/docs/modules/profefe#parameters/cpu_profile_rate)parameters/cpu_profile_rate +The hertz rate for CPU profiling, as accepted by the [`SetCPUProfileRate`](https://pkg.go.dev/runtime#SetCPUProfileRate) function. + +[🔗](https://caddyserver.com/docs/modules/profefe#parameters/block_profile_rate)parameters/block_profile_rate +The hertz rate for CPU profiling, as accepted by the [`SetBlockProfileRate`](https://pkg.go.dev/runtime#SetBlockProfileRate) function. + +[🔗](https://caddyserver.com/docs/modules/profefe#parameters/mutex_profile_fraction)parameters/mutex_profile_fraction +The the fraction of mutex contention events, as accepted by the [`SetMutexProfileFraction`](https://pkg.go.dev/runtime#SetMutexProfileFraction) function. + +[🔗](https://caddyserver.com/docs/modules/profefe#parameters/profile_types)parameters/profile_types +The enabled runtime profile types. The accepted values are: cpu, goroutine, heap, allocs, threadcreate, block, mutex. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/profiling.md b/docs/caddy/modules/profiling.md new file mode 100644 index 0000000..7243b59 --- /dev/null +++ b/docs/caddy/modules/profiling.md @@ -0,0 +1,146 @@ +Title: Module profiling - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/profiling + +Markdown Content: +Module profiling - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module profiling +================ + + There is more than one module named **Module profiling**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/profiling#docs "Direct link") +---------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mohammed90/caddy_profiling + +`{▾ "cpu_profile_rate": 0, "block_profile_rate": 0, "mutex_profile_fraction": 0, "profile_types": [""], "profilers": [{•••}]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy_profiling](https://github.com/mohammed90/caddy_profiling)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy_profiling/profiling` + +Description[🔗](https://caddyserver.com/docs/modules/profiling#docs "Direct link") +---------------------------------------------------------------------------------- + +The `profiling` app hosts the collection of push-based profiling agents with common profiling parameters acorss the Caddy instance. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/profiling#cpu_profile_rate)cpu_profile_rate +The hertz rate for CPU profiling, as accepted by the [`SetCPUProfileRate`](https://pkg.go.dev/runtime#SetCPUProfileRate) function. + +[🔗](https://caddyserver.com/docs/modules/profiling#block_profile_rate)block_profile_rate +The hertz rate for CPU profiling, as accepted by the [`SetBlockProfileRate`](https://pkg.go.dev/runtime#SetBlockProfileRate) function. + +[🔗](https://caddyserver.com/docs/modules/profiling#mutex_profile_fraction)mutex_profile_fraction +The the fraction of mutex contention events, as accepted by the [`SetMutexProfileFraction`](https://pkg.go.dev/runtime#SetMutexProfileFraction) function. + +[🔗](https://caddyserver.com/docs/modules/profiling#profile_types)profile_types +The enabled runtime profile types. The accepted values are: cpu, goroutine, heap, allocs, threadcreate, block, mutex. + +[🔗](https://caddyserver.com/docs/modules/profiling#profilers)profilers +There are no docs for this property. + +Fulfilled by modules in namespace: **profiling.profiler** + +* [profefe](https://caddyserver.com/docs/modules/profiling.profiler.profefe)Non-standard +* [pyroscope](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/profiling.profiler.profefe.md b/docs/caddy/modules/profiling.profiler.profefe.md new file mode 100644 index 0000000..6f89e38 --- /dev/null +++ b/docs/caddy/modules/profiling.profiler.profefe.md @@ -0,0 +1,156 @@ +Title: Module profiling.profiler.profefe - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/profiling.profiler.profefe + +Markdown Content: +Module profiling.profiler.profefe - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module profiling.profiler.profefe +================================= + + There is more than one module named **Module profiling.profiler.profefe**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/profiling.profiler.profefe#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/mohammed90/caddy_profiling + +`{▾ "address": "", "service": "", "timeout": 0, "parameters": {▾ "cpu_profile_rate": 0, "block_profile_rate": 0, "mutex_profile_fraction": 0, "profile_types": [""] }}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/mohammed90/caddy_profiling](https://github.com/mohammed90/caddy_profiling)** + +**Custom builds:**`xcaddy build --with github.com/mohammed90/caddy_profiling/profefe` + +Description[🔗](https://caddyserver.com/docs/modules/profiling.profiler.profefe#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +profiling.profiler.profefe is the container of the `profefe` profiler if configured as a guest module of the `profiling` app + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.profefe#address)address +The URL of the Profefe service. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.profefe#service)service +The service name reported to Profefe. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.profefe#timeout)timeout +The timeout for the upload call. Setting the value to `0` disables the timeout and the call waits indefinitely until the upload is finished. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.profefe#parameters)parameters +The profiling parameters to be reported to Profefe. The paramters cpu_profile_rate, block_profile_rate, and mutex_profile_fraction are inherited from the `profiling` app if `profefe` is configured as a child module. The `profile_types` field is inherited if not configured explicitly. If `profefe` is configured as an app, all the parameters are instated as-is. + +Common profiling paramters + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.profefe#parameters/cpu_profile_rate)parameters/cpu_profile_rate +The hertz rate for CPU profiling, as accepted by the [`SetCPUProfileRate`](https://pkg.go.dev/runtime#SetCPUProfileRate) function. + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.profefe#parameters/block_profile_rate)parameters/block_profile_rate +The hertz rate for CPU profiling, as accepted by the [`SetBlockProfileRate`](https://pkg.go.dev/runtime#SetBlockProfileRate) function. + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.profefe#parameters/mutex_profile_fraction)parameters/mutex_profile_fraction +The the fraction of mutex contention events, as accepted by the [`SetMutexProfileFraction`](https://pkg.go.dev/runtime#SetMutexProfileFraction) function. + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.profefe#parameters/profile_types)parameters/profile_types +The enabled runtime profile types. The accepted values are: cpu, goroutine, heap, allocs, threadcreate, block, mutex. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Fprofiling.profiler.profefe&r=&sid=GVMGKAKP&qs=%7B%7D&cid=30293282) diff --git a/docs/caddy/modules/profiling.profiler.pyroscope.md b/docs/caddy/modules/profiling.profiler.pyroscope.md new file mode 100644 index 0000000..dbd1e5a --- /dev/null +++ b/docs/caddy/modules/profiling.profiler.pyroscope.md @@ -0,0 +1,49 @@ +Title: Module profiling.profiler.pyroscope - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/profiling.profiler.pyroscope + +Markdown Content: +profiling.profiler.pyroscope is the container of the `pyroscope` profiler if configured as a guest module of the `profiling` app + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#application_name)application_name +The application name reported to Pyroscope. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#server_address)server_address +The URL of the Pyroscope service. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#auth_token)auth_token +The token for Pyroscope Cloud. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#basic_auth_user)basic_auth_user +The Basic Auth username of the Phlare server + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#basic_auth_password)basic_auth_password +The Basic Auth of the Phlare server + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#tenant_id)tenant_id +The tenant ID to support the case of multi-tenant Phlare server + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#disable_gc_runs)disable_gc_runs +Disable automatic runtime.GC runs between getting the heap profiles + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#upload_rate)upload_rate +The frequency of upload to the Phlare server + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#parameters)parameters +The profiling parameters to be reported to Pyroscope. The paramters cpu_profile_rate, block_profile_rate, and mutex_profile_fraction are inherited from the `profiling` app if `pyroscope` is configured as a child module. The `profile_types` field is inherited if not configured explicitly. If `pyroscope` is configured as an app, all the parameters are instated as-is. Note: Pyroscope agent does not support `threadcreate` profile type, hence ignored. + +Common profiling paramters + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#parameters/cpu_profile_rate)parameters/cpu_profile_rate +The hertz rate for CPU profiling, as accepted by the [`SetCPUProfileRate`](https://pkg.go.dev/runtime#SetCPUProfileRate) function. + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#parameters/block_profile_rate)parameters/block_profile_rate +The hertz rate for CPU profiling, as accepted by the [`SetBlockProfileRate`](https://pkg.go.dev/runtime#SetBlockProfileRate) function. + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#parameters/mutex_profile_fraction)parameters/mutex_profile_fraction +The the fraction of mutex contention events, as accepted by the [`SetMutexProfileFraction`](https://pkg.go.dev/runtime#SetMutexProfileFraction) function. + +[🔗](https://caddyserver.com/docs/modules/profiling.profiler.pyroscope#parameters/profile_types)parameters/profile_types +The enabled runtime profile types. The accepted values are: cpu, goroutine, heap, allocs, threadcreate, block, mutex. diff --git a/docs/caddy/modules/pyroscope.md b/docs/caddy/modules/pyroscope.md new file mode 100644 index 0000000..f975a3c --- /dev/null +++ b/docs/caddy/modules/pyroscope.md @@ -0,0 +1,49 @@ +Title: Module pyroscope - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/pyroscope + +Markdown Content: +The `pyroscope` app collects profiling data during the life-time of the process and uploads them to the Pyroscope server. + +[🔗](https://caddyserver.com/docs/modules/pyroscope#application_name)application_name +The application name reported to Pyroscope. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/modules/pyroscope#server_address)server_address +The URL of the Pyroscope service. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/modules/pyroscope#auth_token)auth_token +The token for Pyroscope Cloud. The config value may be a [placeholder](https://caddyserver.com/docs/conventions#placeholders). + +[🔗](https://caddyserver.com/docs/modules/pyroscope#basic_auth_user)basic_auth_user +The Basic Auth username of the Phlare server + +[🔗](https://caddyserver.com/docs/modules/pyroscope#basic_auth_password)basic_auth_password +The Basic Auth of the Phlare server + +[🔗](https://caddyserver.com/docs/modules/pyroscope#tenant_id)tenant_id +The tenant ID to support the case of multi-tenant Phlare server + +[🔗](https://caddyserver.com/docs/modules/pyroscope#disable_gc_runs)disable_gc_runs +Disable automatic runtime.GC runs between getting the heap profiles + +[🔗](https://caddyserver.com/docs/modules/pyroscope#upload_rate)upload_rate +The frequency of upload to the Phlare server + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/pyroscope#parameters)parameters +The profiling parameters to be reported to Pyroscope. The paramters cpu_profile_rate, block_profile_rate, and mutex_profile_fraction are inherited from the `profiling` app if `pyroscope` is configured as a child module. The `profile_types` field is inherited if not configured explicitly. If `pyroscope` is configured as an app, all the parameters are instated as-is. Note: Pyroscope agent does not support `threadcreate` profile type, hence ignored. + +Common profiling paramters + +[🔗](https://caddyserver.com/docs/modules/pyroscope#parameters/cpu_profile_rate)parameters/cpu_profile_rate +The hertz rate for CPU profiling, as accepted by the [`SetCPUProfileRate`](https://pkg.go.dev/runtime#SetCPUProfileRate) function. + +[🔗](https://caddyserver.com/docs/modules/pyroscope#parameters/block_profile_rate)parameters/block_profile_rate +The hertz rate for CPU profiling, as accepted by the [`SetBlockProfileRate`](https://pkg.go.dev/runtime#SetBlockProfileRate) function. + +[🔗](https://caddyserver.com/docs/modules/pyroscope#parameters/mutex_profile_fraction)parameters/mutex_profile_fraction +The the fraction of mutex contention events, as accepted by the [`SetMutexProfileFraction`](https://pkg.go.dev/runtime#SetMutexProfileFraction) function. + +[🔗](https://caddyserver.com/docs/modules/pyroscope#parameters/profile_types)parameters/profile_types +The enabled runtime profile types. The accepted values are: cpu, goroutine, heap, allocs, threadcreate, block, mutex. diff --git a/docs/caddy/modules/reconnect.md b/docs/caddy/modules/reconnect.md new file mode 100644 index 0000000..96a797f --- /dev/null +++ b/docs/caddy/modules/reconnect.md @@ -0,0 +1,54 @@ +Title: Module reconnect - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/reconnect + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module reconnect**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/reconnect#docs "Direct link") +---------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/anapaya/caddy-reconnect](https://github.com/anapaya/caddy-reconnect)** + +**Custom builds:**`xcaddy build --with github.com/anapaya/caddy-reconnect` + +Description[🔗](https://caddyserver.com/docs/modules/reconnect#docs "Direct link") +---------------------------------------------------------------------------------- + +reconnect is a module that provides an additional "reconnect" network type that can be used to reconnect to a [network address](https://caddyserver.com/docs/conventions#network-addresses) if the initial connection fails. Caddy will bind to the address as soon as it is available. Until that point, the listener will block in the Accept() loop. This is useful if you want to configure Caddy to bind on an address that is potentially not available at startup time. + +You can configure the following networks: + +* reconnect+tcp +* reconnect+tcp4 +* reconnect+tcp6 +* reconnect+udp +* reconnect+udp4 +* reconnect+udp6 + +These are equivalent to the standard networks, except that they will block until the address is available. + +For example, to start Caddy as an http server on 192.168.1.2:443, even if that address is not available at startup time, you can add the following listener to the [apps.http.servers.{srv}.listen](https://caddyserver.com/docs/json/apps/http/servers/listen/) list: + +`"listen": ["reconnect+tcp/192.168.1.2:443"]` +Note: This module has only been tested with Linux. Other operating systems might not work as intended. diff --git a/docs/caddy/modules/scion.md b/docs/caddy/modules/scion.md new file mode 100644 index 0000000..e54e633 --- /dev/null +++ b/docs/caddy/modules/scion.md @@ -0,0 +1,38 @@ +Title: Module scion - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/scion + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module scion**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/scion#docs "Direct link") +------------------------------------------------------------------------------ + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/scionproto-contrib/caddy-scion](https://github.com/scionproto-contrib/caddy-scion)** + +**Custom builds:**`xcaddy build --with github.com/scionproto-contrib/caddy-scion` + +Description[🔗](https://caddyserver.com/docs/modules/scion#docs "Direct link") +------------------------------------------------------------------------------ + +scion implements a caddy module. Currently, it is used to initialize the logger for the global network. In the future, additional configuration can be parsed with this component. diff --git a/docs/caddy/modules/security.md b/docs/caddy/modules/security.md new file mode 100644 index 0000000..1f43905 --- /dev/null +++ b/docs/caddy/modules/security.md @@ -0,0 +1,518 @@ +Title: Module security - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/security + +Markdown Content: +security implements security manager. + +[🔗](https://caddyserver.com/docs/modules/security#config)config +Config is a configuration of Server. + +[🔗](https://caddyserver.com/docs/modules/security#config/credentials)config/credentials +Config represents a collection of various credentials. + +[🔗](https://caddyserver.com/docs/modules/security#config/credentials/generic)config/credentials/generic +Generic represents username and password credentials, with optional domain name field. + +[🔗](https://caddyserver.com/docs/modules/security#config/credentials/generic/name)config/credentials/generic/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/credentials/generic/username)config/credentials/generic/username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/credentials/generic/password)config/credentials/generic/password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/credentials/generic/domain)config/credentials/generic/domain +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals)config/authentication_portals +PortalConfig represents Portal configuration. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/name)config/authentication_portals/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui)config/authentication_portals/ui +UI holds the configuration for the user interface. + +Parameters represent a common set of configuration settings for HTML UI. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/theme)config/authentication_portals/ui/theme +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/templates)config/authentication_portals/ui/templates +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/allow_role_selection)config/authentication_portals/ui/allow_role_selection +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/title)config/authentication_portals/ui/title +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/logo_url)config/authentication_portals/ui/logo_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/logo_description)config/authentication_portals/ui/logo_description +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/private_links)config/authentication_portals/ui/private_links +Link represents a single HTML link. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/private_links/link)config/authentication_portals/ui/private_links/link +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/private_links/title)config/authentication_portals/ui/private_links/title +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/private_links/style)config/authentication_portals/ui/private_links/style +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/private_links/open_new_window)config/authentication_portals/ui/private_links/open_new_window +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/private_links/target)config/authentication_portals/ui/private_links/target +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/private_links/target_enabled)config/authentication_portals/ui/private_links/target_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/private_links/icon_name)config/authentication_portals/ui/private_links/icon_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/private_links/icon_enabled)config/authentication_portals/ui/private_links/icon_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/auto_redirect_url)config/authentication_portals/ui/auto_redirect_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/realms)config/authentication_portals/ui/realms +UserRealm represents a single authentication realm/domain. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/realms/name)config/authentication_portals/ui/realms/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/realms/label)config/authentication_portals/ui/realms/label +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/password_recovery_enabled)config/authentication_portals/ui/password_recovery_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/custom_css_path)config/authentication_portals/ui/custom_css_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/ui/custom_js_path)config/authentication_portals/ui/custom_js_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config)config/authentication_portals/user_registration_config +UserRegistrationConfig holds the configuration for the user registration. + +Config represents a common set of configuration settings for user registration + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config/disabled)config/authentication_portals/user_registration_config/disabled +The switch determining whether the registration is enabled/disabled. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config/title)config/authentication_portals/user_registration_config/title +The title of the registration page + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config/code)config/authentication_portals/user_registration_config/code +The mandatory registration code. It is possible adding multiple codes, comma separated. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config/dropbox)config/authentication_portals/user_registration_config/dropbox +The file path to registration database. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config/require_accept_terms)config/authentication_portals/user_registration_config/require_accept_terms +The switch determining whether a user must accept terms and conditions + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config/require_domain_mx)config/authentication_portals/user_registration_config/require_domain_mx +The switch determining whether the domain associated with an email has a valid MX DNS record. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config/terms_conditions_link)config/authentication_portals/user_registration_config/terms_conditions_link +The link to terms and conditions document. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config/privacy_policy_link)config/authentication_portals/user_registration_config/privacy_policy_link +The link to privacy policy document. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config/email_provider)config/authentication_portals/user_registration_config/email_provider +The email provider used for the notifications. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_registration_config/admin_emails)config/authentication_portals/user_registration_config/admin_emails +The email address(es) of portal administrators. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_transformer_configs)config/authentication_portals/user_transformer_configs +UserTransformerConfig holds the configuration for the user transformer. + +Config represents a common set of configuration settings applicable to the cookies issued by authn.Authenticator. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_transformer_configs/matchers)config/authentication_portals/user_transformer_configs/matchers +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/user_transformer_configs/actions)config/authentication_portals/user_transformer_configs/actions +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config)config/authentication_portals/cookie_config +CookieConfig holds the configuration for the cookies issues by Authenticator. + +Config represents a common set of configuration settings applicable to the cookies issued by authn.Authenticator. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/domains)config/authentication_portals/cookie_config/domains +DomainConfig represents a common set of configuration settings applicable to the cookies issued by authn.Authenticator. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/domains/seq)config/authentication_portals/cookie_config/domains/seq +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/domains/domain)config/authentication_portals/cookie_config/domains/domain +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/domains/path)config/authentication_portals/cookie_config/domains/path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/domains/lifetime)config/authentication_portals/cookie_config/domains/lifetime +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/domains/insecure)config/authentication_portals/cookie_config/domains/insecure +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/domains/same_site)config/authentication_portals/cookie_config/domains/same_site +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/path)config/authentication_portals/cookie_config/path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/lifetime)config/authentication_portals/cookie_config/lifetime +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/insecure)config/authentication_portals/cookie_config/insecure +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/cookie_config/same_site)config/authentication_portals/cookie_config/same_site +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/identity_stores)config/authentication_portals/identity_stores +The names of identity stores. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/identity_providers)config/authentication_portals/identity_providers +The names of identity providers. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/access_list_configs)config/authentication_portals/access_list_configs +AccessListConfigs hold the configurations for the ACL of the token validator. + +RuleConfiguration consists of a list of conditions and and actions + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/access_list_configs/conditions)config/authentication_portals/access_list_configs/conditions +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/access_list_configs/action)config/authentication_portals/access_list_configs/action +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/token_validator_options)config/authentication_portals/token_validator_options +TokenValidatorOptions holds the configuration for the token validator. + +TokenValidatorOptions provides options for TokenValidator. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/token_validator_options/validate_source_address)config/authentication_portals/token_validator_options/validate_source_address +There are no docs for this property. + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/token_validator_options/validate_method_path)config/authentication_portals/token_validator_options/validate_method_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/token_validator_options/validate_access_list_path_claim)config/authentication_portals/token_validator_options/validate_access_list_path_claim +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs)config/authentication_portals/crypto_key_configs +CryptoKeyConfigs hold the configurations for the keys used to issue and validate user tokens. + +CryptoKeyConfig is common token-related configuration settings. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/seq)config/authentication_portals/crypto_key_configs/seq +Seq is the order in which a key would be processed. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/id)config/authentication_portals/crypto_key_configs/id +ID is the key ID, aka kid. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/usage)config/authentication_portals/crypto_key_configs/usage +Usage is the intended key usage. The values are: sign, verify, both, or auto. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/token_name)config/authentication_portals/crypto_key_configs/token_name +TokenName is the token name associated with the key. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/source)config/authentication_portals/crypto_key_configs/source +Source is either config or env. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/algorithm)config/authentication_portals/crypto_key_configs/algorithm +Algorithm is either hmac, rsa, or ecdsa. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/env_var_name)config/authentication_portals/crypto_key_configs/env_var_name +EnvVarName is the name of environment variables holding either the value of a key or the path a directory or file containing a key. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/env_var_type)config/authentication_portals/crypto_key_configs/env_var_type +EnvVarType indicates how to interpret the value found in the EnvVarName. If it is blank, then the assumption is the environment variable value contains either public or private key. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/env_var_value)config/authentication_portals/crypto_key_configs/env_var_value +EnvVarValue is the value associated with the environment variable set by EnvVarName. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/file_path)config/authentication_portals/crypto_key_configs/file_path +FilePath is the path of a file containing either private or public key. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/dir_path)config/authentication_portals/crypto_key_configs/dir_path +DirPath is the path to a directory containing crypto keys. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/token_lifetime)config/authentication_portals/crypto_key_configs/token_lifetime +TokenLifetime is the expected token grant lifetime in seconds. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/token_secret)config/authentication_portals/crypto_key_configs/token_secret +Secret is the shared key used with HMAC algorithm. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/token_sign_method)config/authentication_portals/crypto_key_configs/token_sign_method +PreferredSignMethod is the preferred method to sign tokens, e.g. all HMAC keys could use HS256, HS384, and HS512 methods. By default, the preferred method is HS512. However, one may prefer using HS256. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_configs/token_eval_expr)config/authentication_portals/crypto_key_configs/token_eval_expr +EvalExpr is a list of expressions evaluated whether a specific key should be used for signing and verification. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/crypto_key_store_config)config/authentication_portals/crypto_key_store_config +CryptoKeyStoreConfig hold the default configuration for the keys, e.g. token name and lifetime. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/token_grantor_options)config/authentication_portals/token_grantor_options +TokenGrantorOptions holds the configuration for the tokens issues by Authenticator. + +TokenGrantorOptions provides options for TokenGrantor. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/token_grantor_options/enable_source_address)config/authentication_portals/token_grantor_options/enable_source_address +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/api)config/authentication_portals/api +API holds the configuration for API endpoints. + +APIConfig holds the configuration for API endpoints. + +[🔗](https://caddyserver.com/docs/modules/security#config/authentication_portals/api/enabled)config/authentication_portals/api/enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies)config/authorization_policies +PolicyConfig is Gatekeeper configuration. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/name)config/authorization_policies/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_url_path)config/authorization_policies/auth_url_path +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/disable_auth_redirect)config/authorization_policies/disable_auth_redirect +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/disable_auth_redirect_query)config/authorization_policies/disable_auth_redirect_query +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_redirect_query_param)config/authorization_policies/auth_redirect_query_param +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_redirect_status_code)config/authorization_policies/auth_redirect_status_code +The status code for the HTTP redirect for non-authorized users. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/redirect_with_javascript)config/authorization_policies/redirect_with_javascript +Enable the redirect with Javascript, as opposed to HTTP redirect. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/bypass_configs)config/authorization_policies/bypass_configs +The list of URI prefixes which bypass authorization. + +Config contains the entry for the authorization bypass. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/bypass_configs/match_type)config/authorization_policies/bypass_configs/match_type +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/bypass_configs/uri)config/authorization_policies/bypass_configs/uri +There are no docs for this property. + +The list of mappings between header names and field names. + +Config contains the entry for the HTTP header injection. + +There are no docs for this property. + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/access_list_rules)config/authorization_policies/access_list_rules +RuleConfiguration consists of a list of conditions and and actions + +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/access_list_rules/conditions)config/authorization_policies/access_list_rules/conditions +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/access_list_rules/action)config/authorization_policies/access_list_rules/action +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs)config/authorization_policies/crypto_key_configs +CryptoKeyConfig is common token-related configuration settings. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/seq)config/authorization_policies/crypto_key_configs/seq +Seq is the order in which a key would be processed. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/id)config/authorization_policies/crypto_key_configs/id +ID is the key ID, aka kid. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/usage)config/authorization_policies/crypto_key_configs/usage +Usage is the intended key usage. The values are: sign, verify, both, or auto. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/token_name)config/authorization_policies/crypto_key_configs/token_name +TokenName is the token name associated with the key. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/source)config/authorization_policies/crypto_key_configs/source +Source is either config or env. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/algorithm)config/authorization_policies/crypto_key_configs/algorithm +Algorithm is either hmac, rsa, or ecdsa. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/env_var_name)config/authorization_policies/crypto_key_configs/env_var_name +EnvVarName is the name of environment variables holding either the value of a key or the path a directory or file containing a key. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/env_var_type)config/authorization_policies/crypto_key_configs/env_var_type +EnvVarType indicates how to interpret the value found in the EnvVarName. If it is blank, then the assumption is the environment variable value contains either public or private key. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/env_var_value)config/authorization_policies/crypto_key_configs/env_var_value +EnvVarValue is the value associated with the environment variable set by EnvVarName. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/file_path)config/authorization_policies/crypto_key_configs/file_path +FilePath is the path of a file containing either private or public key. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/dir_path)config/authorization_policies/crypto_key_configs/dir_path +DirPath is the path to a directory containing crypto keys. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/token_lifetime)config/authorization_policies/crypto_key_configs/token_lifetime +TokenLifetime is the expected token grant lifetime in seconds. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/token_secret)config/authorization_policies/crypto_key_configs/token_secret +Secret is the shared key used with HMAC algorithm. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/token_sign_method)config/authorization_policies/crypto_key_configs/token_sign_method +PreferredSignMethod is the preferred method to sign tokens, e.g. all HMAC keys could use HS256, HS384, and HS512 methods. By default, the preferred method is HS512. However, one may prefer using HS256. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_configs/token_eval_expr)config/authorization_policies/crypto_key_configs/token_eval_expr +EvalExpr is a list of expressions evaluated whether a specific key should be used for signing and verification. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/crypto_key_store_config)config/authorization_policies/crypto_key_store_config +CryptoKeyStoreConfig hold the default configuration for the keys, e.g. token name and lifetime. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_proxy_config)config/authorization_policies/auth_proxy_config +Config is a config for an identity provider. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_proxy_config/portal_name)config/authorization_policies/auth_proxy_config/portal_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_proxy_config/basic_auth)config/authorization_policies/auth_proxy_config/basic_auth +BasicAuthConfig is a config for basic authentication. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_proxy_config/basic_auth/enabled)config/authorization_policies/auth_proxy_config/basic_auth/enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_proxy_config/basic_auth/realms)config/authorization_policies/auth_proxy_config/basic_auth/realms +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_proxy_config/api_key_auth)config/authorization_policies/auth_proxy_config/api_key_auth +APIKeyAuthConfig is a config for API key-based authentication. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_proxy_config/api_key_auth/enabled)config/authorization_policies/auth_proxy_config/api_key_auth/enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/auth_proxy_config/api_key_auth/realms)config/authorization_policies/auth_proxy_config/api_key_auth/realms +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/allowed_token_sources)config/authorization_policies/allowed_token_sources +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/strip_token_enabled)config/authorization_policies/strip_token_enabled +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/forbidden_url)config/authorization_policies/forbidden_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/user_identity_field)config/authorization_policies/user_identity_field +There are no docs for this property. + +Validate HTTP Authorization header. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/validate_method_path)config/authorization_policies/validate_method_path +Validate HTTP method and path. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/validate_access_list_path_claim)config/authorization_policies/validate_access_list_path_claim +Validate HTTP path derived from JWT token. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/validate_source_address)config/authorization_policies/validate_source_address +Validate source address matches between HTTP request and JWT token. + +Pass claims from JWT token via HTTP X- headers. + +[🔗](https://caddyserver.com/docs/modules/security#config/authorization_policies/login_hint_validators)config/authorization_policies/login_hint_validators +Validate the login hint which can be passed to the auth provider + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging)config/messaging +Config represents a collection of various messaging providers. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/email_providers)config/messaging/email_providers +EmailProvider represents email messaging provider. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/email_providers/name)config/messaging/email_providers/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/email_providers/address)config/messaging/email_providers/address +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/email_providers/protocol)config/messaging/email_providers/protocol +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/email_providers/credentials)config/messaging/email_providers/credentials +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/email_providers/sender_email)config/messaging/email_providers/sender_email +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/email_providers/sender_name)config/messaging/email_providers/sender_name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/email_providers/templates)config/messaging/email_providers/templates +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/email_providers/passwordless)config/messaging/email_providers/passwordless +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/email_providers/blind_carbon_copy)config/messaging/email_providers/blind_carbon_copy +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/file_providers)config/messaging/file_providers +FileProvider represents file messaging provider which writes messages to a local file system, + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/file_providers/name)config/messaging/file_providers/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/file_providers/root_dir)config/messaging/file_providers/root_dir +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/messaging/file_providers/templates)config/messaging/file_providers/templates +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/identity_stores)config/identity_stores +IdentityStoreConfig represents an identity store configuration. + +[🔗](https://caddyserver.com/docs/modules/security#config/identity_stores/name)config/identity_stores/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/identity_stores/kind)config/identity_stores/kind +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/identity_stores/params)config/identity_stores/params +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/identity_providers)config/identity_providers +IdentityProviderConfig represents an identity provider configuration. + +[🔗](https://caddyserver.com/docs/modules/security#config/identity_providers/name)config/identity_providers/name +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/identity_providers/kind)config/identity_providers/kind +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/security#config/identity_providers/params)config/identity_providers/params +There are no docs for this property. diff --git a/docs/caddy/modules/ssh.actor_matchers.critical_option.md b/docs/caddy/modules/ssh.actor_matchers.critical_option.md new file mode 100644 index 0000000..f040ed9 --- /dev/null +++ b/docs/caddy/modules/ssh.actor_matchers.critical_option.md @@ -0,0 +1,42 @@ +Title: Module ssh.actor_matchers.critical_option - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.actor_matchers.critical_option + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.actor_matchers.critical_option**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.critical_option#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +``` +{ + "": [""] +} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.critical_option#docs "Direct link") +----------------------------------------------------------------------------------------------------------- + +ssh.actor_matchers.critical_option matches request by the value of critical-option of the certificate/user diff --git a/docs/caddy/modules/ssh.actor_matchers.extension.md b/docs/caddy/modules/ssh.actor_matchers.extension.md new file mode 100644 index 0000000..d0b0f03 --- /dev/null +++ b/docs/caddy/modules/ssh.actor_matchers.extension.md @@ -0,0 +1,42 @@ +Title: Module ssh.actor_matchers.extension - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.actor_matchers.extension + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.actor_matchers.extension**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.extension#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +``` +{ + "": [""] +} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.extension#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +ssh.actor_matchers.extension matches request by SSH protocol extension diff --git a/docs/caddy/modules/ssh.actor_matchers.group.md b/docs/caddy/modules/ssh.actor_matchers.group.md new file mode 100644 index 0000000..daa2c54 --- /dev/null +++ b/docs/caddy/modules/ssh.actor_matchers.group.md @@ -0,0 +1,41 @@ +Title: Module ssh.actor_matchers.group - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.actor_matchers.group + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.actor_matchers.group**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.group#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "groups": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.group#docs "Direct link") +------------------------------------------------------------------------------------------------- + +ssh.actor_matchers.group matches requests by user's group + +[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.group#groups)groups +There are no docs for this property. diff --git a/docs/caddy/modules/ssh.actor_matchers.not.md b/docs/caddy/modules/ssh.actor_matchers.not.md new file mode 100644 index 0000000..b664295 --- /dev/null +++ b/docs/caddy/modules/ssh.actor_matchers.not.md @@ -0,0 +1,51 @@ +Title: Module ssh.actor_matchers.not - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.actor_matchers.not + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.actor_matchers.not**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.not#docs "Direct link") +----------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.not#docs "Direct link") +----------------------------------------------------------------------------------------------- + +ssh.actor_matchers.not matches requests by negating the results of its matcher sets. A single "not" matcher takes one or more matcher sets. Each matcher set is OR'ed; in other words, if any matcher set returns true, the final result of the "not" matcher is false. Individual matchers within a set work the same (i.e. different matchers in the same set are AND'ed). + +NOTE: The generated docs which describe the structure of this module are wrong because of how this type unmarshals JSON in a custom way. The correct structure is: + +``` +[ + + {}, + {} + +] +``` + +where each of the array elements is a matcher set, i.e. an object keyed by matcher name. diff --git a/docs/caddy/modules/ssh.actor_matchers.remote_ip.md b/docs/caddy/modules/ssh.actor_matchers.remote_ip.md new file mode 100644 index 0000000..399ba58 --- /dev/null +++ b/docs/caddy/modules/ssh.actor_matchers.remote_ip.md @@ -0,0 +1,41 @@ +Title: Module ssh.actor_matchers.remote_ip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.actor_matchers.remote_ip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.actor_matchers.remote_ip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.remote_ip#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +`{▾ "ranges": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.remote_ip#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +ssh.actor_matchers.remote_ip matches requests by client IP (or CIDR range). + +[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.remote_ip#ranges)ranges +The IPs or CIDR ranges to match. diff --git a/docs/caddy/modules/ssh.actor_matchers.user.md b/docs/caddy/modules/ssh.actor_matchers.user.md new file mode 100644 index 0000000..d313857 --- /dev/null +++ b/docs/caddy/modules/ssh.actor_matchers.user.md @@ -0,0 +1,41 @@ +Title: Module ssh.actor_matchers.user - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.actor_matchers.user + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.actor_matchers.user**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.user#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "users": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.user#docs "Direct link") +------------------------------------------------------------------------------------------------ + +ssh.actor_matchers.user matches requests by username + +[🔗](https://caddyserver.com/docs/modules/ssh.actor_matchers.user#users)users +There are no docs for this property. diff --git a/docs/caddy/modules/ssh.actors.shell.md b/docs/caddy/modules/ssh.actors.shell.md new file mode 100644 index 0000000..0372336 --- /dev/null +++ b/docs/caddy/modules/ssh.actors.shell.md @@ -0,0 +1,51 @@ +Title: Module ssh.actors.shell - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.actors.shell + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.actors.shell**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actors.shell#docs "Direct link") +----------------------------------------------------------------------------------------- + +``` +{▾ "force_command": "", "env": { + "": "" + }, "force_pty": false} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/pty` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actors.shell#docs "Direct link") +----------------------------------------------------------------------------------------- + +ssh.actors.shell is an `ssh.actors` module providing "shell" to a session. The module spawns a process using the user's default shell, as defined in the OS. On *nix, except for macOS, the module parses `/etc/passwd`, for the details and caches the result for future logins. On macOS, the module calls `dscl . -read` for the necessary user details and caches them for future logins. On Windows, the module uses the [`os/user` package](https://pkg.go.dev/os/user?GOOS=windows) from the Go standard library. + +[🔗](https://caddyserver.com/docs/modules/ssh.actors.shell#force_command)force_command +Executes the designated command using the user's default shell, regardless of the supplied command. It follows the OpenSSH semantics specified for the [`ForceCommand`](https://man.openbsd.org/OpenBSD-current/man5/sshd_config.5#ForceCommand) except for the part about `internal-sftp`. + +[🔗](https://caddyserver.com/docs/modules/ssh.actors.shell#env)env +environment variables to be set for the session + +[🔗](https://caddyserver.com/docs/modules/ssh.actors.shell#force_pty)force_pty +whether the server should check for explicit pty request diff --git a/docs/caddy/modules/ssh.actors.static_response.md b/docs/caddy/modules/ssh.actors.static_response.md new file mode 100644 index 0000000..f7bc81e --- /dev/null +++ b/docs/caddy/modules/ssh.actors.static_response.md @@ -0,0 +1,41 @@ +Title: Module ssh.actors.static_response - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.actors.static_response + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.actors.static_response**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actors.static_response#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +`{▾ "response": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/actors` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.actors.static_response#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +ssh.actors.static_response is an actor that writes a static value to the client + +[🔗](https://caddyserver.com/docs/modules/ssh.actors.static_response#response)response +There are no docs for this property. diff --git a/docs/caddy/modules/ssh.ask.localforward.allow.md b/docs/caddy/modules/ssh.ask.localforward.allow.md new file mode 100644 index 0000000..5839c1e --- /dev/null +++ b/docs/caddy/modules/ssh.ask.localforward.allow.md @@ -0,0 +1,38 @@ +Title: Module ssh.ask.localforward.allow - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.ask.localforward.allow + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.ask.localforward.allow**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.localforward.allow#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/localforward` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.localforward.allow#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +ssh.ask.localforward.allow is PortForwardingAsker module which always allows the session diff --git a/docs/caddy/modules/ssh.ask.localforward.deny.md b/docs/caddy/modules/ssh.ask.localforward.deny.md new file mode 100644 index 0000000..32806c7 --- /dev/null +++ b/docs/caddy/modules/ssh.ask.localforward.deny.md @@ -0,0 +1,38 @@ +Title: Module ssh.ask.localforward.deny - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.ask.localforward.deny + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.ask.localforward.deny**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.localforward.deny#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/localforward` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.localforward.deny#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +Allow is PortForwardingAsker module which always rejects the session diff --git a/docs/caddy/modules/ssh.ask.pty.allow.md b/docs/caddy/modules/ssh.ask.pty.allow.md new file mode 100644 index 0000000..2480e7c --- /dev/null +++ b/docs/caddy/modules/ssh.ask.pty.allow.md @@ -0,0 +1,38 @@ +Title: Module ssh.ask.pty.allow - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.ask.pty.allow + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.ask.pty.allow**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.pty.allow#docs "Direct link") +------------------------------------------------------------------------------------------ + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/pty` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.pty.allow#docs "Direct link") +------------------------------------------------------------------------------------------ + +ssh.ask.pty.allow is PtyAsker module which always allows the PTY session diff --git a/docs/caddy/modules/ssh.ask.pty.deny.md b/docs/caddy/modules/ssh.ask.pty.deny.md new file mode 100644 index 0000000..7d1ff2a --- /dev/null +++ b/docs/caddy/modules/ssh.ask.pty.deny.md @@ -0,0 +1,38 @@ +Title: Module ssh.ask.pty.deny - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.ask.pty.deny + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.ask.pty.deny**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.pty.deny#docs "Direct link") +----------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/pty` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.pty.deny#docs "Direct link") +----------------------------------------------------------------------------------------- + +Allow is PtyAsker module which always rejects the PTY session diff --git a/docs/caddy/modules/ssh.ask.reverseforward.allow.md b/docs/caddy/modules/ssh.ask.reverseforward.allow.md new file mode 100644 index 0000000..bd9196d --- /dev/null +++ b/docs/caddy/modules/ssh.ask.reverseforward.allow.md @@ -0,0 +1,36 @@ +Title: Module ssh.ask.reverseforward.allow - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.ask.reverseforward.allow + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.ask.reverseforward.allow**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.allow#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/reverseforward` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.allow#docs "Direct link") +----------------------------------------------------------------------------------------------------- diff --git a/docs/caddy/modules/ssh.ask.reverseforward.deny.md b/docs/caddy/modules/ssh.ask.reverseforward.deny.md new file mode 100644 index 0000000..4023c20 --- /dev/null +++ b/docs/caddy/modules/ssh.ask.reverseforward.deny.md @@ -0,0 +1,36 @@ +Title: Module ssh.ask.reverseforward.deny - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.ask.reverseforward.deny + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.ask.reverseforward.deny**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.deny#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/reverseforward` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.deny#docs "Direct link") +---------------------------------------------------------------------------------------------------- diff --git a/docs/caddy/modules/ssh.authentication.flows.interactive.md b/docs/caddy/modules/ssh.authentication.flows.interactive.md new file mode 100644 index 0000000..4188202 --- /dev/null +++ b/docs/caddy/modules/ssh.authentication.flows.interactive.md @@ -0,0 +1,45 @@ +Title: Module ssh.authentication.flows.interactive - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.authentication.flows.interactive + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.authentication.flows.interactive**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.flows.interactive#docs "Direct link") +------------------------------------------------------------------------------------------------------------- + +`{▾ "providers": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/authentication` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.flows.interactive#docs "Direct link") +------------------------------------------------------------------------------------------------------------- + +ssh.authentication.flows.interactive holds the interactive authentication providers + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.flows.interactive#providers)providers +A set of authentication providers implementing the UserInteractiveAuthenticator interface. If none are specified, all requests will always be unauthenticated. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **ssh.providers.interactive** diff --git a/docs/caddy/modules/ssh.authentication.flows.password_auth.md b/docs/caddy/modules/ssh.authentication.flows.password_auth.md new file mode 100644 index 0000000..897805c --- /dev/null +++ b/docs/caddy/modules/ssh.authentication.flows.password_auth.md @@ -0,0 +1,51 @@ +Title: Module ssh.authentication.flows.password_auth - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.authentication.flows.password_auth + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.authentication.flows.password_auth**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.flows.password_auth#docs "Direct link") +--------------------------------------------------------------------------------------------------------------- + +`{▾ "providers": {•••}, "permit_empty_passwords": false}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/authentication` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.flows.password_auth#docs "Direct link") +--------------------------------------------------------------------------------------------------------------- + +// PasswordAuthFlow holds the password-based authentication providers + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.flows.password_auth#providers)providers +A set of authentication providers implementing the UserPasswordAuthenticator interface. If none are specified, all requests will always be unauthenticated. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **ssh.authentication.providers.password** + +* [static](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static)Non-standard +* [static](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static)Non-standard + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.flows.password_auth#permit_empty_passwords)permit_empty_passwords +There are no docs for this property. diff --git a/docs/caddy/modules/ssh.authentication.flows.public_key.md b/docs/caddy/modules/ssh.authentication.flows.public_key.md new file mode 100644 index 0000000..63628dc --- /dev/null +++ b/docs/caddy/modules/ssh.authentication.flows.public_key.md @@ -0,0 +1,50 @@ +Title: Module ssh.authentication.flows.public_key - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.authentication.flows.public_key + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.authentication.flows.public_key**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.flows.public_key#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +`{▾ "providers": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/authentication` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.flows.public_key#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +ssh.authentication.flows.public_key holds the public key authentication providers + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.flows.public_key#providers)providers +A set of authentication providers implementing the UserPublicKeyAuthenticator interface. If none are specified, all requests will always be unauthenticated. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **ssh.authentication.providers.public_key** + +* [os](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os)Non-standard +* [os](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os)Non-standard +* [static](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static)Non-standard +* [static](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static)Non-standard diff --git a/docs/caddy/modules/ssh.authentication.providers.password.static.md b/docs/caddy/modules/ssh.authentication.providers.password.static.md new file mode 100644 index 0000000..cc25d59 --- /dev/null +++ b/docs/caddy/modules/ssh.authentication.providers.password.static.md @@ -0,0 +1,159 @@ +Title: Module ssh.authentication.providers.password.static - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static + +Markdown Content: +Module ssh.authentication.providers.password.static - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module ssh.authentication.providers.password.static +=================================================== + + There is more than one module named **Module ssh.authentication.providers.password.static**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#docs "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/kadeessh/kadeessh + +``` +{▾ "hash": {•••}, "accounts": [{▾ "id": "", "name": "", "password": "", "salt": "", "home": "", "custom": { + "": + } }]} +``` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/authentication/static` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#docs "Direct link") +--------------------------------------------------------------------------------------------------------------------- + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#hash)hash +The algorithm with which the passwords are hashed. Default: bcrypt + +Fulfilled by modules in namespace: **http.authentication.hashes** + +* [bcrypt](https://caddyserver.com/docs/modules/http.authentication.hashes.bcrypt) +* [scrypt](https://caddyserver.com/docs/modules/http.authentication.hashes.scrypt) + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#accounts)accounts +The list of accounts to authenticate. + +Account contains a username, password, and salt (if applicable). + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#accounts/id)accounts/id +The ID for the user to be identified with. If empty, UUID will be generated at provision-time. + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#accounts/name)accounts/name +A user's username. + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#accounts/password)accounts/password +The user's hashed password, base64-encoded. + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#accounts/salt)accounts/salt +The user's password salt, base64-encoded; for algorithms where external salt is needed. + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#accounts/home)accounts/home +The $HOME directory of the user. If empty, the app defaults to `C:\Users\Public` on Windows and `/var/empty` otherwise. + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static#accounts/custom)accounts/custom +Additional metadata for the user + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/ssh.authentication.providers.public_key.os.md b/docs/caddy/modules/ssh.authentication.providers.public_key.os.md new file mode 100644 index 0000000..f3fd4df --- /dev/null +++ b/docs/caddy/modules/ssh.authentication.providers.public_key.os.md @@ -0,0 +1,38 @@ +Title: Module ssh.authentication.providers.public_key.os - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.authentication.providers.public_key.os**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os#docs "Direct link") +------------------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/authentication/os` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os#docs "Direct link") +------------------------------------------------------------------------------------------------------------------- + +ssh.authentication.providers.public_key.os is an authenticator that authenticates the user based on the `.ssh/authorized_keys` in the user's $HOME diff --git a/docs/caddy/modules/ssh.authentication.providers.public_key.static.md b/docs/caddy/modules/ssh.authentication.providers.public_key.static.md new file mode 100644 index 0000000..1a124f7 --- /dev/null +++ b/docs/caddy/modules/ssh.authentication.providers.public_key.static.md @@ -0,0 +1,45 @@ +Title: Module ssh.authentication.providers.public_key.static - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.authentication.providers.public_key.static**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static#docs "Direct link") +----------------------------------------------------------------------------------------------------------------------- + +`{▾ "users": [{▾ "username": "", "keys": [""] }]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/authentication/static` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static#docs "Direct link") +----------------------------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static#users)users +the user list along ith their keys sources + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static#users/username)users/username +the login username identifying the user + +[🔗](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static#users/keys)users/keys +url to the location, e.g. file:///path/to/file or [https://github.com/username.keys](https://github.com/username.keys) diff --git a/docs/caddy/modules/ssh.config.loaders.provided.md b/docs/caddy/modules/ssh.config.loaders.provided.md new file mode 100644 index 0000000..6b6ca65 --- /dev/null +++ b/docs/caddy/modules/ssh.config.loaders.provided.md @@ -0,0 +1,98 @@ +Title: Module ssh.config.loaders.provided - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.config.loaders.provided + +Markdown Content: +Lifted and merged from golang.org/x/crypto/ssh ProvidedConfig holds server specific configuration data. + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#signer)signer +The session signers to be loaded. The field takes the form: "signer": { "module": "" ... signer module config } If empty, the default module is "fallback", which will load existing keys, or generates and stores them if non-existent. + +Fulfilled by modules in namespace: **ssh.signers** + +* [fallback](https://caddyserver.com/docs/modules/ssh.signers.fallback)Non-standard +* [fallback](https://caddyserver.com/docs/modules/ssh.signers.fallback)Non-standard +* [file](https://caddyserver.com/docs/modules/ssh.signers.file)Non-standard +* [file](https://caddyserver.com/docs/modules/ssh.signers.file)Non-standard + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#key_exchanges)key_exchanges +The allowed key exchanges algorithms. If unspecified then a default set of algorithms is used. WARNING: don't set it to anyting (not even empty array) unless you know the risks! + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#ciphers)ciphers +The allowed cipher algorithms. If unspecified then a sensible default is used. WARNING: don't set it to anyting (not even empty array) unless you know the risks! + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#ma_cs)ma_cs +The allowed MAC algorithms. If unspecified then a sensible default is used. WARNING: don't set it to anyting (not even empty array) unless you know the risks! + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#no_client_auth)no_client_auth +NoClientAuth is true if clients are allowed to connect without authenticating. + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#max_auth_tries)max_auth_tries +MaxAuthTries specifies the maximum number of authentication attempts permitted per connection. If set to a negative number, the number of attempts are unlimited. If set to zero, the number of attempts are limited to 6. + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication)authentication +This holds the authentication suite for the various flows + +Config holds the configuration of the various authentication flows, including allow/deny users/groups. + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/allow_users)authentication/allow_users +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/deny_users)authentication/deny_users +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/allow_groups)authentication/allow_groups +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/deny_groups)authentication/deny_groups +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/username_password)authentication/username_password +UsernamePassword holds the configuration of the password-based authentication flow. nil value disables the authentication flow. + +// PasswordAuthFlow holds the password-based authentication providers + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/username_password/providers)authentication/username_password/providers +A set of authentication providers implementing the UserPasswordAuthenticator interface. If none are specified, all requests will always be unauthenticated. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **ssh.authentication.providers.password** + +* [static](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static)Non-standard +* [static](https://caddyserver.com/docs/modules/ssh.authentication.providers.password.static)Non-standard + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/username_password/permit_empty_passwords)authentication/username_password/permit_empty_passwords +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/public_key)authentication/public_key +PublicKey holds the configuration of the public-key-based authentication flow. nil value disables the authentication flow. + +PublicKeyFlow holds the public key authentication providers + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/public_key/providers)authentication/public_key/providers +A set of authentication providers implementing the UserPublicKeyAuthenticator interface. If none are specified, all requests will always be unauthenticated. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **ssh.authentication.providers.public_key** + +* [os](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os)Non-standard +* [os](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.os)Non-standard +* [static](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static)Non-standard +* [static](https://caddyserver.com/docs/modules/ssh.authentication.providers.public_key.static)Non-standard + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/interactive)authentication/interactive +Interactive holds the configuration of the interactive-based authentication flow. nil value disables the authentication flow. + +InteractiveFlow holds the interactive authentication providers + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#authentication/interactive/providers)authentication/interactive/providers +A set of authentication providers implementing the UserInteractiveAuthenticator interface. If none are specified, all requests will always be unauthenticated. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +Fulfilled by modules in namespace: **ssh.providers.interactive** + +[🔗](https://caddyserver.com/docs/modules/ssh.config.loaders.provided#server_version)server_version +ServerVersion is the version identification string to announce in the public handshake. If empty, a reasonable default is used. Note that RFC 4253 section 4.2 requires that this string start with "SSH-2.0-". diff --git a/docs/caddy/modules/ssh.config_matchers.local_ip.md b/docs/caddy/modules/ssh.config_matchers.local_ip.md new file mode 100644 index 0000000..cd037b6 --- /dev/null +++ b/docs/caddy/modules/ssh.config_matchers.local_ip.md @@ -0,0 +1,41 @@ +Title: Module ssh.config_matchers.local_ip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.config_matchers.local_ip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.config_matchers.local_ip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.config_matchers.local_ip#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +`{▾ "ranges": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.config_matchers.local_ip#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +ssh.config_matchers.local_ip matches requests by local IP (or CIDR range). + +[🔗](https://caddyserver.com/docs/modules/ssh.config_matchers.local_ip#ranges)ranges +The IPs or CIDR ranges to match. diff --git a/docs/caddy/modules/ssh.config_matchers.not.md b/docs/caddy/modules/ssh.config_matchers.not.md new file mode 100644 index 0000000..30898ad --- /dev/null +++ b/docs/caddy/modules/ssh.config_matchers.not.md @@ -0,0 +1,51 @@ +Title: Module ssh.config_matchers.not - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.config_matchers.not + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.config_matchers.not**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.config_matchers.not#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.config_matchers.not#docs "Direct link") +------------------------------------------------------------------------------------------------ + +ssh.config_matchers.not matches requests by negating the results of its matcher sets. A single "not" matcher takes one or more matcher sets. Each matcher set is OR'ed; in other words, if any matcher set returns true, the final result of the "not" matcher is false. Individual matchers within a set work the same (i.e. different matchers in the same set are AND'ed). + +NOTE: The generated docs which describe the structure of this module are wrong because of how this type unmarshals JSON in a custom way. The correct structure is: + +``` +[ + + {}, + {} + +] +``` + +where each of the array elements is a matcher set, i.e. an object keyed by matcher name. diff --git a/docs/caddy/modules/ssh.config_matchers.remote_ip.md b/docs/caddy/modules/ssh.config_matchers.remote_ip.md new file mode 100644 index 0000000..933b500 --- /dev/null +++ b/docs/caddy/modules/ssh.config_matchers.remote_ip.md @@ -0,0 +1,41 @@ +Title: Module ssh.config_matchers.remote_ip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.config_matchers.remote_ip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.config_matchers.remote_ip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.config_matchers.remote_ip#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +`{▾ "ranges": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.config_matchers.remote_ip#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +ssh.config_matchers.remote_ip matches requests by client IP (or CIDR range). + +[🔗](https://caddyserver.com/docs/modules/ssh.config_matchers.remote_ip#ranges)ranges +The IPs or CIDR ranges to match. diff --git a/docs/caddy/modules/ssh.md b/docs/caddy/modules/ssh.md new file mode 100644 index 0000000..f974414 --- /dev/null +++ b/docs/caddy/modules/ssh.md @@ -0,0 +1,97 @@ +Title: Module ssh - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh + +Markdown Content: +[🔗](https://caddyserver.com/docs/modules/ssh#grace_period)grace_period +GracePeriod is the duration a server should wait for open connections to close during shutdown before closing them forcefully + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/ssh#servers)servers +The set of ssh servers keyed by custom names + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/address)servers/address +Socket addresses to which to bind listeners. Accepts [network addresses](https://caddyserver.com/docs/conventions#network-addresses) that may include port ranges. Listener addresses must be unique; they cannot be repeated across all defined servers. TCP is the only acceptable network (for now, perhaps). + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/localforward)servers/localforward +The configuration of local-forward permission module. The config structure is: "localforward": { "forward": "" ... config } defaults to: { "forward": "deny" } + +Fulfilled by modules in namespace: **ssh.ask.localforward** + +* [allow](https://caddyserver.com/docs/modules/ssh.ask.localforward.allow)Non-standard +* [allow](https://caddyserver.com/docs/modules/ssh.ask.localforward.allow)Non-standard +* [deny](https://caddyserver.com/docs/modules/ssh.ask.localforward.deny)Non-standard +* [deny](https://caddyserver.com/docs/modules/ssh.ask.localforward.deny)Non-standard + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/reverseforward)servers/reverseforward +The configuration of reverse-forward permission module. The config structure is: "reverseforward": { "forward": "" ... config } defaults to: { "reverseforward": "deny" } + +Fulfilled by modules in namespace: **ssh.ask.reverseforward** + +* [allow](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.allow)Non-standard +* [allow](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.allow)Non-standard +* [deny](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.deny)Non-standard +* [deny](https://caddyserver.com/docs/modules/ssh.ask.reverseforward.deny)Non-standard + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/pty)servers/pty +The configuration of PTY permission module. The config structure is: "pty": { "pty": "" ... config } defaults to: { "forward": "deny" } + +Fulfilled by modules in namespace: **ssh.ask.pty** + +* [allow](https://caddyserver.com/docs/modules/ssh.ask.pty.allow)Non-standard +* [allow](https://caddyserver.com/docs/modules/ssh.ask.pty.allow)Non-standard +* [deny](https://caddyserver.com/docs/modules/ssh.ask.pty.deny)Non-standard +* [deny](https://caddyserver.com/docs/modules/ssh.ask.pty.deny)Non-standard + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/idle_timeout)servers/idle_timeout +connection timeout when no activity, none if empty + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/max_timeout)servers/max_timeout +absolute connection timeout, none if empty + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/authorize)servers/authorize +The configuration of the authorizer module. The config structure is: "authorize": { "authorizer": "" ... config } default to: { "authorizer": "public" }. + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/subsystems)servers/subsystems +The list of defined subsystems in a json structure keyed by the arbitrary name of the subsystem. TODO: The current implementation is naive and can be expanded to follow the Authorzation and Actors model + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/configs)servers/configs +List of configurators that could configure the server per matchers and config providers + +Configurator holds the set of matchers and configurators that will apply custom server configurations if matched + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/configs/match)servers/configs/match +The set of matchers consulted to know whether the Actor should act on a session + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/configs/config)servers/configs/config +The config provider that shall configure the server for the matched session. "config": { "loader": "" ... config loader config } + +Fulfilled by modules in namespace: **ssh.config.loaders** + +* [provided](https://caddyserver.com/docs/modules/ssh.config.loaders.provided)Non-standard +* [provided](https://caddyserver.com/docs/modules/ssh.config.loaders.provided)Non-standard + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/actors)servers/actors +The actors that can act on a session per the matching criteria + +Actor is a collection of actor matchers and actors of an ssh session + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/actors/match)servers/actors/match +The set of matchers consulted to know whether the Actor should act on a session + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/actors/act)servers/actors/act +The actor that shall act on the matched session. "act": { "action": "" ... actor config } + +[🔗](https://caddyserver.com/docs/modules/ssh#servers/actors/final)servers/actors/final +Whether the session shoul be closed upon execution of the actor diff --git a/docs/caddy/modules/ssh.session.authorizers.chained.md b/docs/caddy/modules/ssh.session.authorizers.chained.md new file mode 100644 index 0000000..7760cc3 --- /dev/null +++ b/docs/caddy/modules/ssh.session.authorizers.chained.md @@ -0,0 +1,41 @@ +Title: Module ssh.session.authorizers.chained - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.session.authorizers.chained + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.session.authorizers.chained**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.session.authorizers.chained#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +`{▾ "authorize": [{•••}]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/authorization` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.session.authorizers.chained#docs "Direct link") +-------------------------------------------------------------------------------------------------------- + +ssh.session.authorizers.chained is a multi-authorizer module that authorizes a session against multiple authorizers + +[🔗](https://caddyserver.com/docs/modules/ssh.session.authorizers.chained#authorize)authorize +The list of sub-authorizers to loop through to authorize a session. If an authorizer in the chain fails, all the preiovusly successful authorization will be de-authorized. diff --git a/docs/caddy/modules/ssh.session.authorizers.max_session.md b/docs/caddy/modules/ssh.session.authorizers.max_session.md new file mode 100644 index 0000000..fc10193 --- /dev/null +++ b/docs/caddy/modules/ssh.session.authorizers.max_session.md @@ -0,0 +1,41 @@ +Title: Module ssh.session.authorizers.max_session - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.session.authorizers.max_session + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.session.authorizers.max_session**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.session.authorizers.max_session#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +`{▾ "max_sessions": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/authorization` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.session.authorizers.max_session#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +ssh.session.authorizers.max_session is an authorizer that permits sessions so long as the number of active sessions is below the specified maximum. + +[🔗](https://caddyserver.com/docs/modules/ssh.session.authorizers.max_session#max_sessions)max_sessions +The maximum number of active sessions diff --git a/docs/caddy/modules/ssh.session.authorizers.public.md b/docs/caddy/modules/ssh.session.authorizers.public.md new file mode 100644 index 0000000..02f63f5 --- /dev/null +++ b/docs/caddy/modules/ssh.session.authorizers.public.md @@ -0,0 +1,38 @@ +Title: Module ssh.session.authorizers.public - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.session.authorizers.public + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.session.authorizers.public**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.session.authorizers.public#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/authorization` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.session.authorizers.public#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +ssh.session.authorizers.public authorizes all sessions diff --git a/docs/caddy/modules/ssh.session.authorizers.reject.md b/docs/caddy/modules/ssh.session.authorizers.reject.md new file mode 100644 index 0000000..d237332 --- /dev/null +++ b/docs/caddy/modules/ssh.session.authorizers.reject.md @@ -0,0 +1,38 @@ +Title: Module ssh.session.authorizers.reject - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.session.authorizers.reject + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.session.authorizers.reject**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.session.authorizers.reject#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/authorization` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.session.authorizers.reject#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +ssh.session.authorizers.reject rejects all sessions diff --git a/docs/caddy/modules/ssh.signers.fallback.md b/docs/caddy/modules/ssh.signers.fallback.md new file mode 100644 index 0000000..fc3de3f --- /dev/null +++ b/docs/caddy/modules/ssh.signers.fallback.md @@ -0,0 +1,151 @@ +Title: Module ssh.signers.fallback - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.signers.fallback + +Markdown Content: +Module ssh.signers.fallback - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module ssh.signers.fallback +=========================== + + There is more than one module named **Module ssh.signers.fallback**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.signers.fallback#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/kadeessh/kadeessh + +`{▾ "storage": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/signer` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.signers.fallback#docs "Direct link") +--------------------------------------------------------------------------------------------- + +ssh.signers.fallback signer checks if the RSA, Ed25519, and ECDSA private keys exist in the storage to load. If they're absent, RSA-4096 and Ed25519 keys are generated and stored. The ECDSA key is only loaded, not generated. It is the default signer. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/ssh.signers.fallback#storage)storage +The Caddy storage module to load/store the keys. If absent or null, the default storage is loaded. + +Fulfilled by modules in namespace: **caddy.storage** + +* [file_system](https://caddyserver.com/docs/modules/caddy.storage.file_system) +* [cloudflare_kv](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb)Non-standard +* [dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb)Non-standard +* [encrypted](https://caddyserver.com/docs/modules/caddy.storage.encrypted)Non-standard +* [env_redis](https://caddyserver.com/docs/modules/caddy.storage.env_redis)Non-standard +* [gcs](https://caddyserver.com/docs/modules/caddy.storage.gcs)Non-standard +* [mysql](https://caddyserver.com/docs/modules/caddy.storage.mysql)Non-standard +* [nats](https://caddyserver.com/docs/modules/caddy.storage.nats)Non-standard +* [postgres](https://caddyserver.com/docs/modules/caddy.storage.postgres)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.storage.s3)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.storage.s3)Non-standard +* [vault](https://caddyserver.com/docs/modules/caddy.storage.vault)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/ssh.signers.file.md b/docs/caddy/modules/ssh.signers.file.md new file mode 100644 index 0000000..18a51f6 --- /dev/null +++ b/docs/caddy/modules/ssh.signers.file.md @@ -0,0 +1,63 @@ +Title: Module ssh.signers.file - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.signers.file + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.signers.file**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.signers.file#docs "Direct link") +----------------------------------------------------------------------------------------- + +`{▾ "file_system": {•••}, "keys": [{▾ "source": "", "passphrase": "" }]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/signer` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.signers.file#docs "Direct link") +----------------------------------------------------------------------------------------- + +ssh.signers.file is a session signer that uses pre-existing keys, which may be backed as files + +[🔗](https://caddyserver.com/docs/modules/ssh.signers.file#file_system)file_system +The file system implementation to use. The default is the local disk file system. File system modules used here must implement the fs.FS interface + +Fulfilled by modules in namespace: **caddy.fs** + +* [git](https://caddyserver.com/docs/modules/caddy.fs.git)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.fs.s3)Non-standard + +[🔗](https://caddyserver.com/docs/modules/ssh.signers.file#keys)keys +The collection of `signer.Key` resources. Relative paths are appended to the path of the current working directory. The supported PEM types and algorithms are: + +* RSA PRIVATE KEY: RSA +* PRIVATE KEY: RSA, ECDSA, ed25519 +* EC PRIVATE KEY: ECDSA +* DSA PRIVATE KEY: DSA +* OPENSSH PRIVATE KEY: RSA, ed25519, ECDSA + +Key is a generic holder of the location and passphrase of key (abstract) files + +[🔗](https://caddyserver.com/docs/modules/ssh.signers.file#keys/source)keys/source +Source is the identifying path of the key depending on the source. In the case of `file` signer, `Source` refers to the path to the file on disk in relative or absolute path forms. Other signers are free to define the semantics of the field. + +[🔗](https://caddyserver.com/docs/modules/ssh.signers.file#keys/passphrase)keys/passphrase +A non-empty value means the key is protected with a passphrase diff --git a/docs/caddy/modules/ssh.subsystem.inmem_sftp.md b/docs/caddy/modules/ssh.subsystem.inmem_sftp.md new file mode 100644 index 0000000..e521456 --- /dev/null +++ b/docs/caddy/modules/ssh.subsystem.inmem_sftp.md @@ -0,0 +1,38 @@ +Title: Module ssh.subsystem.inmem_sftp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/ssh.subsystem.inmem_sftp + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module ssh.subsystem.inmem_sftp**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.subsystem.inmem_sftp#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/kadeessh/kadeessh](https://github.com/kadeessh/kadeessh)** + +**Custom builds:**`xcaddy build --with github.com/kadeessh/kadeessh/internal/subsystem` + +Description[🔗](https://caddyserver.com/docs/modules/ssh.subsystem.inmem_sftp#docs "Direct link") +------------------------------------------------------------------------------------------------- + +ssh.subsystem.inmem_sftp is an in-memory SFTP server allowing shared space between all users. It starts with an empty space. Warning: For illustration purposes only! diff --git a/docs/caddy/modules/supervisor.md b/docs/caddy/modules/supervisor.md new file mode 100644 index 0000000..2617dc0 --- /dev/null +++ b/docs/caddy/modules/supervisor.md @@ -0,0 +1,59 @@ +Title: Module supervisor - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/supervisor + +Markdown Content: +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise)supervise +Definition is the configuration for process to supervise + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/command)supervise/command +Command to start and supervise. First item is the program to start, others are arguments. Supports template. + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/replicas)supervise/replicas +Replicas control how many instances of Command should run. + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/dir)supervise/dir +Dir defines the working directory the command should be executed in. Supports template. Default: current working dir + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/env)supervise/env +Env declares environment variables that should be passed to command. Supports template. + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/redirect_stdout)supervise/redirect_stdout +RedirectStdout is the file where Command stdout is written. Use "stdout" to redirect to caddy stdout. + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/redirect_stdout/type)supervise/redirect_stdout/type +Type is how the output should be redirected Valid values: + +* **null**: discard outputs +* **stdout**: redirect output to caddy process stdout +* **stderr**: redirect output to caddy process stderr +* **file**: redirect output to a file, if selected File field is required + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/redirect_stdout/file)supervise/redirect_stdout/file +File is the file where outputs should be written. This is used only when Type is "file". + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/redirect_stderr)supervise/redirect_stderr +RedirectStderr is the file where Command stderr is written. Use "stderr" to redirect to caddy stderr. + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/redirect_stderr/type)supervise/redirect_stderr/type +Type is how the output should be redirected Valid values: + +* **null**: discard outputs +* **stdout**: redirect output to caddy process stdout +* **stderr**: redirect output to caddy process stderr +* **file**: redirect output to a file, if selected File field is required + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/redirect_stderr/file)supervise/redirect_stderr/file +File is the file where outputs should be written. This is used only when Type is "file". + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/restart_policy)supervise/restart_policy +RestartPolicy define under which conditions the command should be restarted after exit. Valid values: + +* **never**: do not restart the command +* **on_failure**: restart if exit code is not 0 +* **always**: always restart + +RestartPolicy determines when a supervised process should be restarted + +[🔗](https://caddyserver.com/docs/modules/supervisor#supervise/termination_grace_period)supervise/termination_grace_period +TerminationGracePeriod defines the amount of time to wait for Command graceful termination before killing it. Ex: 10s diff --git a/docs/caddy/modules/tls.ca_pool.source.file.md b/docs/caddy/modules/tls.ca_pool.source.file.md new file mode 100644 index 0000000..fb9aba3 --- /dev/null +++ b/docs/caddy/modules/tls.ca_pool.source.file.md @@ -0,0 +1,41 @@ +Title: Module tls.ca_pool.source.file - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.ca_pool.source.file + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.ca_pool.source.file**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.file#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "pem_files": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.file#docs "Direct link") +------------------------------------------------------------------------------------------------ + +tls.ca_pool.source.file generates trusted root certificates pool from the designated DER and PEM file + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.file#pem_files)pem_files +TrustedCACertPEMFiles is a list of PEM file names from which to load certificates of trusted CAs. Client certificates which are not signed by any of these CA certificates will be rejected. diff --git a/docs/caddy/modules/tls.ca_pool.source.http.md b/docs/caddy/modules/tls.ca_pool.source.http.md new file mode 100644 index 0000000..10c06ef --- /dev/null +++ b/docs/caddy/modules/tls.ca_pool.source.http.md @@ -0,0 +1,165 @@ +Title: Module tls.ca_pool.source.http - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.ca_pool.source.http + +Markdown Content: +Module tls.ca_pool.source.http - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module tls.ca_pool.source.http +============================== + + There is more than one module named **Module tls.ca_pool.source.http**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.http#docs "Direct link") +------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "endpoints": [""], "tls": {▾ "ca": {•••}, "insecure_skip_verify": false, "handshake_timeout": 0, "server_name": "", "renegotiation": "" }}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.http#docs "Direct link") +------------------------------------------------------------------------------------------------ + +The HTTPCertPool fetches the trusted root certificates from HTTP(S) endpoints. The TLS connection properties can be customized, including custom trusted root certificate. One example usage of this module is to get the trusted certificates from another Caddy instance that is running the PKI app and ACME server. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.http#endpoints)endpoints +the list of URLs that respond with PEM-encoded certificates to trust. + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.http#tls)tls +Customize the TLS connection knobs to used during the HTTP call + +TLSConfig holds configuration related to the TLS configuration for the transport/client. copied from with minor modifications: modules/caddyhttp/reverseproxy/httptransport.go + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.http#tls/ca)tls/ca +Provides the guest module that provides the trusted certificate authority (CA) certificates + +Fulfilled by modules in namespace: **tls.ca_pool.source** + +* [file](https://caddyserver.com/docs/modules/tls.ca_pool.source.file) +* [http](https://caddyserver.com/docs/modules/tls.ca_pool.source.http) +* [inline](https://caddyserver.com/docs/modules/tls.ca_pool.source.inline) +* [lazy](https://caddyserver.com/docs/modules/tls.ca_pool.source.lazy) +* [pki_intermediate](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_intermediate) +* [pki_root](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_root) +* [storage](https://caddyserver.com/docs/modules/tls.ca_pool.source.storage) + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.http#tls/insecure_skip_verify)tls/insecure_skip_verify +If true, TLS verification of server certificates will be disabled. This is insecure and may be removed in the future. Do not use this option except in testing or local development environments. + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.http#tls/handshake_timeout)tls/handshake_timeout +The duration to allow a TLS handshake to a server. Default: No timeout. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.http#tls/server_name)tls/server_name +The server name used when verifying the certificate received in the TLS handshake. By default, this will use the upstream address' host part. You only need to override this if your upstream address does not match the certificate the upstream is likely to use. For example if the upstream address is an IP address, then you would need to configure this to the hostname being served by the upstream server. Currently, this does not support placeholders because the TLS config is not provisioned on each connection, so a static value must be used. + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.http#tls/renegotiation)tls/renegotiation +TLS renegotiation level. TLS renegotiation is the act of performing subsequent handshakes on a connection after the first. The level can be: + +* "never": (the default) disables renegotiation. +* "once": allows a remote server to request renegotiation once per connection. +* "freely": allows a remote server to repeatedly request renegotiation. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/tls.ca_pool.source.inline.md b/docs/caddy/modules/tls.ca_pool.source.inline.md new file mode 100644 index 0000000..5f3aec1 --- /dev/null +++ b/docs/caddy/modules/tls.ca_pool.source.inline.md @@ -0,0 +1,41 @@ +Title: Module tls.ca_pool.source.inline - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.ca_pool.source.inline + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.ca_pool.source.inline**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.inline#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "trusted_ca_certs": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.inline#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +tls.ca_pool.source.inline is a certificate authority pool provider coming from a DER-encoded certificates in the config + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.inline#trusted_ca_certs)trusted_ca_certs +A list of base64 DER-encoded CA certificates against which to validate client certificates. Client certs which are not signed by any of these CAs will be rejected. diff --git a/docs/caddy/modules/tls.ca_pool.source.lazy.md b/docs/caddy/modules/tls.ca_pool.source.lazy.md new file mode 100644 index 0000000..56aa4f1 --- /dev/null +++ b/docs/caddy/modules/tls.ca_pool.source.lazy.md @@ -0,0 +1,44 @@ +Title: Module tls.ca_pool.source.lazy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.ca_pool.source.lazy + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.ca_pool.source.lazy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.lazy#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "ca": {•••}, "eager_validation": false}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.lazy#docs "Direct link") +------------------------------------------------------------------------------------------------ + +tls.ca_pool.source.lazy defers the generation of the certificate pool from the guest module to demand-time rather than at provisionig time. The gain of the lazy load adds a risk of failure to load the certificates at demand time because the validation that's typically done at provisioning is deferred. The validation can be enforced to run before runtime by setting `EagerValidation`/`eager_validation` to `true`. It is the operator's responsibility to ensure the resources are available if `EagerValidation`/`eager_validation` is set to `true`. The module also incurs performance cost at every demand. + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.lazy#ca)ca +Provides the guest module that provides the trusted certificate authority (CA) certificates + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.lazy#eager_validation)eager_validation +Whether the validation step should try to load and provision the guest module to validate the correctness of the configuration. Depeneding on the type of the guest module, the resources may not be available at validation time. It is the operator's responsibility to ensure the resources are available if `EagerValidation`/`eager_validation` is set to `true`. diff --git a/docs/caddy/modules/tls.ca_pool.source.pki_intermediate.md b/docs/caddy/modules/tls.ca_pool.source.pki_intermediate.md new file mode 100644 index 0000000..618b867 --- /dev/null +++ b/docs/caddy/modules/tls.ca_pool.source.pki_intermediate.md @@ -0,0 +1,41 @@ +Title: Module tls.ca_pool.source.pki_intermediate - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_intermediate + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.ca_pool.source.pki_intermediate**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_intermediate#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +`{▾ "authority": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_intermediate#docs "Direct link") +------------------------------------------------------------------------------------------------------------ + +tls.ca_pool.source.pki_intermediate extracts the trusted intermediate certificates from Caddy's native 'pki' app + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_intermediate#authority)authority +List of the Authority names that are configured in the `pki` app whose intermediate certificates are trusted diff --git a/docs/caddy/modules/tls.ca_pool.source.pki_root.md b/docs/caddy/modules/tls.ca_pool.source.pki_root.md new file mode 100644 index 0000000..190854a --- /dev/null +++ b/docs/caddy/modules/tls.ca_pool.source.pki_root.md @@ -0,0 +1,41 @@ +Title: Module tls.ca_pool.source.pki_root - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_root + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.ca_pool.source.pki_root**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_root#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾ "authority": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_root#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +tls.ca_pool.source.pki_root extracts the trusted root certificates from Caddy's native 'pki' app + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.pki_root#authority)authority +List of the Authority names that are configured in the `pki` app whose root certificates are trusted diff --git a/docs/caddy/modules/tls.ca_pool.source.storage.md b/docs/caddy/modules/tls.ca_pool.source.storage.md new file mode 100644 index 0000000..6c16f2a --- /dev/null +++ b/docs/caddy/modules/tls.ca_pool.source.storage.md @@ -0,0 +1,154 @@ +Title: Module tls.ca_pool.source.storage - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.ca_pool.source.storage + +Markdown Content: +Module tls.ca_pool.source.storage - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module tls.ca_pool.source.storage +================================= + + There is more than one module named **Module tls.ca_pool.source.storage**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.storage#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "storage": {•••}, "pem_keys": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.storage#docs "Direct link") +--------------------------------------------------------------------------------------------------- + +tls.ca_pool.source.storage extracts the trusted certificates root from Caddy storage + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.storage#storage)storage +The storage module where the trusted root certificates are stored. Absent explicit storage implies the use of Caddy default storage. + +Fulfilled by modules in namespace: **caddy.storage** + +* [file_system](https://caddyserver.com/docs/modules/caddy.storage.file_system) +* [cloudflare_kv](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb)Non-standard +* [dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb)Non-standard +* [encrypted](https://caddyserver.com/docs/modules/caddy.storage.encrypted)Non-standard +* [env_redis](https://caddyserver.com/docs/modules/caddy.storage.env_redis)Non-standard +* [gcs](https://caddyserver.com/docs/modules/caddy.storage.gcs)Non-standard +* [mysql](https://caddyserver.com/docs/modules/caddy.storage.mysql)Non-standard +* [nats](https://caddyserver.com/docs/modules/caddy.storage.nats)Non-standard +* [postgres](https://caddyserver.com/docs/modules/caddy.storage.postgres)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.storage.s3)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.storage.s3)Non-standard +* [vault](https://caddyserver.com/docs/modules/caddy.storage.vault)Non-standard + +[🔗](https://caddyserver.com/docs/modules/tls.ca_pool.source.storage#pem_keys)pem_keys +The storage key/index to the location of the certificates + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/tls.certificates.automate.md b/docs/caddy/modules/tls.certificates.automate.md new file mode 100644 index 0000000..5f69323 --- /dev/null +++ b/docs/caddy/modules/tls.certificates.automate.md @@ -0,0 +1,40 @@ +Title: Module tls.certificates.automate - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.certificates.automate + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.certificates.automate**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.certificates.automate#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.certificates.automate#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +tls.certificates.automate will automatically manage certificates for the names in the list, including obtaining and renewing certificates. Automated certificates are managed according to their matching automation policy, configured elsewhere in this app. + +Technically, this is a no-op certificate loader module that is treated as a special case: it uses this app's automation features to load certificates for the list of hostnames, rather than loading certificates manually. But the end result is the same: certificates for these subject names will be loaded into the in-memory cache and may then be used. diff --git a/docs/caddy/modules/tls.certificates.load_files.md b/docs/caddy/modules/tls.certificates.load_files.md new file mode 100644 index 0000000..4189c38 --- /dev/null +++ b/docs/caddy/modules/tls.certificates.load_files.md @@ -0,0 +1,50 @@ +Title: Module tls.certificates.load_files - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.certificates.load_files + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.certificates.load_files**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_files#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`[{▾ "certificate": "", "key": "", "format": "", "tags": [""]}]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_files#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +tls.certificates.load_files loads certificates and their associated keys from disk. + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_files#certificate)certificate +Path to the certificate (public key) file. + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_files#key)key +Path to the private key file. + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_files#format)format +The format of the cert and key. Can be "pem". Default: "pem" + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_files#tags)tags +Arbitrary values to associate with this certificate. Can be useful when you want to select a particular certificate when there may be multiple valid candidates. diff --git a/docs/caddy/modules/tls.certificates.load_folders.md b/docs/caddy/modules/tls.certificates.load_folders.md new file mode 100644 index 0000000..57fe1a0 --- /dev/null +++ b/docs/caddy/modules/tls.certificates.load_folders.md @@ -0,0 +1,38 @@ +Title: Module tls.certificates.load_folders - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.certificates.load_folders + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.certificates.load_folders**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_folders#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_folders#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +tls.certificates.load_folders loads certificates and their associated keys from disk by recursively walking the specified directories, looking for PEM files which contain both a certificate and a key. diff --git a/docs/caddy/modules/tls.certificates.load_pem.md b/docs/caddy/modules/tls.certificates.load_pem.md new file mode 100644 index 0000000..7c98897 --- /dev/null +++ b/docs/caddy/modules/tls.certificates.load_pem.md @@ -0,0 +1,47 @@ +Title: Module tls.certificates.load_pem - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.certificates.load_pem + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.certificates.load_pem**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_pem#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`[{▾ "certificate": "", "key": "", "tags": [""]}]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_pem#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +tls.certificates.load_pem loads certificates and their associated keys by decoding their PEM blocks directly. This has the advantage of not needing to store them on disk at all. + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_pem#certificate)certificate +The certificate (public key) in PEM format. + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_pem#key)key +The private key in PEM format. + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_pem#tags)tags +Arbitrary values to associate with this certificate. Can be useful when you want to select a particular certificate when there may be multiple valid candidates. diff --git a/docs/caddy/modules/tls.certificates.load_storage.md b/docs/caddy/modules/tls.certificates.load_storage.md new file mode 100644 index 0000000..51ace35 --- /dev/null +++ b/docs/caddy/modules/tls.certificates.load_storage.md @@ -0,0 +1,55 @@ +Title: Module tls.certificates.load_storage - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.certificates.load_storage + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.certificates.load_storage**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_storage#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +`{▾ "pairs": [{▾ "certificate": "", "key": "", "format": "", "tags": [""] }]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_storage#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +tls.certificates.load_storage loads certificates and their associated keys from the globally configured storage module. + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_storage#pairs)pairs +A list of pairs of certificate and key file names along with their encoding format so that they can be loaded from storage. + +CertKeyFilePair pairs certificate and key file names along with their encoding format so that they can be loaded from disk. + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_storage#pairs/certificate)pairs/certificate +Path to the certificate (public key) file. + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_storage#pairs/key)pairs/key +Path to the private key file. + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_storage#pairs/format)pairs/format +The format of the cert and key. Can be "pem". Default: "pem" + +[🔗](https://caddyserver.com/docs/modules/tls.certificates.load_storage#pairs/tags)pairs/tags +Arbitrary values to associate with this certificate. Can be useful when you want to select a particular certificate when there may be multiple valid candidates. diff --git a/docs/caddy/modules/tls.client_auth.revocation.md b/docs/caddy/modules/tls.client_auth.revocation.md new file mode 100644 index 0000000..ba438fd --- /dev/null +++ b/docs/caddy/modules/tls.client_auth.revocation.md @@ -0,0 +1,54 @@ +Title: Module tls.client_auth.revocation - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.client_auth.revocation + +Markdown Content: +tls.client_auth.revocation Allows checking of client certificate revocation status based on CRL or OCSP + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#mode)mode +Mode defines the "Revocation Check Mode" Supported Values 'prefer_ocsp', 'prefer_crl', 'ocsp_only', 'crl_only', 'disabled' See [https://github.com/Gr33nbl00d/caddy-revocation-validator#mode](https://github.com/Gr33nbl00d/caddy-revocation-validator#mode) + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config)crl_config +CRLConfig Contains the certificate revocation list configuration (Optional) + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config/work_dir)crl_config/work_dir +WorkDir Configures the working directory for temporary CRL downloads and for disk based persistent CRLs + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config/cdp_config)crl_config/cdp_config +CDPConfig Configures how CDP (Certificate Distribution Point Extension) entries in the client certificate are used + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config/cdp_config/crl_fetch_mode)crl_config/cdp_config/crl_fetch_mode +CRLFetchMode Configures how and when CRLs are downloaded for the first time Supported Values: 'fetch_actively', 'fetch_background' See: [https://github.com/Gr33nbl00d/caddy-revocation-validator#crl_fetch_mode](https://github.com/Gr33nbl00d/caddy-revocation-validator#crl_fetch_mode) + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config/cdp_config/crl_cdp_strict)crl_config/cdp_config/crl_cdp_strict +CRLCDPStrict Configures if CRL checking is mandatory to allow a connection if CDP is defined (Optional) (Default: false) See: [https://github.com/Gr33nbl00d/caddy-revocation-validator#crl_cdp_strict](https://github.com/Gr33nbl00d/caddy-revocation-validator#crl_cdp_strict) + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config/storage_type)crl_config/storage_type +StorageType Configures how to store CRLs locally (Optional) Supported Values: 'memory', 'disk' Default: 'disk' See: [https://github.com/Gr33nbl00d/caddy-revocation-validator#storage_type](https://github.com/Gr33nbl00d/caddy-revocation-validator#storage_type) + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config/update_interval)crl_config/update_interval +UpdateInterval The interval in which the already known CRLs will be updated. (Optional) (Default: 30 minutes) Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h” See: [https://pkg.go.dev/time#ParseDuration](https://pkg.go.dev/time#ParseDuration) + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config/signature_validation_mode)crl_config/signature_validation_mode +Configures the signature validation or the CRL (Optional) (Default: 'verify') Supported Values: 'none', 'verify', 'verify_log' See: [https://github.com/Gr33nbl00d/caddy-revocation-validator#signature_validation_mode](https://github.com/Gr33nbl00d/caddy-revocation-validator#signature_validation_mode) + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config/crl_urls)crl_config/crl_urls +CRLUrls (Optional) A predefined list of http(s) urls pointing to CRLs. These lists will be checked for all client certificates. The predefined CRLs will be loaded on startup and updated cyclic. PEM and DER encoding are both supported + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config/crl_files)crl_config/crl_files +CRLFiles (Optional) A predefined list of files pointing to CRLs. These lists will be checked for all client certificates. The predefined CRLs will be loaded on startup PEM and DER encoding are both supported + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#crl_config/trusted_signature_certs_files)crl_config/trusted_signature_certs_files +TrustedSignatureCertsFiles (Optional) A predefined list of files of CA certificates which are trusted for CRL signing. These certificates will be used to verify CRL signature if the CRL signature cert is not part of the client cert chain. If the signature cert is part of the client cert chain there is no need to configure a certificate here. PEM and DER encoding are both supported + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#ocsp_config)ocsp_config +OCSPConfig Contains the Online Certificate Status Protocol configuration (Optional) + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#ocsp_config/default_cache_duration)ocsp_config/default_cache_duration +DefaultCacheDuration The default time to cache OCSP responses (Optional) (Default: 0) Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h” If the default time is zero no caching will be performed. + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#ocsp_config/trusted_responder_certs_files)ocsp_config/trusted_responder_certs_files +TrustedResponderCertsFiles (Optional) A predefined list of files of CA certificates which are trusted to verify the OCSP response signature. These certificates will be used to verify OCSP response signature if the ocsp response signature cert is not part of the client cert chain. If the signature cert is part of the client cert chain there is no need to configure a certificate here. PEM and DER encoding are both supported + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.revocation#ocsp_config/ocsp_aia_strict)ocsp_config/ocsp_aia_strict +OCSPAIAStrict Configures if OCSP checking is mandatory to allow a connection if AIA is defined (Optional) (Default: false) In strict mode it is required that if an OCSP server is defined inside AIA extension at least one OCSP server defined can be contacted to check for revocation. Or a valid response of one of the OCSP server is inside the cache If no OCSP server can be contacted and no cached response is present or the validation of the OCSP response signature failed connection is denied. diff --git a/docs/caddy/modules/tls.client_auth.verifier.ldap_validator.md b/docs/caddy/modules/tls.client_auth.verifier.ldap_validator.md new file mode 100644 index 0000000..ce86ce7 --- /dev/null +++ b/docs/caddy/modules/tls.client_auth.verifier.ldap_validator.md @@ -0,0 +1,53 @@ +Title: Module tls.client_auth.verifier.ldap_validator - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator + +Markdown Content: +There is more than one module named **Module tls.client_auth.verifier.ldap_validator**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#docs "Direct link") +---------------------------------------------------------------------------------------------------------------- + +`{▾ "server": "", "bind_user": "", "bind_password": "", "search_base": "", "search_filters": "", "attributes": {▾ "user_certificate": "" }, "success_cache": 0, "failure_cache": 0}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/thestaticturtle/caddy-client-tls-ldap-validator](https://github.com/thestaticturtle/caddy-client-tls-ldap-validator)** + +**Custom builds:**`xcaddy build --with github.com/thestaticturtle/caddy-client-tls-ldap-validator` + +Description[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#docs "Direct link") +---------------------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#server)server +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#bind_user)bind_user +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#bind_password)bind_password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#search_base)search_base +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#search_filters)search_filters +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#attributes)attributes +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#attributes/user_certificate)attributes/user_certificate +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#success_cache)success_cache +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.ldap_validator#failure_cache)failure_cache +There are no docs for this property. diff --git a/docs/caddy/modules/tls.client_auth.verifier.leaf.md b/docs/caddy/modules/tls.client_auth.verifier.leaf.md new file mode 100644 index 0000000..ebecc5d --- /dev/null +++ b/docs/caddy/modules/tls.client_auth.verifier.leaf.md @@ -0,0 +1,136 @@ +Title: Module tls.client_auth.verifier.leaf - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.client_auth.verifier.leaf + +Markdown Content: +Module tls.client_auth.verifier.leaf - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module tls.client_auth.verifier.leaf +==================================== + + There is more than one module named **Module tls.client_auth.verifier.leaf**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.leaf#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "leaf_certs_loaders": [{•••}]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.leaf#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +tls.client_auth.verifier.leaf verifies the client's leaf certificate. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.leaf#leaf_certs_loaders)leaf_certs_loaders +There are no docs for this property. + +Fulfilled by modules in namespace: **tls.leaf_cert_loader** + +* [file](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.file) +* [folder](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.folder) +* [pem](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.pem) +* [storage](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.storage) + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/tls.client_auth.verifier.san_dns.md b/docs/caddy/modules/tls.client_auth.verifier.san_dns.md new file mode 100644 index 0000000..83a28e0 --- /dev/null +++ b/docs/caddy/modules/tls.client_auth.verifier.san_dns.md @@ -0,0 +1,39 @@ +Title: Module tls.client_auth.verifier.san_dns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.client_auth.verifier.san_dns + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.client_auth.verifier.san_dns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.san_dns#docs "Direct link") +--------------------------------------------------------------------------------------------------------- + +`{▾ "names": [""]}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/exante/caddy-tls-san-dns](https://github.com/exante/caddy-tls-san-dns)** + +**Custom builds:**`xcaddy build --with github.com/exante/caddy-tls-san-dns` + +Description[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.san_dns#docs "Direct link") +--------------------------------------------------------------------------------------------------------- + +[🔗](https://caddyserver.com/docs/modules/tls.client_auth.verifier.san_dns#names)names +There are no docs for this property. diff --git a/docs/caddy/modules/tls.ech.publishers.dns.md b/docs/caddy/modules/tls.ech.publishers.dns.md new file mode 100644 index 0000000..6f1c32b --- /dev/null +++ b/docs/caddy/modules/tls.ech.publishers.dns.md @@ -0,0 +1,203 @@ +Title: Module tls.ech.publishers.dns - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.ech.publishers.dns + +Markdown Content: +Module tls.ech.publishers.dns - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module tls.ech.publishers.dns +============================= + + There is more than one module named **Module tls.ech.publishers.dns**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ech.publishers.dns#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "provider": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.ech.publishers.dns#docs "Direct link") +----------------------------------------------------------------------------------------------- + +tls.ech.publishers.dns configures how to publish an ECH configuration to DNS records for the specified domains. + +EXPERIMENTAL: Subject to change. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/tls.ech.publishers.dns#provider)provider +The DNS provider module which will establish the HTTPS record(s). + +Fulfilled by modules in namespace: **dns.providers** + +* [acmedns](https://caddyserver.com/docs/modules/dns.providers.acmedns)Non-standard +* [acmeproxy](https://caddyserver.com/docs/modules/dns.providers.acmeproxy)Non-standard +* [alidns](https://caddyserver.com/docs/modules/dns.providers.alidns)Non-standard +* [azure](https://caddyserver.com/docs/modules/dns.providers.azure)Non-standard +* [bunny](https://caddyserver.com/docs/modules/dns.providers.bunny)Non-standard +* [civo](https://caddyserver.com/docs/modules/dns.providers.civo)Non-standard +* [cloudflare](https://caddyserver.com/docs/modules/dns.providers.cloudflare)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [ddnss](https://caddyserver.com/docs/modules/dns.providers.ddnss)Non-standard +* [desec](https://caddyserver.com/docs/modules/dns.providers.desec)Non-standard +* [digitalocean](https://caddyserver.com/docs/modules/dns.providers.digitalocean)Non-standard +* [dinahosting](https://caddyserver.com/docs/modules/dns.providers.dinahosting)Non-standard +* [directadmin](https://caddyserver.com/docs/modules/dns.providers.directadmin)Non-standard +* [dnsexit](https://caddyserver.com/docs/modules/dns.providers.dnsexit)Non-standard +* [dnsimple](https://caddyserver.com/docs/modules/dns.providers.dnsimple)Non-standard +* [dnsmadeeasy](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy)Non-standard +* [dnspod](https://caddyserver.com/docs/modules/dns.providers.dnspod)Non-standard +* [domainnameshop](https://caddyserver.com/docs/modules/dns.providers.domainnameshop)Non-standard +* [dreamhost](https://caddyserver.com/docs/modules/dns.providers.dreamhost)Non-standard +* [duckdns](https://caddyserver.com/docs/modules/dns.providers.duckdns)Non-standard +* [dynu](https://caddyserver.com/docs/modules/dns.providers.dynu)Non-standard +* [easydns](https://caddyserver.com/docs/modules/dns.providers.easydns)Non-standard +* [edgeone](https://caddyserver.com/docs/modules/dns.providers.edgeone)Non-standard +* [gandi](https://caddyserver.com/docs/modules/dns.providers.gandi)Non-standard +* [glesys](https://caddyserver.com/docs/modules/dns.providers.glesys)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [google_domains](https://caddyserver.com/docs/modules/dns.providers.google_domains)Non-standard +* [googleclouddns](https://caddyserver.com/docs/modules/dns.providers.googleclouddns)Non-standard +* [he](https://caddyserver.com/docs/modules/dns.providers.he)Non-standard +* [hetzner](https://caddyserver.com/docs/modules/dns.providers.hetzner)Non-standard +* [hexonet](https://caddyserver.com/docs/modules/dns.providers.hexonet)Non-standard +* [hosttech](https://caddyserver.com/docs/modules/dns.providers.hosttech)Non-standard +* [huaweicloud](https://caddyserver.com/docs/modules/dns.providers.huaweicloud)Non-standard +* [immosquare](https://caddyserver.com/docs/modules/dns.providers.immosquare)Non-standard +* [infomaniak](https://caddyserver.com/docs/modules/dns.providers.infomaniak)Non-standard +* [inwx](https://caddyserver.com/docs/modules/dns.providers.inwx)Non-standard +* [ionos](https://caddyserver.com/docs/modules/dns.providers.ionos)Non-standard +* [katapult](https://caddyserver.com/docs/modules/dns.providers.katapult)Non-standard +* [leaseweb](https://caddyserver.com/docs/modules/dns.providers.leaseweb)Non-standard +* [lego_deprecated](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [loopia](https://caddyserver.com/docs/modules/dns.providers.loopia)Non-standard +* [mailinabox](https://caddyserver.com/docs/modules/dns.providers.mailinabox)Non-standard +* [metaname](https://caddyserver.com/docs/modules/dns.providers.metaname)Non-standard +* [namecheap](https://caddyserver.com/docs/modules/dns.providers.namecheap)Non-standard +* [namedotcom](https://caddyserver.com/docs/modules/dns.providers.namedotcom)Non-standard +* [namesilo](https://caddyserver.com/docs/modules/dns.providers.namesilo)Non-standard +* [nanelo](https://caddyserver.com/docs/modules/dns.providers.nanelo)Non-standard +* [neoserv](https://caddyserver.com/docs/modules/dns.providers.neoserv)Non-standard +* [netcup](https://caddyserver.com/docs/modules/dns.providers.netcup)Non-standard +* [netlify](https://caddyserver.com/docs/modules/dns.providers.netlify)Non-standard +* [njalla](https://caddyserver.com/docs/modules/dns.providers.njalla)Non-standard +* [openstack-designate](https://caddyserver.com/docs/modules/dns.providers.openstack-designate)Non-standard +* [ovh](https://caddyserver.com/docs/modules/dns.providers.ovh)Non-standard +* [porkbun](https://caddyserver.com/docs/modules/dns.providers.porkbun)Non-standard +* [powerdns](https://caddyserver.com/docs/modules/dns.providers.powerdns)Non-standard +* [rfc2136](https://caddyserver.com/docs/modules/dns.providers.rfc2136)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [scaleway](https://caddyserver.com/docs/modules/dns.providers.scaleway)Non-standard +* [selectel](https://caddyserver.com/docs/modules/dns.providers.selectel)Non-standard +* [spaceship](https://caddyserver.com/docs/modules/dns.providers.spaceship)Non-standard +* [tencentcloud](https://caddyserver.com/docs/modules/dns.providers.tencentcloud)Non-standard +* [transip](https://caddyserver.com/docs/modules/dns.providers.transip)Non-standard +* [vercel](https://caddyserver.com/docs/modules/dns.providers.vercel)Non-standard +* [vultr](https://caddyserver.com/docs/modules/dns.providers.vultr)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/tls.get_certificate.file.md b/docs/caddy/modules/tls.get_certificate.file.md new file mode 100644 index 0000000..d69f210 --- /dev/null +++ b/docs/caddy/modules/tls.get_certificate.file.md @@ -0,0 +1,41 @@ +Title: Module tls.get_certificate.file - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.get_certificate.file + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.get_certificate.file**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.file#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "path": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/gonevo/caddy-tls-file-manager](https://github.com/gonevo/caddy-tls-file-manager)** + +**Custom builds:**`xcaddy build --with github.com/gonevo/caddy-tls-file-manager` + +Description[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.file#docs "Direct link") +------------------------------------------------------------------------------------------------- + +tls.get_certificate.file can get a certificate via file. + +[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.file#path)path +The path to file with domain-certificate dictionary. Required. diff --git a/docs/caddy/modules/tls.get_certificate.http.md b/docs/caddy/modules/tls.get_certificate.http.md new file mode 100644 index 0000000..b317e59 --- /dev/null +++ b/docs/caddy/modules/tls.get_certificate.http.md @@ -0,0 +1,51 @@ +Title: Module tls.get_certificate.http - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.get_certificate.http + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.get_certificate.http**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.http#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "url": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.http#docs "Direct link") +------------------------------------------------------------------------------------------------- + +tls.get_certificate.http can get a certificate via HTTP(S) request. + +[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.http#url)url +The URL from which to download the certificate. Required. + +The URL will be augmented with query string parameters taken from the TLS handshake: + +* server_name: The SNI value +* signature_schemes: Comma-separated list of hex IDs of signatures +* cipher_suites: Comma-separated list of hex IDs of cipher suites + +To be valid, the response must be HTTP 200 with a PEM body consisting of blocks for the certificate chain and the private key. + +To indicate that this manager is not managing a certificate for the described handshake, the endpoint should return HTTP 204 (No Content). Error statuses will indicate that the manager is capable of providing a certificate but was unable to. diff --git a/docs/caddy/modules/tls.get_certificate.pfx.md b/docs/caddy/modules/tls.get_certificate.pfx.md new file mode 100644 index 0000000..6bc402a --- /dev/null +++ b/docs/caddy/modules/tls.get_certificate.pfx.md @@ -0,0 +1,44 @@ +Title: Module tls.get_certificate.pfx - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.get_certificate.pfx + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.get_certificate.pfx**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.pfx#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "path": "", "password": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/quix-labs/caddy-pfx-certificates](https://github.com/quix-labs/caddy-pfx-certificates)** + +**Custom builds:**`xcaddy build --with github.com/quix-labs/caddy-pfx-certificates` + +Description[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.pfx#docs "Direct link") +------------------------------------------------------------------------------------------------ + +tls.get_certificate.pfx allow user to set path to .pfx file to load TLS certificate + +[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.pfx#path)path +The path to file with domain-certificate dictionary. Required. + +[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.pfx#password)password +The password used to decode pfx file. Required. diff --git a/docs/caddy/modules/tls.get_certificate.tailscale.md b/docs/caddy/modules/tls.get_certificate.tailscale.md new file mode 100644 index 0000000..c59729a --- /dev/null +++ b/docs/caddy/modules/tls.get_certificate.tailscale.md @@ -0,0 +1,126 @@ +Title: Module tls.get_certificate.tailscale - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.get_certificate.tailscale + +Markdown Content: +Module tls.get_certificate.tailscale - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module tls.get_certificate.tailscale +==================================== + + There is more than one module named **Module tls.get_certificate.tailscale**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.tailscale#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.get_certificate.tailscale#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +tls.get_certificate.tailscale is a module that can get certificates from the local Tailscale process. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/tls.handshake_match.alpn.md b/docs/caddy/modules/tls.handshake_match.alpn.md new file mode 100644 index 0000000..609f631 --- /dev/null +++ b/docs/caddy/modules/tls.handshake_match.alpn.md @@ -0,0 +1,103 @@ +Title: Module tls.handshake_match.alpn - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.handshake_match.alpn + +Markdown Content: +Module tls.handshake_match.alpn - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + + There is more than one module named . Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description +----------- + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/tls.handshake_match.local_ip.md b/docs/caddy/modules/tls.handshake_match.local_ip.md new file mode 100644 index 0000000..933d153 --- /dev/null +++ b/docs/caddy/modules/tls.handshake_match.local_ip.md @@ -0,0 +1,41 @@ +Title: Module tls.handshake_match.local_ip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.handshake_match.local_ip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.handshake_match.local_ip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.local_ip#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +`{▾ "ranges": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.local_ip#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +tls.handshake_match.local_ip matches based on the IP address of the interface receiving the connection. Specific IPs or CIDR ranges can be specified. + +[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.local_ip#ranges)ranges +The IPs or CIDR ranges to match. diff --git a/docs/caddy/modules/tls.handshake_match.remote_ip.md b/docs/caddy/modules/tls.handshake_match.remote_ip.md new file mode 100644 index 0000000..8b36868 --- /dev/null +++ b/docs/caddy/modules/tls.handshake_match.remote_ip.md @@ -0,0 +1,46 @@ +Title: Module tls.handshake_match.remote_ip - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.handshake_match.remote_ip + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.handshake_match.remote_ip**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.remote_ip#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +`{▾ "ranges": [""], "not_ranges": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.remote_ip#docs "Direct link") +------------------------------------------------------------------------------------------------------ + +tls.handshake_match.remote_ip matches based on the remote IP of the connection. Specific IPs or CIDR ranges can be specified. + +Note that IPs can sometimes be spoofed, so do not rely on this as a replacement for actual authentication. + +[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.remote_ip#ranges)ranges +The IPs or CIDR ranges to match. + +[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.remote_ip#not_ranges)not_ranges +The IPs or CIDR ranges to _NOT_ match. diff --git a/docs/caddy/modules/tls.handshake_match.sni.md b/docs/caddy/modules/tls.handshake_match.sni.md new file mode 100644 index 0000000..a73ceb6 --- /dev/null +++ b/docs/caddy/modules/tls.handshake_match.sni.md @@ -0,0 +1,126 @@ +Title: Module tls.handshake_match.sni - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.handshake_match.sni + +Markdown Content: +Module tls.handshake_match.sni - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module tls.handshake_match.sni +============================== + + There is more than one module named **Module tls.handshake_match.sni**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.sni#docs "Direct link") +------------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/caddyserver/caddy + +`[""]` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.sni#docs "Direct link") +------------------------------------------------------------------------------------------------ + +tls.handshake_match.sni matches based on SNI. Names in this list may use left-most-label wildcards, similar to wildcard certificates. + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/tls.handshake_match.sni_regexp.md b/docs/caddy/modules/tls.handshake_match.sni_regexp.md new file mode 100644 index 0000000..a04cf43 --- /dev/null +++ b/docs/caddy/modules/tls.handshake_match.sni_regexp.md @@ -0,0 +1,44 @@ +Title: Module tls.handshake_match.sni_regexp - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.handshake_match.sni_regexp + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.handshake_match.sni_regexp**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.sni_regexp#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +`{▾ "name": "", "pattern": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.sni_regexp#docs "Direct link") +------------------------------------------------------------------------------------------------------- + +tls.handshake_match.sni_regexp matches based on SNI using a regular expression. + +[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.sni_regexp#name)name +A unique name for this regular expression. Optional, but useful to prevent overwriting captures from other regexp matchers. + +[🔗](https://caddyserver.com/docs/modules/tls.handshake_match.sni_regexp#pattern)pattern +The regular expression to evaluate, in RE2 syntax, which is the same general syntax used by Go, Perl, and Python. For details, see [Go's regexp package](https://golang.org/pkg/regexp/). Captures are accessible via placeholders. Unnamed capture groups are exposed as their numeric, 1-based index, while named capture groups are available by the capture group name. diff --git a/docs/caddy/modules/tls.issuance.acme.md b/docs/caddy/modules/tls.issuance.acme.md new file mode 100644 index 0000000..bac2fdd --- /dev/null +++ b/docs/caddy/modules/tls.issuance.acme.md @@ -0,0 +1,195 @@ +Title: Module tls.issuance.acme - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.issuance.acme + +Markdown Content: +tls.issuance.acme manages certificates using the ACME protocol (RFC 8555). + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#ca)ca +The URL to the CA's ACME directory endpoint. Default: [https://acme-v02.api.letsencrypt.org/directory](https://acme-v02.api.letsencrypt.org/directory) + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#test_ca)test_ca +The URL to the test CA's ACME directory endpoint. This endpoint is only used during retries if there is a failure using the primary CA. Default: [https://acme-staging-v02.api.letsencrypt.org/directory](https://acme-staging-v02.api.letsencrypt.org/directory) + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#email)email +Your email address, so the CA can contact you if necessary. Not required, but strongly recommended to provide one so you can be reached if there is a problem. Your email is not sent to any Caddy mothership or used for any purpose other than ACME transactions. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#account_key)account_key +If you have an existing account with the ACME server, put the private key here in PEM format. The ACME client will look up your account information with this key first before trying to create a new one. You can use placeholders here, for example if you have it in an environment variable. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#external_account)external_account +If using an ACME CA that requires an external account binding, specify the CA-provided credentials here. + +EAB (External Account Binding) contains information necessary to bind or map an ACME account to some other account known by the CA. + +External account bindings are "used to associate an ACME account with an existing account in a non-ACME system, such as a CA customer database." + +"To enable ACME account binding, the CA operating the ACME server needs to provide the ACME client with a MAC key and a key identifier, using some mechanism outside of ACME." §7.3.4 + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#external_account/key_id)external_account/key_id +"The key identifier MUST be an ASCII string." §7.3.4 + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#external_account/mac_key)external_account/mac_key +"The MAC key SHOULD be provided in base64url-encoded form, to maximize compatibility between non-ACME provisioning systems and ACME clients." §7.3.4 + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#acme_timeout)acme_timeout +Time to wait before timing out an ACME operation. Default: 0 (no timeout) + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges)challenges +Configures the various ACME challenge types. + +ChallengesConfig configures the ACME challenges. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/http)challenges/http +HTTP configures the ACME HTTP challenge. This challenge is enabled and used automatically and by default. + +HTTPChallengeConfig configures the ACME HTTP challenge. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/http/disabled)challenges/http/disabled +If true, the HTTP challenge will be disabled. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/http/alternate_port)challenges/http/alternate_port +An alternate port on which to service this challenge. Note that the HTTP challenge port is hard-coded into the spec and cannot be changed, so you would have to forward packets from the standard HTTP challenge port to this one. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/tls-alpn)challenges/tls-alpn +TLSALPN configures the ACME TLS-ALPN challenge. This challenge is enabled and used automatically and by default. + +TLSALPNChallengeConfig configures the ACME TLS-ALPN challenge. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/tls-alpn/disabled)challenges/tls-alpn/disabled +If true, the TLS-ALPN challenge will be disabled. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/tls-alpn/alternate_port)challenges/tls-alpn/alternate_port +An alternate port on which to service this challenge. Note that the TLS-ALPN challenge port is hard-coded into the spec and cannot be changed, so you would have to forward packets from the standard TLS-ALPN challenge port to this one. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/dns)challenges/dns +Configures the ACME DNS challenge. Because this challenge typically requires credentials for interfacing with a DNS provider, this challenge is not enabled by default. This is the only challenge type which does not require a direct connection to Caddy from an external server. + +NOTE: DNS providers are currently being upgraded, and this API is subject to change, but should be stabilized soon. + +DNSChallengeConfig configures the ACME DNS challenge. + +NOTE: This API is still experimental and is subject to change. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/dns/provider)challenges/dns/provider +The DNS provider module to use which will manage the DNS records relevant to the ACME challenge. Required. + +Fulfilled by modules in namespace: **dns.providers** + +* [acmedns](https://caddyserver.com/docs/modules/dns.providers.acmedns)Non-standard +* [acmeproxy](https://caddyserver.com/docs/modules/dns.providers.acmeproxy)Non-standard +* [alidns](https://caddyserver.com/docs/modules/dns.providers.alidns)Non-standard +* [azure](https://caddyserver.com/docs/modules/dns.providers.azure)Non-standard +* [bunny](https://caddyserver.com/docs/modules/dns.providers.bunny)Non-standard +* [civo](https://caddyserver.com/docs/modules/dns.providers.civo)Non-standard +* [cloudflare](https://caddyserver.com/docs/modules/dns.providers.cloudflare)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [ddnss](https://caddyserver.com/docs/modules/dns.providers.ddnss)Non-standard +* [desec](https://caddyserver.com/docs/modules/dns.providers.desec)Non-standard +* [digitalocean](https://caddyserver.com/docs/modules/dns.providers.digitalocean)Non-standard +* [dinahosting](https://caddyserver.com/docs/modules/dns.providers.dinahosting)Non-standard +* [directadmin](https://caddyserver.com/docs/modules/dns.providers.directadmin)Non-standard +* [dnsexit](https://caddyserver.com/docs/modules/dns.providers.dnsexit)Non-standard +* [dnsimple](https://caddyserver.com/docs/modules/dns.providers.dnsimple)Non-standard +* [dnsmadeeasy](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy)Non-standard +* [dnspod](https://caddyserver.com/docs/modules/dns.providers.dnspod)Non-standard +* [domainnameshop](https://caddyserver.com/docs/modules/dns.providers.domainnameshop)Non-standard +* [dreamhost](https://caddyserver.com/docs/modules/dns.providers.dreamhost)Non-standard +* [duckdns](https://caddyserver.com/docs/modules/dns.providers.duckdns)Non-standard +* [dynu](https://caddyserver.com/docs/modules/dns.providers.dynu)Non-standard +* [easydns](https://caddyserver.com/docs/modules/dns.providers.easydns)Non-standard +* [edgeone](https://caddyserver.com/docs/modules/dns.providers.edgeone)Non-standard +* [gandi](https://caddyserver.com/docs/modules/dns.providers.gandi)Non-standard +* [glesys](https://caddyserver.com/docs/modules/dns.providers.glesys)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [google_domains](https://caddyserver.com/docs/modules/dns.providers.google_domains)Non-standard +* [googleclouddns](https://caddyserver.com/docs/modules/dns.providers.googleclouddns)Non-standard +* [he](https://caddyserver.com/docs/modules/dns.providers.he)Non-standard +* [hetzner](https://caddyserver.com/docs/modules/dns.providers.hetzner)Non-standard +* [hexonet](https://caddyserver.com/docs/modules/dns.providers.hexonet)Non-standard +* [hosttech](https://caddyserver.com/docs/modules/dns.providers.hosttech)Non-standard +* [huaweicloud](https://caddyserver.com/docs/modules/dns.providers.huaweicloud)Non-standard +* [immosquare](https://caddyserver.com/docs/modules/dns.providers.immosquare)Non-standard +* [infomaniak](https://caddyserver.com/docs/modules/dns.providers.infomaniak)Non-standard +* [inwx](https://caddyserver.com/docs/modules/dns.providers.inwx)Non-standard +* [ionos](https://caddyserver.com/docs/modules/dns.providers.ionos)Non-standard +* [katapult](https://caddyserver.com/docs/modules/dns.providers.katapult)Non-standard +* [leaseweb](https://caddyserver.com/docs/modules/dns.providers.leaseweb)Non-standard +* [lego_deprecated](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [loopia](https://caddyserver.com/docs/modules/dns.providers.loopia)Non-standard +* [mailinabox](https://caddyserver.com/docs/modules/dns.providers.mailinabox)Non-standard +* [metaname](https://caddyserver.com/docs/modules/dns.providers.metaname)Non-standard +* [namecheap](https://caddyserver.com/docs/modules/dns.providers.namecheap)Non-standard +* [namedotcom](https://caddyserver.com/docs/modules/dns.providers.namedotcom)Non-standard +* [namesilo](https://caddyserver.com/docs/modules/dns.providers.namesilo)Non-standard +* [nanelo](https://caddyserver.com/docs/modules/dns.providers.nanelo)Non-standard +* [neoserv](https://caddyserver.com/docs/modules/dns.providers.neoserv)Non-standard +* [netcup](https://caddyserver.com/docs/modules/dns.providers.netcup)Non-standard +* [netlify](https://caddyserver.com/docs/modules/dns.providers.netlify)Non-standard +* [njalla](https://caddyserver.com/docs/modules/dns.providers.njalla)Non-standard +* [openstack-designate](https://caddyserver.com/docs/modules/dns.providers.openstack-designate)Non-standard +* [ovh](https://caddyserver.com/docs/modules/dns.providers.ovh)Non-standard +* [porkbun](https://caddyserver.com/docs/modules/dns.providers.porkbun)Non-standard +* [powerdns](https://caddyserver.com/docs/modules/dns.providers.powerdns)Non-standard +* [rfc2136](https://caddyserver.com/docs/modules/dns.providers.rfc2136)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [scaleway](https://caddyserver.com/docs/modules/dns.providers.scaleway)Non-standard +* [selectel](https://caddyserver.com/docs/modules/dns.providers.selectel)Non-standard +* [spaceship](https://caddyserver.com/docs/modules/dns.providers.spaceship)Non-standard +* [tencentcloud](https://caddyserver.com/docs/modules/dns.providers.tencentcloud)Non-standard +* [transip](https://caddyserver.com/docs/modules/dns.providers.transip)Non-standard +* [vercel](https://caddyserver.com/docs/modules/dns.providers.vercel)Non-standard +* [vultr](https://caddyserver.com/docs/modules/dns.providers.vultr)Non-standard + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/dns/ttl)challenges/dns/ttl +The TTL of the TXT record used for the DNS challenge. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/dns/propagation_delay)challenges/dns/propagation_delay +How long to wait before starting propagation checks. Default: 0 (no wait). + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/dns/propagation_timeout)challenges/dns/propagation_timeout +Maximum time to wait for temporary DNS record to appear. Set to -1 to disable propagation checks. Default: 2 minutes. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/dns/resolvers)challenges/dns/resolvers +Custom DNS resolvers to prefer over system/built-in defaults. Often necessary to configure when using split-horizon DNS. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/dns/override_domain)challenges/dns/override_domain +Override the domain to use for the DNS challenge. This is to delegate the challenge to a different domain, e.g. one that updates faster or one with a provider API. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#challenges/bind_host)challenges/bind_host +Optionally customize the host to which a listener is bound if required for solving a challenge. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#trusted_roots_pem_files)trusted_roots_pem_files +An array of files of CA certificates to accept when connecting to the ACME CA. Generally, you should only use this if the ACME CA endpoint is internal or for development/testing purposes. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#preferred_chains)preferred_chains +Preferences for selecting alternate certificate chains, if offered by the CA. By default, the first offered chain will be selected. If configured, the chains may be sorted and the first matching chain will be selected. + +ChainPreference describes the client's preferred certificate chain, useful if the CA offers alternate chains. The first matching chain will be selected. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#preferred_chains/smallest)preferred_chains/smallest +Prefer chains with the fewest number of bytes. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#preferred_chains/root_common_name)preferred_chains/root_common_name +Select first chain having a root with one of these common names. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#preferred_chains/any_common_name)preferred_chains/any_common_name +Select first chain that has any issuer with one of these common names. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.acme#certificate_lifetime)certificate_lifetime +The validity period to ask the CA to issue a certificate for. Default: 0 (CA chooses lifetime). This value is used to compute the "notAfter" field of the ACME order; therefore the system must have a reasonably synchronized clock. NOTE: Not all CAs support this. Check with your CA's ACME documentation to see if this is allowed and what values may be used. EXPERIMENTAL: Subject to change. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. diff --git a/docs/caddy/modules/tls.issuance.certsrv.md b/docs/caddy/modules/tls.issuance.certsrv.md new file mode 100644 index 0000000..5c7fa43 --- /dev/null +++ b/docs/caddy/modules/tls.issuance.certsrv.md @@ -0,0 +1,53 @@ +Title: Module tls.issuance.certsrv - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.issuance.certsrv + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.issuance.certsrv**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.issuance.certsrv#docs "Direct link") +--------------------------------------------------------------------------------------------- + +`{▾ "certsrv_url": "", "realm": "", "username": "", "password": "", "keytab_path": ""}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/davidventura/caddy-certsrv](https://github.com/davidventura/caddy-certsrv)** + +**Custom builds:**`xcaddy build --with github.com/davidventura/caddy-certsrv` + +Description[🔗](https://caddyserver.com/docs/modules/tls.issuance.certsrv#docs "Direct link") +--------------------------------------------------------------------------------------------- + +tls.issuance.certsrv can request certificates from a Microsoft Active Directory Certificate Services instance + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.certsrv#certsrv_url)certsrv_url +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.certsrv#realm)realm +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.certsrv#username)username +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.certsrv#password)password +There are no docs for this property. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.certsrv#keytab_path)keytab_path +There are no docs for this property. diff --git a/docs/caddy/modules/tls.issuance.internal.md b/docs/caddy/modules/tls.issuance.internal.md new file mode 100644 index 0000000..11fc7e9 --- /dev/null +++ b/docs/caddy/modules/tls.issuance.internal.md @@ -0,0 +1,137 @@ +Title: Module tls.issuance.internal - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.issuance.internal + +Markdown Content: +Module tls.issuance.internal - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module tls.issuance.internal +============================ + + There is more than one module named **Module tls.issuance.internal**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.issuance.internal#docs "Direct link") +---------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "ca": "", "lifetime": 0, "sign_with_root": false}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.issuance.internal#docs "Direct link") +---------------------------------------------------------------------------------------------- + +tls.issuance.internal is a certificate issuer that generates certificates internally using a locally-configured CA which can be customized using the `pki` app. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.internal#ca)ca +The ID of the CA to use for signing. The default CA ID is "local". The CA can be configured with the `pki` app. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.internal#lifetime)lifetime +The validity period of certificates. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.internal#sign_with_root)sign_with_root +If true, the root will be the issuer instead of the intermediate. This is NOT recommended and should only be used when devices/clients do not properly validate certificate chains. + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/tls.issuance.zerossl.md b/docs/caddy/modules/tls.issuance.zerossl.md new file mode 100644 index 0000000..4d273f5 --- /dev/null +++ b/docs/caddy/modules/tls.issuance.zerossl.md @@ -0,0 +1,121 @@ +Title: Module tls.issuance.zerossl - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.issuance.zerossl + +Markdown Content: +tls.issuance.zerossl uses the ZeroSSL API to get certificates. Note that this is distinct from ZeroSSL's ACME endpoint. To use ZeroSSL's ACME endpoint, use the ACMEIssuer configured with ZeroSSL's ACME directory endpoint. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#api_key)api_key +The API key (or "access key") for using the ZeroSSL API. REQUIRED. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#validity_days)validity_days +How many days the certificate should be valid for. Only certain values are accepted; see ZeroSSL docs. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#listen_host)listen_host +The host to bind to when opening a listener for verifying domain names (or IPs). + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#alternate_http_port)alternate_http_port +If HTTP is forwarded from port 80, specify the forwarded port here. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#cname_validation)cname_validation +Use CNAME validation instead of HTTP. ZeroSSL's API uses CNAME records for DNS validation, similar to how Let's Encrypt uses TXT records for the DNS challenge. + +DNSChallengeConfig configures the ACME DNS challenge. + +NOTE: This API is still experimental and is subject to change. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#cname_validation/provider)cname_validation/provider +The DNS provider module to use which will manage the DNS records relevant to the ACME challenge. Required. + +Fulfilled by modules in namespace: **dns.providers** + +* [acmedns](https://caddyserver.com/docs/modules/dns.providers.acmedns)Non-standard +* [acmeproxy](https://caddyserver.com/docs/modules/dns.providers.acmeproxy)Non-standard +* [alidns](https://caddyserver.com/docs/modules/dns.providers.alidns)Non-standard +* [azure](https://caddyserver.com/docs/modules/dns.providers.azure)Non-standard +* [bunny](https://caddyserver.com/docs/modules/dns.providers.bunny)Non-standard +* [civo](https://caddyserver.com/docs/modules/dns.providers.civo)Non-standard +* [cloudflare](https://caddyserver.com/docs/modules/dns.providers.cloudflare)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [cloudns](https://caddyserver.com/docs/modules/dns.providers.cloudns)Non-standard +* [ddnss](https://caddyserver.com/docs/modules/dns.providers.ddnss)Non-standard +* [desec](https://caddyserver.com/docs/modules/dns.providers.desec)Non-standard +* [digitalocean](https://caddyserver.com/docs/modules/dns.providers.digitalocean)Non-standard +* [dinahosting](https://caddyserver.com/docs/modules/dns.providers.dinahosting)Non-standard +* [directadmin](https://caddyserver.com/docs/modules/dns.providers.directadmin)Non-standard +* [dnsexit](https://caddyserver.com/docs/modules/dns.providers.dnsexit)Non-standard +* [dnsimple](https://caddyserver.com/docs/modules/dns.providers.dnsimple)Non-standard +* [dnsmadeeasy](https://caddyserver.com/docs/modules/dns.providers.dnsmadeeasy)Non-standard +* [dnspod](https://caddyserver.com/docs/modules/dns.providers.dnspod)Non-standard +* [domainnameshop](https://caddyserver.com/docs/modules/dns.providers.domainnameshop)Non-standard +* [dreamhost](https://caddyserver.com/docs/modules/dns.providers.dreamhost)Non-standard +* [duckdns](https://caddyserver.com/docs/modules/dns.providers.duckdns)Non-standard +* [dynu](https://caddyserver.com/docs/modules/dns.providers.dynu)Non-standard +* [easydns](https://caddyserver.com/docs/modules/dns.providers.easydns)Non-standard +* [edgeone](https://caddyserver.com/docs/modules/dns.providers.edgeone)Non-standard +* [gandi](https://caddyserver.com/docs/modules/dns.providers.gandi)Non-standard +* [glesys](https://caddyserver.com/docs/modules/dns.providers.glesys)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [godaddy](https://caddyserver.com/docs/modules/dns.providers.godaddy)Non-standard +* [google_domains](https://caddyserver.com/docs/modules/dns.providers.google_domains)Non-standard +* [googleclouddns](https://caddyserver.com/docs/modules/dns.providers.googleclouddns)Non-standard +* [he](https://caddyserver.com/docs/modules/dns.providers.he)Non-standard +* [hetzner](https://caddyserver.com/docs/modules/dns.providers.hetzner)Non-standard +* [hexonet](https://caddyserver.com/docs/modules/dns.providers.hexonet)Non-standard +* [hosttech](https://caddyserver.com/docs/modules/dns.providers.hosttech)Non-standard +* [huaweicloud](https://caddyserver.com/docs/modules/dns.providers.huaweicloud)Non-standard +* [immosquare](https://caddyserver.com/docs/modules/dns.providers.immosquare)Non-standard +* [infomaniak](https://caddyserver.com/docs/modules/dns.providers.infomaniak)Non-standard +* [inwx](https://caddyserver.com/docs/modules/dns.providers.inwx)Non-standard +* [ionos](https://caddyserver.com/docs/modules/dns.providers.ionos)Non-standard +* [katapult](https://caddyserver.com/docs/modules/dns.providers.katapult)Non-standard +* [leaseweb](https://caddyserver.com/docs/modules/dns.providers.leaseweb)Non-standard +* [lego_deprecated](https://caddyserver.com/docs/modules/dns.providers.lego_deprecated)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [linode](https://caddyserver.com/docs/modules/dns.providers.linode)Non-standard +* [loopia](https://caddyserver.com/docs/modules/dns.providers.loopia)Non-standard +* [mailinabox](https://caddyserver.com/docs/modules/dns.providers.mailinabox)Non-standard +* [metaname](https://caddyserver.com/docs/modules/dns.providers.metaname)Non-standard +* [namecheap](https://caddyserver.com/docs/modules/dns.providers.namecheap)Non-standard +* [namedotcom](https://caddyserver.com/docs/modules/dns.providers.namedotcom)Non-standard +* [namesilo](https://caddyserver.com/docs/modules/dns.providers.namesilo)Non-standard +* [nanelo](https://caddyserver.com/docs/modules/dns.providers.nanelo)Non-standard +* [neoserv](https://caddyserver.com/docs/modules/dns.providers.neoserv)Non-standard +* [netcup](https://caddyserver.com/docs/modules/dns.providers.netcup)Non-standard +* [netlify](https://caddyserver.com/docs/modules/dns.providers.netlify)Non-standard +* [njalla](https://caddyserver.com/docs/modules/dns.providers.njalla)Non-standard +* [openstack-designate](https://caddyserver.com/docs/modules/dns.providers.openstack-designate)Non-standard +* [ovh](https://caddyserver.com/docs/modules/dns.providers.ovh)Non-standard +* [porkbun](https://caddyserver.com/docs/modules/dns.providers.porkbun)Non-standard +* [powerdns](https://caddyserver.com/docs/modules/dns.providers.powerdns)Non-standard +* [rfc2136](https://caddyserver.com/docs/modules/dns.providers.rfc2136)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [route53](https://caddyserver.com/docs/modules/dns.providers.route53)Non-standard +* [scaleway](https://caddyserver.com/docs/modules/dns.providers.scaleway)Non-standard +* [selectel](https://caddyserver.com/docs/modules/dns.providers.selectel)Non-standard +* [spaceship](https://caddyserver.com/docs/modules/dns.providers.spaceship)Non-standard +* [tencentcloud](https://caddyserver.com/docs/modules/dns.providers.tencentcloud)Non-standard +* [transip](https://caddyserver.com/docs/modules/dns.providers.transip)Non-standard +* [vercel](https://caddyserver.com/docs/modules/dns.providers.vercel)Non-standard +* [vultr](https://caddyserver.com/docs/modules/dns.providers.vultr)Non-standard + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#cname_validation/ttl)cname_validation/ttl +The TTL of the TXT record used for the DNS challenge. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#cname_validation/propagation_delay)cname_validation/propagation_delay +How long to wait before starting propagation checks. Default: 0 (no wait). + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#cname_validation/propagation_timeout)cname_validation/propagation_timeout +Maximum time to wait for temporary DNS record to appear. Set to -1 to disable propagation checks. Default: 2 minutes. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#cname_validation/resolvers)cname_validation/resolvers +Custom DNS resolvers to prefer over system/built-in defaults. Often necessary to configure when using split-horizon DNS. + +[🔗](https://caddyserver.com/docs/modules/tls.issuance.zerossl#cname_validation/override_domain)cname_validation/override_domain +Override the domain to use for the DNS challenge. This is to delegate the challenge to a different domain, e.g. one that updates faster or one with a provider API. diff --git a/docs/caddy/modules/tls.leaf_cert_loader.file.md b/docs/caddy/modules/tls.leaf_cert_loader.file.md new file mode 100644 index 0000000..dfb64bc --- /dev/null +++ b/docs/caddy/modules/tls.leaf_cert_loader.file.md @@ -0,0 +1,41 @@ +Title: Module tls.leaf_cert_loader.file - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.leaf_cert_loader.file + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.leaf_cert_loader.file**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.file#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +`{▾ "files": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.file#docs "Direct link") +-------------------------------------------------------------------------------------------------- + +tls.leaf_cert_loader.file loads leaf certificates from disk. + +[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.file#files)files +There are no docs for this property. diff --git a/docs/caddy/modules/tls.leaf_cert_loader.folder.md b/docs/caddy/modules/tls.leaf_cert_loader.folder.md new file mode 100644 index 0000000..285935f --- /dev/null +++ b/docs/caddy/modules/tls.leaf_cert_loader.folder.md @@ -0,0 +1,41 @@ +Title: Module tls.leaf_cert_loader.folder - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.leaf_cert_loader.folder + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.leaf_cert_loader.folder**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.folder#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +`{▾ "folders": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.folder#docs "Direct link") +---------------------------------------------------------------------------------------------------- + +tls.leaf_cert_loader.folder loads certificates and their associated keys from disk by recursively walking the specified directories, looking for PEM files which contain both a certificate and a key. + +[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.folder#folders)folders +There are no docs for this property. diff --git a/docs/caddy/modules/tls.leaf_cert_loader.pem.md b/docs/caddy/modules/tls.leaf_cert_loader.pem.md new file mode 100644 index 0000000..9cec14c --- /dev/null +++ b/docs/caddy/modules/tls.leaf_cert_loader.pem.md @@ -0,0 +1,41 @@ +Title: Module tls.leaf_cert_loader.pem - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.leaf_cert_loader.pem + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.leaf_cert_loader.pem**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.pem#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾ "certificates": [""]}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.pem#docs "Direct link") +------------------------------------------------------------------------------------------------- + +tls.leaf_cert_loader.pem loads leaf certificates by decoding their PEM blocks directly. This has the advantage of not needing to store them on disk at all. + +[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.pem#certificates)certificates +There are no docs for this property. diff --git a/docs/caddy/modules/tls.leaf_cert_loader.storage.md b/docs/caddy/modules/tls.leaf_cert_loader.storage.md new file mode 100644 index 0000000..1c59bf7 --- /dev/null +++ b/docs/caddy/modules/tls.leaf_cert_loader.storage.md @@ -0,0 +1,154 @@ +Title: Module tls.leaf_cert_loader.storage - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.leaf_cert_loader.storage + +Markdown Content: +Module tls.leaf_cert_loader.storage - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module tls.leaf_cert_loader.storage +=================================== + + There is more than one module named **Module tls.leaf_cert_loader.storage**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.storage#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "certificates": [""], "storage": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.storage#docs "Direct link") +----------------------------------------------------------------------------------------------------- + +tls.leaf_cert_loader.storage loads leaf certificates from the globally configured storage module. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.storage#certificates)certificates +A list of certificate file names to be loaded from storage. + +[🔗](https://caddyserver.com/docs/modules/tls.leaf_cert_loader.storage#storage)storage +The storage module where the trusted leaf certificates are stored. Absent explicit storage implies the use of Caddy default storage. + +Fulfilled by modules in namespace: **caddy.storage** + +* [file_system](https://caddyserver.com/docs/modules/caddy.storage.file_system) +* [cloudflare_kv](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb)Non-standard +* [dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb)Non-standard +* [encrypted](https://caddyserver.com/docs/modules/caddy.storage.encrypted)Non-standard +* [env_redis](https://caddyserver.com/docs/modules/caddy.storage.env_redis)Non-standard +* [gcs](https://caddyserver.com/docs/modules/caddy.storage.gcs)Non-standard +* [mysql](https://caddyserver.com/docs/modules/caddy.storage.mysql)Non-standard +* [nats](https://caddyserver.com/docs/modules/caddy.storage.nats)Non-standard +* [postgres](https://caddyserver.com/docs/modules/caddy.storage.postgres)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.storage.s3)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.storage.s3)Non-standard +* [vault](https://caddyserver.com/docs/modules/caddy.storage.vault)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/tls.md b/docs/caddy/modules/tls.md new file mode 100644 index 0000000..366439f --- /dev/null +++ b/docs/caddy/modules/tls.md @@ -0,0 +1,150 @@ +Title: Module tls - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls + +Markdown Content: +tls provides TLS facilities including certificate loading and management, client auth, and more. + +[🔗](https://caddyserver.com/docs/modules/tls#certificates)certificates +Certificates to load into memory for quick recall during TLS handshakes. Each key is the name of a certificate loader module. + +The "automate" certificate loader module can be used to specify a list of subjects that need certificates to be managed automatically. The first matching automation policy will be applied to manage the certificate(s). + +All loaded certificates get pooled into the same cache and may be used to complete TLS handshakes for the relevant server names (SNI). Certificates loaded manually (anything other than "automate") are not automatically managed and will have to be refreshed manually before they expire. + +ModuleMap is a map that can contain multiple modules, where the map key is the module's name. (The namespace is usually read from an associated field's struct tag.) Because the module's name is given as the key in a module map, the name does not have to be given in the json.RawMessage. + +[🔗](https://caddyserver.com/docs/modules/tls#automation)automation +Configures certificate automation. + +AutomationConfig governs the automated management of TLS certificates. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies)automation/policies +The list of automation policies. The first policy matching a certificate or subject name will be applied. + +AutomationPolicy designates the policy for automating the management (obtaining, renewal, and revocation) of managed TLS certificates. + +An AutomationPolicy value is not valid until it has been provisioned; use the `AddAutomationPolicy()` method on the TLS app to properly provision a new policy. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/subjects)automation/policies/subjects +Which subjects (hostnames or IP addresses) this policy applies to. + +This list is a filter, not a command. In other words, it is used only to filter whether this policy should apply to a subject that needs a certificate; it does NOT command the TLS app to manage a certificate for that subject. To have Caddy automate a certificate or specific subjects, use the "automate" certificate loader module of the TLS app. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/issuers)automation/policies/issuers +The modules that may issue certificates. Default: internal if all subjects do not qualify for public certificates; otherwise acme and zerossl. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/get_certificate)automation/policies/get_certificate +Modules that can get a custom certificate to use for any given TLS handshake at handshake-time. Custom certificates can be useful if another entity is managing certificates and Caddy need only get it and serve it. Specifying a Manager enables on-demand TLS, i.e. it has the side-effect of setting the on_demand parameter to `true`. + +TODO: This is an EXPERIMENTAL feature. Subject to change or removal. + +Fulfilled by modules in namespace: **tls.get_certificate** + +* [http](https://caddyserver.com/docs/modules/tls.get_certificate.http) +* [tailscale](https://caddyserver.com/docs/modules/tls.get_certificate.tailscale) +* [file](https://caddyserver.com/docs/modules/tls.get_certificate.file)Non-standard +* [pfx](https://caddyserver.com/docs/modules/tls.get_certificate.pfx)Non-standard + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/must_staple)automation/policies/must_staple +If true, certificates will be requested with MustStaple. Not all CAs support this, and there are potentially serious consequences of enabling this feature without proper threat modeling. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/renewal_window_ratio)automation/policies/renewal_window_ratio +How long before a certificate's expiration to try renewing it, as a function of its total lifetime. As a general and conservative rule, it is a good idea to renew a certificate when it has about 1/3 of its total lifetime remaining. This utilizes the majority of the certificate's lifetime while still saving time to troubleshoot problems. However, for extremely short-lived certs, you may wish to increase the ratio to ~1/2. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/key_type)automation/policies/key_type +The type of key to generate for certificates. Supported values: `ed25519`, `p256`, `p384`, `rsa2048`, `rsa4096`. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/storage)automation/policies/storage +Optionally configure a separate storage module associated with this manager, instead of using Caddy's global/default-configured storage. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/on_demand)automation/policies/on_demand +If true, certificates will be managed "on demand"; that is, during TLS handshakes or when needed, as opposed to at startup or config load. This enables On-Demand TLS for this policy. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/reuse_private_keys)automation/policies/reuse_private_keys +If true, private keys already existing in storage will be reused. Otherwise, a new key will be created for every new certificate to mitigate pinning and reduce the scope of key compromise. TEMPORARY: Key pinning is against industry best practices. This property will likely be removed in the future. Do not rely on it forever; watch the release notes. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/disable_ocsp_stapling)automation/policies/disable_ocsp_stapling +Disables OCSP stapling. Disabling OCSP stapling puts clients at greater risk, reduces their privacy, and usually lowers client performance. It is NOT recommended to disable this unless you are able to justify the costs. EXPERIMENTAL. Subject to change. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/policies/ocsp_overrides)automation/policies/ocsp_overrides +Overrides the URLs of OCSP responders embedded in certificates. Each key is a OCSP server URL to override, and its value is the replacement. An empty value will disable querying of that server. EXPERIMENTAL. Subject to change. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/on_demand)automation/on_demand +On-Demand TLS defers certificate operations to the moment they are needed, e.g. during a TLS handshake. Useful when you don't know all the hostnames at config-time, or when you are not in control of the domain names you are managing certificates for. In 2015, Caddy became the first web server to implement this experimental technology. + +Note that this field does not enable on-demand TLS; it only configures it for when it is used. To enable it, create an automation policy with `on_demand`. + +OnDemandConfig configures on-demand TLS, for obtaining needed certificates at handshake-time. Because this feature can easily be abused, Caddy must ask permission to your application whether a particular domain is allowed to have a certificate issued for it. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/on_demand/ask)automation/on_demand/ask +Deprecated. WILL BE REMOVED SOON. Use 'permission' instead with the `http` module. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/on_demand/permission)automation/on_demand/permission +REQUIRED. A module that will determine whether a certificate is allowed to be loaded from storage or obtained from an issuer on demand. + +Fulfilled by modules in namespace: **tls.permission** + +* [http](https://caddyserver.com/docs/modules/tls.permission.http) + +[🔗](https://caddyserver.com/docs/modules/tls#automation/ocsp_interval)automation/ocsp_interval +Caddy staples OCSP (and caches the response) for all qualifying certificates by default. This setting changes how often it scans responses for freshness, and updates them if they are getting stale. Default: 1h + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/renew_interval)automation/renew_interval +Every so often, Caddy will scan all loaded, managed certificates for expiration. This setting changes how frequently the scan for expiring certificates is performed. Default: 10m + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls#automation/storage_clean_interval)automation/storage_clean_interval +How often to scan storage units for old or expired assets and remove them. These scans exert lots of reads (and list operations) on the storage module, so choose a longer interval for large deployments. Default: 24h + +Storage will always be cleaned when the process first starts. Then, a new cleaning will be started this duration after the previous cleaning started if the previous cleaning finished in less than half the time of this interval (otherwise next start will be skipped). + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls#session_tickets)session_tickets +Configures session ticket ephemeral keys (STEKs). + +SessionTicketService configures and manages TLS session tickets. + +[🔗](https://caddyserver.com/docs/modules/tls#session_tickets/key_source)session_tickets/key_source +KeySource is the method by which Caddy produces or obtains TLS session ticket keys (STEKs). By default, Caddy generates them internally using a secure pseudorandom source. + +[🔗](https://caddyserver.com/docs/modules/tls#session_tickets/rotation_interval)session_tickets/rotation_interval +How often Caddy rotates STEKs. Default: 12h. + +Duration can be an integer or a string. An integer is interpreted as nanoseconds. If a string, it is a Go time.Duration value such as `300ms`, `1.5h`, or `2h45m`; valid units are `ns`, `us`/`µs`, `ms`, `s`, `m`, `h`, and `d`. + +[🔗](https://caddyserver.com/docs/modules/tls#session_tickets/max_keys)session_tickets/max_keys +The maximum number of keys to keep in rotation. Default: 4. + +[🔗](https://caddyserver.com/docs/modules/tls#session_tickets/disable_rotation)session_tickets/disable_rotation +Disables STEK rotation. + +[🔗](https://caddyserver.com/docs/modules/tls#session_tickets/disabled)session_tickets/disabled +Disables TLS session resumption by tickets. + +[🔗](https://caddyserver.com/docs/modules/tls#cache)cache +Configures the in-memory certificate cache. + +CertCacheOptions configures the certificate cache. + +[🔗](https://caddyserver.com/docs/modules/tls#cache/capacity)cache/capacity +Maximum number of certificates to allow in the cache. If reached, certificates will be randomly evicted to make room for new ones. Default: 10,000 + +[🔗](https://caddyserver.com/docs/modules/tls#disable_ocsp_stapling)disable_ocsp_stapling +Disables OCSP stapling for manually-managed certificates only. To configure OCSP stapling for automated certificates, use an automation policy instead. + +Disabling OCSP stapling puts clients at greater risk, reduces their privacy, and usually lowers client performance. It is NOT recommended to disable this unless you are able to justify the costs. EXPERIMENTAL. Subject to change. + +[🔗](https://caddyserver.com/docs/modules/tls#disable_storage_check)disable_storage_check +Disables checks in certmagic that the configured storage is ready and able to handle writing new content to it. These checks are intended to prevent information loss (newly issued certificates), but can be expensive on the storage. + +Disabling these checks should only be done when the storage can be trusted to have enough capacity and no other problems. EXPERIMENTAL. Subject to change. + +[🔗](https://caddyserver.com/docs/modules/tls#disable_storage_clean)disable_storage_clean +Disables the automatic cleanup of the storage backend. This is useful when TLS is not being used to store certificates and the user wants run their server in a read-only mode. + +Storage cleaning creates two files: instance.uuid and last_clean.json. The instance.uuid file is used to identify the instance of Caddy in a cluster. The last_clean.json file is used to store the last time the storage was cleaned. EXPERIMENTAL. Subject to change. diff --git a/docs/caddy/modules/tls.permission.http.md b/docs/caddy/modules/tls.permission.http.md new file mode 100644 index 0000000..adadd8e --- /dev/null +++ b/docs/caddy/modules/tls.permission.http.md @@ -0,0 +1,43 @@ +Title: Module tls.permission.http - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.permission.http + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module tls.permission.http**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.permission.http#docs "Direct link") +-------------------------------------------------------------------------------------------- + +`{▾ "endpoint": ""}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.permission.http#docs "Direct link") +-------------------------------------------------------------------------------------------- + +tls.permission.http determines permission for a TLS certificate by making a request to an HTTP endpoint. + +[🔗](https://caddyserver.com/docs/modules/tls.permission.http#endpoint)endpoint +The endpoint to access. It should be a full URL. A query string parameter "domain" will be added to it, containing the domain (or IP) for the desired certificate, like so: `?domain=example.com`. Generally, this endpoint is not exposed publicly to avoid a minor information leak (which domains are serviced by your application). + +The endpoint must return a 200 OK status if a certificate is allowed; anything else will cause it to be denied. Redirects are not followed. diff --git a/docs/caddy/modules/tls.stek.distributed.md b/docs/caddy/modules/tls.stek.distributed.md new file mode 100644 index 0000000..1a4a064 --- /dev/null +++ b/docs/caddy/modules/tls.stek.distributed.md @@ -0,0 +1,151 @@ +Title: Module tls.stek.distributed - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.stek.distributed + +Markdown Content: +Module tls.stek.distributed - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module tls.stek.distributed +=========================== + + There is more than one module named **Module tls.stek.distributed**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.stek.distributed#docs "Direct link") +--------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾ "storage": {•••}}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.stek.distributed#docs "Direct link") +--------------------------------------------------------------------------------------------- + +tls.stek.distributed implements a distributed STEK provider. This module will obtain STEKs from a storage module instead of generating STEKs internally. This allows STEKs to be coordinated, improving TLS session resumption in a cluster. + +Field List +---------- + +[🔗](https://caddyserver.com/docs/modules/tls.stek.distributed#storage)storage +The storage module wherein to store and obtain session ticket keys. If unset, Caddy's default/global-configured storage module will be used. + +Fulfilled by modules in namespace: **caddy.storage** + +* [file_system](https://caddyserver.com/docs/modules/caddy.storage.file_system) +* [cloudflare_kv](https://caddyserver.com/docs/modules/caddy.storage.cloudflare_kv)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [consul](https://caddyserver.com/docs/modules/caddy.storage.consul)Non-standard +* [dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb)Non-standard +* [dynamodb](https://caddyserver.com/docs/modules/caddy.storage.dynamodb)Non-standard +* [encrypted](https://caddyserver.com/docs/modules/caddy.storage.encrypted)Non-standard +* [env_redis](https://caddyserver.com/docs/modules/caddy.storage.env_redis)Non-standard +* [gcs](https://caddyserver.com/docs/modules/caddy.storage.gcs)Non-standard +* [mysql](https://caddyserver.com/docs/modules/caddy.storage.mysql)Non-standard +* [nats](https://caddyserver.com/docs/modules/caddy.storage.nats)Non-standard +* [postgres](https://caddyserver.com/docs/modules/caddy.storage.postgres)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [redis](https://caddyserver.com/docs/modules/caddy.storage.redis)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.storage.s3)Non-standard +* [s3](https://caddyserver.com/docs/modules/caddy.storage.s3)Non-standard +* [vault](https://caddyserver.com/docs/modules/caddy.storage.vault)Non-standard + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/tls.stek.standard.md b/docs/caddy/modules/tls.stek.standard.md new file mode 100644 index 0000000..939ecac --- /dev/null +++ b/docs/caddy/modules/tls.stek.standard.md @@ -0,0 +1,124 @@ +Title: Module tls.stek.standard - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/tls.stek.standard + +Markdown Content: +Module tls.stek.standard - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module tls.stek.standard +======================== + + There is more than one module named **Module tls.stek.standard**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.stek.standard#docs "Direct link") +------------------------------------------------------------------------------------------ + +Field List +---------- + +▸github.com/caddyserver/caddy + +`{▾}` + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/tls.stek.standard#docs "Direct link") +------------------------------------------------------------------------------------------ + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/modules/trojan.proxies.env_proxy.md b/docs/caddy/modules/trojan.proxies.env_proxy.md new file mode 100644 index 0000000..9d1d45a --- /dev/null +++ b/docs/caddy/modules/trojan.proxies.env_proxy.md @@ -0,0 +1,38 @@ +Title: Module trojan.proxies.env_proxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/trojan.proxies.env_proxy + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module trojan.proxies.env_proxy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/trojan.proxies.env_proxy#docs "Direct link") +------------------------------------------------------------------------------------------------- + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/imgk/caddy-trojan](https://github.com/imgk/caddy-trojan)** + +**Custom builds:**`xcaddy build --with github.com/imgk/caddy-trojan/app` + +Description[🔗](https://caddyserver.com/docs/modules/trojan.proxies.env_proxy#docs "Direct link") +------------------------------------------------------------------------------------------------- + +trojan.proxies.env_proxy is ... diff --git a/docs/caddy/modules/trojan.proxies.no_proxy.md b/docs/caddy/modules/trojan.proxies.no_proxy.md new file mode 100644 index 0000000..ed0c5d0 --- /dev/null +++ b/docs/caddy/modules/trojan.proxies.no_proxy.md @@ -0,0 +1,38 @@ +Title: Module trojan.proxies.no_proxy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/trojan.proxies.no_proxy + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module trojan.proxies.no_proxy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/trojan.proxies.no_proxy#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/imgk/caddy-trojan](https://github.com/imgk/caddy-trojan)** + +**Custom builds:**`xcaddy build --with github.com/imgk/caddy-trojan/app` + +Description[🔗](https://caddyserver.com/docs/modules/trojan.proxies.no_proxy#docs "Direct link") +------------------------------------------------------------------------------------------------ + +trojan.proxies.no_proxy is ... diff --git a/docs/caddy/modules/trojan.upstreams.caddy.md b/docs/caddy/modules/trojan.upstreams.caddy.md new file mode 100644 index 0000000..0dcefeb --- /dev/null +++ b/docs/caddy/modules/trojan.upstreams.caddy.md @@ -0,0 +1,128 @@ +Title: Module trojan.upstreams.caddy - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/trojan.upstreams.caddy + +Markdown Content: +Module trojan.upstreams.caddy - Caddy Documentation + +=============== + +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) + +Documentation + + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project + +Search K + +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) +* [Welcome](https://caddyserver.com/docs/) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* Get Caddy +* [Install](https://caddyserver.com/docs/install) +* [Build from source](https://caddyserver.com/docs/build) +* Tutorials +* [Getting Started](https://caddyserver.com/docs/getting-started) +* [Quick-starts](https://caddyserver.com/docs/quick-starts) + * [Using the API](https://caddyserver.com/docs/quick-starts/api) + * [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) + * [Static files](https://caddyserver.com/docs/quick-starts/static-files) + * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) + * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + +* [Caddy API](https://caddyserver.com/docs/api-tutorial) +* [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) +* Reference +* [Command Line](https://caddyserver.com/docs/command-line) +* [API](https://caddyserver.com/docs/api) +* [Caddyfile](https://caddyserver.com/docs/caddyfile) + * [Concepts](https://caddyserver.com/docs/caddyfile/concepts) + * [Global options](https://caddyserver.com/docs/caddyfile/options) + * [Directives](https://caddyserver.com/docs/caddyfile/directives) + * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) + * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) + * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + +* [Modules](https://caddyserver.com/docs/modules/) +* [JSON Config Structure](https://caddyserver.com/docs/json/) +* [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) +* Articles +* [Caddy Architecture](https://caddyserver.com/docs/architecture) +* [Conventions](https://caddyserver.com/docs/conventions) +* [Config Adapters](https://caddyserver.com/docs/config-adapters) +* [Keep Caddy Running](https://caddyserver.com/docs/running) +* [How Logging Works](https://caddyserver.com/docs/logging) +* [Monitoring Caddy](https://caddyserver.com/docs/metrics) +* [Profiling Caddy](https://caddyserver.com/docs/profiling) +* [Verifying Asset Signatures](https://caddyserver.com/docs/signature-verification) +* [Upgrading to Caddy 2](https://caddyserver.com/docs/v2-upgrade) +* Developers +* [Extending Caddy](https://caddyserver.com/docs/extending-caddy) + * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) + * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) + * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + +* [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +All Modules +=========== + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +Module trojan.upstreams.caddy +============================= + + There is more than one module named **Module trojan.upstreams.caddy**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [](javascript:)** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/trojan.upstreams.caddy#docs "Direct link") +----------------------------------------------------------------------------------------------- + +Field List +---------- + +▸github.com/imgk/caddy-trojan + +`{▾}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/imgk/caddy-trojan](https://github.com/imgk/caddy-trojan)** + +**Custom builds:**`xcaddy build --with github.com/imgk/caddy-trojan/app` + +Description[🔗](https://caddyserver.com/docs/modules/trojan.upstreams.caddy#docs "Direct link") +----------------------------------------------------------------------------------------------- + +trojan.upstreams.caddy is ... + +Field List +---------- + +Fulfilled by modules in namespace: + +This property is **required** because it specifies the module name. + +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + +[Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) + + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. + +![Image 6](https://cdn.usefathom.com/?h=https%3A%2F%2Fcaddyserver.com&p=%2Fdocs%2Fmodules%2Ftrojan.upstreams.caddy&r=&sid=GVMGKAKP&qs=%7B%7D&cid=39385617) diff --git a/docs/caddy/modules/trojan.upstreams.memory.md b/docs/caddy/modules/trojan.upstreams.memory.md new file mode 100644 index 0000000..7995dbd --- /dev/null +++ b/docs/caddy/modules/trojan.upstreams.memory.md @@ -0,0 +1,46 @@ +Title: Module trojan.upstreams.memory - Caddy Documentation + +URL Source: https://caddyserver.com/docs/modules/trojan.upstreams.memory + +Markdown Content: +All Modules +----------- + +This page lists all registered Caddy modules. Modules are plugins which extend Caddy's [JSON configuration structure](https://caddyserver.com/docs/json/). + +We recommend using your browser's "Find in page" feature for quick lookups. + +| | Module ID | Description | +| --- | --- | --- | + +There is more than one module named **Module trojan.upstreams.memory**. Choose one by its repository. + +**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository:** + +**Custom builds:**`xcaddy build --with` + +Description[🔗](https://caddyserver.com/docs/modules/trojan.upstreams.memory#docs "Direct link") +------------------------------------------------------------------------------------------------ + +`{▾ "persist": {•••}}` + +Non-standard**This module does not come with Caddy.** It can be added by using **[xcaddy](https://caddyserver.com/docs/build#xcaddy)** or our **[download page](https://caddyserver.com/download)**. Non-standard modules may be developed by the community and are not officially endorsed or maintained by the Caddy project. The documentation is shown here only as a courtesy. + +**Code repository: [https://github.com/imgk/caddy-trojan](https://github.com/imgk/caddy-trojan)** + +**Custom builds:**`xcaddy build --with github.com/imgk/caddy-trojan/app` + +Description[🔗](https://caddyserver.com/docs/modules/trojan.upstreams.memory#docs "Direct link") +------------------------------------------------------------------------------------------------ + +trojan.upstreams.memory is ... + +[🔗](https://caddyserver.com/docs/modules/trojan.upstreams.memory#persist)persist +UpstreamRaw is ... + +Fulfilled by modules in namespace: **trojan.upstreams** + +* [caddy](https://caddyserver.com/docs/modules/trojan.upstreams.caddy)Non-standard +* [memory](https://caddyserver.com/docs/modules/trojan.upstreams.memory)Non-standard diff --git a/docs/caddy/docs/docs/profiling.md b/docs/caddy/profiling.md similarity index 95% rename from docs/caddy/docs/docs/profiling.md rename to docs/caddy/profiling.md index f74d3b9..9ff413d 100644 --- a/docs/caddy/docs/docs/profiling.md +++ b/docs/caddy/profiling.md @@ -13,8 +13,8 @@ When reporting certain bugs in Caddy, we may ask for a profile. This article can Two things to know before getting started: -1. **Caddy profiles are NOT security-sensitive.** They contain benign technical readouts, not the contents of memory. They do not grant access to systems. They are safe to share. -2. **Profiles are lightweight and can be collected in production.** In fact, this is a recommended best practice for many users; see later in this article. +1. **Caddy profiles are NOT security-sensitive.** They contain benign technical readouts, not the contents of memory. They do not grant access to systems. They are safe to share. +2. **Profiles are lightweight and can be collected in production.** In fact, this is a recommended best practice for many users; see later in this article. Obtaining profiles[🔗](https://caddyserver.com/docs/profiling#obtaining-profiles "Direct link") ----------------------------------------------------------------------------------------------- @@ -64,8 +64,8 @@ But binary is actually the default format. The HTML links append the `?debug=` q These are the query string parameters you can set (from [the Go docs](https://pkg.go.dev/net/http/pprof#hdr-Parameters)): -* **`debug=N` (all profiles except cpu):** response format: N = 0: binary (default), N \> 0: plaintext -* **`gc=N` (heap profile):** N \> 0: run a garbage collection cycle before profiling +* **`debug=N` (all profiles except cpu):** response format: N = 0: binary (default), N > 0: plaintext +* **`gc=N` (heap profile):** N > 0: run a garbage collection cycle before profiling * **`seconds=N` (allocs, block, goroutine, heap, mutex, threadcreate profiles):** return a delta profile * **`seconds=N` (cpu, trace profiles):** profile for the given duration @@ -98,18 +98,12 @@ This will, of course, make profiles available to who can connect to your site. I Another way is to use an SSH tunnel. This is an encrypted connection using the SSH protocol between your computer and your server. Run a command like this on your computer: -``` -ssh -N username@example.com -L 8123:localhost:2019 -``` - +`ssh -N username@example.com -L 8123:localhost:2019` This tunnels `localhost:8123` (on your local machine) to `localhost:2019` on `example.com`. Make sure to replace `username`, `example.com`, and ports as necessary. Then in another terminal you can run `curl` like so: -``` -curl -v http://localhost:8123/debug/pprof/ -H "Host: localhost:2019" -``` - +`curl -v http://localhost:8123/debug/pprof/ -H "Host: localhost:2019"` You can avoid the need for `-H "Host: ..."` by using port `2019` on both sides of the tunnel (but this requires that port `2019` is not already taken on your own computer, i.e. not having Caddy running locally). While the tunnel is active, you can access any and all of the admin API. Type Ctrl+C on the `ssh` command to close the tunnel. @@ -118,16 +112,10 @@ While the tunnel is active, you can access any and all of the admin API. Type Ct Running a tunnel with the above command requires that you keep the terminal open. If you want to run the tunnel in the background, you can start the tunnel like this: -``` -ssh -f -N -M -S /tmp/caddy-tunnel.sock username@example.com -L 8123:localhost:2019 -``` - +`ssh -f -N -M -S /tmp/caddy-tunnel.sock username@example.com -L 8123:localhost:2019` This will start in the background and create a control socket at `/tmp/caddy-tunnel.sock`. You can then use the control socket to close the tunnel when you're done with it: -``` -ssh -S /tmp/caddy-tunnel.sock -O exit e -``` - +`ssh -S /tmp/caddy-tunnel.sock -O exit e` ### Remote admin API[🔗](https://caddyserver.com/docs/profiling#remote-admin-api "Direct link") You can also configure the admin API to accept remote connections to authorized clients. @@ -220,9 +208,9 @@ Despite its verbosity, the most useful information uniquely provided by this dum The first line contains the goroutine's number (61961905), state ("IO wait"), and duration ("1 minutes"): * **Goroutine number:** Yes, goroutines have numbers! But they are not exposed to our code. These numbers are especially helpful in a stack trace, however, because we can see which goroutine spawned this one (see at the end: "created by ... in goroutine 61961902"). Tooling shown below helps us draw visual graphs of this. - + * **State:** This tells us what the goroutine is currently doing. Here are some possible states you may see: - + * `running`: Executing code - awesome! * `IO wait`: Waiting for network. Does not consume an OS thread because it is parked on a non-blocking network poller. * `sleep`: We all need more of it. @@ -231,8 +219,8 @@ The first line contains the goroutine's number (61961905), state ("IO wait"), an * `chan receive`: Blocked on a channel receive (`<-ch`). * `semacquire`: Waiting to acquire a semaphore (low-level synchronization primitive). * `syscall`: Executing a system call. Consumes an OS thread. + * **Duration:** How long the goroutine has existed. Useful for finding bugs like goroutine leaks. For example, if we expect all network connections to be closed after a few minutes, what does it mean when we find a lot of netconn goroutines alive for hours? - ### Interpreting goroutine dumps[🔗](https://caddyserver.com/docs/profiling#interpreting-goroutine-dumps "Direct link") @@ -288,6 +276,9 @@ To download a CPU profile, make a request to `/debug/pprof/profile?seconds=N`, w When completed, it should download a binary file, aptly named `profile`. Then we need to examine it. +`go tool pprof`[🔗](https://caddyserver.com/docs/profiling#go-tool-pprof "Direct link") +--------------------------------------------------------------------------------------- + We'll use Go's built-in profile analyzer to read the CPU profile as an example, but you can use it with any kind of profile. Run this command (replacing "profile" with the actual filepath if different), which opens an interactive prompt: @@ -299,7 +290,7 @@ Type: cpu Time: Aug 29, 2022 at 8:47pm (MDT) Duration: 30.02s, Total samples = 70.11s (233.55%) Entering interactive mode (type "help" for commands, "o" for options) -(pprof) +(pprof) ``` This is something you can explore. Entering `help` gives you a list of commands and `o` will show you current options. And if you type `help ` you can get information about a specific command. @@ -377,7 +368,7 @@ Bingo. Nearly half of memory is allocated strictly for read and write buffers fr If we instead run the `svg` or `web` commands, we'll get a visualization of the profile: -![Image 10: CPU profile visualization](https://caddyserver.com/old/resources/images/profile.png) +![Image 1: CPU profile visualization](https://caddyserver.com/old/resources/images/profile.png) This is a CPU profile but similar graphs are available for other profile types. @@ -414,7 +405,7 @@ As you can see, we reduced memory allocations by about half! Diffs can be visualized, too: -![Image 11: CPU profile visualization](https://caddyserver.com/old/resources/images/profile-diff.png) +![Image 2: CPU profile visualization](https://caddyserver.com/old/resources/images/profile-diff.png) This makes it really obvious how the changes affected the performance of certain parts of the program. diff --git a/docs/caddy/docs/docs/quick-starts.md b/docs/caddy/quick-starts.md similarity index 72% rename from docs/caddy/docs/docs/quick-starts.md rename to docs/caddy/quick-starts.md index bdfb08b..354c7e8 100644 --- a/docs/caddy/docs/docs/quick-starts.md +++ b/docs/caddy/quick-starts.md @@ -4,20 +4,18 @@ URL Source: https://caddyserver.com/docs/quick-starts Markdown Content: Quick-starts — Caddy Documentation -=============== -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== -Documentation - -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) -SearchK +Documentation -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -29,6 +27,7 @@ SearchK * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -41,6 +40,7 @@ SearchK * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -59,34 +59,37 @@ SearchK * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) -Quick-starts[🔗](https://caddyserver.com/docs/quick-starts#quick-starts "Direct link") -====================================================================================== +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +Quick-starts +============ These tutorials are designed to get you up and running quickly without much explanation to get in the way. It is **highly recommended** that you follow-up by reading other tutorials and reference documentation to fully understand how your web server works. -Menu[🔗](https://caddyserver.com/docs/quick-starts#menu "Direct link") ----------------------------------------------------------------------- +Menu +---- * #### [Using the API](https://caddyserver.com/docs/quick-starts/api) - + * #### [Using a Caddyfile](https://caddyserver.com/docs/quick-starts/caddyfile) - + * #### [Static file server](https://caddyserver.com/docs/quick-starts/static-files) - + * #### [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) - + * #### [HTTPS](https://caddyserver.com/docs/quick-starts/https) - -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/quick-starts/api.md b/docs/caddy/quick-starts/api.md similarity index 98% rename from docs/caddy/docs/docs/quick-starts/api.md rename to docs/caddy/quick-starts/api.md index 10ff952..2b03ffc 100644 --- a/docs/caddy/docs/docs/quick-starts/api.md +++ b/docs/caddy/quick-starts/api.md @@ -12,10 +12,7 @@ Markdown Content: First start Caddy: -``` -caddy start -``` - +`caddy start` Caddy is currently running idle (with a blank configuration). Give it a simple config with `curl`: ``` @@ -105,10 +102,7 @@ Goodbye, world! When you are done with Caddy, make sure to stop it: -``` -caddy stop -``` - +`caddy stop` There's a lot more you can do with the API, including exporting configuration and making fine-grained changes to the config (as opposed to updating the whole thing). Be sure to read the [full API tutorial](https://caddyserver.com/docs/api-tutorial) to learn how! Further reading diff --git a/docs/caddy/docs/docs/quick-starts/caddyfile.md b/docs/caddy/quick-starts/caddyfile.md similarity index 83% rename from docs/caddy/docs/docs/quick-starts/caddyfile.md rename to docs/caddy/quick-starts/caddyfile.md index 3583418..393e9f9 100644 --- a/docs/caddy/docs/docs/quick-starts/caddyfile.md +++ b/docs/caddy/quick-starts/caddyfile.md @@ -4,18 +4,18 @@ URL Source: https://caddyserver.com/docs/quick-starts/caddyfile Markdown Content: Caddyfile Quick-start — Caddy Documentation -=============== -[![Image 6: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) +=============== -Documentation +[![Image 1: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg)](https://caddyserver.com/) -a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +Documentation -[Download](https://caddyserver.com/download) [Documentation](https://caddyserver.com/docs/) [Forum](https://caddy.community/) [GitHub](https://github.com/caddyserver/caddy) [Account](https://caddyserver.com/account/) [**Support**](https://caddyserver.com/support) [Sponsor](https://caddyserver.com/sponsor) + a [![Image 2](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](https://zerossl.com/) project +[Download](https://caddyserver.com/download)[Documentation](https://caddyserver.com/docs/)[Forum](https://caddy.community/)[GitHub](https://github.com/caddyserver/caddy)[Account](https://caddyserver.com/account/)[**Support**](https://caddyserver.com/support)[Sponsor](https://caddyserver.com/sponsor) * [Welcome](https://caddyserver.com/docs/) -* [Wiki ![Image 8](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) +* [Wiki ![Image 3](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddy.community/c/wiki/13) * Get Caddy * [Install](https://caddyserver.com/docs/install) * [Build from source](https://caddyserver.com/docs/build) @@ -27,6 +27,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Static files](https://caddyserver.com/docs/quick-starts/static-files) * [Reverse proxy](https://caddyserver.com/docs/quick-starts/reverse-proxy) * [HTTPS](https://caddyserver.com/docs/quick-starts/https) + * [Caddy API](https://caddyserver.com/docs/api-tutorial) * [Caddyfile](https://caddyserver.com/docs/caddyfile-tutorial) * Reference @@ -39,6 +40,7 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Request matchers](https://caddyserver.com/docs/caddyfile/matchers) * [Response matchers](https://caddyserver.com/docs/caddyfile/response-matchers) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) + * [Modules](https://caddyserver.com/docs/modules/) * [JSON Config Structure](https://caddyserver.com/docs/json/) * [Automatic HTTPS](https://caddyserver.com/docs/automatic-https) @@ -57,9 +59,10 @@ a [![Image 7](https://caddyserver.com/old/resources/images/zerossl-logo.svg)](ht * [Caddyfile Support](https://caddyserver.com/docs/extending-caddy/caddyfile) * [Config Adapters](https://caddyserver.com/docs/extending-caddy/config-adapters) * [Placeholders](https://caddyserver.com/docs/extending-caddy/placeholders) + * [Module Namespaces](https://caddyserver.com/docs/extending-caddy/namespaces) - -* [v1 Docs ![Image 9](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) + +* [v1 Docs ![Image 4](https://caddyserver.com/old/resources/images/external-link.svg)](https://caddyserver.com/caddy-v1-docs-archive.tar.gz) Caddyfile Quick-start ===================== @@ -84,10 +87,7 @@ respond "Hello, world!" Save this and run Caddy from the same folder that contains your Caddyfile: -``` -caddy start -``` - +`caddy start` You will probably be asked for your password, because Caddy serves all sites -- even local ones -- over HTTPS by default. (The password prompt should only happen the first time!) For local HTTPS, Caddy automatically generates certificates and unique private keys for you. The root certificate is added to your system's trust store, which is why the password prompt is necessary. It allows you to develop locally over HTTPS without certificate errors. @@ -123,10 +123,7 @@ curl localhost:2019/load \ or with the reload command, which does the same API request for you: -``` -caddy reload -``` - +`caddy reload` Try out your new "goodbye" endpoint [in your browser](https://localhost:2016/) or with `curl` to make sure it works: ``` @@ -136,10 +133,7 @@ Goodbye, world! When you are done with Caddy, make sure to stop it: -``` -caddy stop -``` - +`caddy stop` Further reading --------------- @@ -147,9 +141,12 @@ Further reading * [Directives](https://caddyserver.com/docs/caddyfile/directives) * [Common patterns](https://caddyserver.com/docs/caddyfile/patterns) -![Image 10: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project -in partnership with [Ardan Labs](https://www.ardanlabs.com/) +![Image 5: Caddy](https://caddyserver.com/old/resources/images/caddy-logo.svg) An [open source](https://github.com/caddyserver/caddy) Go community project + + in partnership with [Ardan Labs](https://www.ardanlabs.com/) + [Privacy-respecting analytics by Fathom](https://usefathom.com/ref/AUKNWU) -© 2024 ZeroSSL. All rights reserved. -Caddy® is a registered trademark of ZeroSSL GmbH. + © 2025 ZeroSSL. All rights reserved. + + Caddy® is a registered trademark of ZeroSSL GmbH. diff --git a/docs/caddy/docs/docs/quick-starts/https.md b/docs/caddy/quick-starts/https.md similarity index 72% rename from docs/caddy/docs/docs/quick-starts/https.md rename to docs/caddy/quick-starts/https.md index a58130f..84bc52e 100644 --- a/docs/caddy/docs/docs/quick-starts/https.md +++ b/docs/caddy/quick-starts/https.md @@ -30,8 +30,8 @@ Also make sure your server is externally reachable on ports 80 and 443 from a pu All we have to do is start Caddy with your domain name in the config. There are several ways to do this. -Caddyfile[🔗](https://caddyserver.com/docs/quick-starts/https#caddyfile "Direct link") --------------------------------------------------------------------------------------- +Caddyfile +--------- This is the most common way to get HTTPS. @@ -45,36 +45,27 @@ respond "Hello, privacy!" Then from the same directory, run: -``` -caddy run -``` - +`caddy run` You will see Caddy provision a TLS certificate and serve your site over HTTPS. This was possible because your site's address in the Caddyfile contained a domain name. -The `file-server` command[🔗](https://caddyserver.com/docs/quick-starts/https#the-file-server-command "Direct link") --------------------------------------------------------------------------------------------------------------------- +The `file-server` command +------------------------- If all you need is serving static files over HTTPS, run this command (replacing your domain name): -``` -caddy file-server --domain example.com -``` - +`caddy file-server --domain example.com` You will see Caddy provision a TLS certificate and serve your site over HTTPS. -The `reverse-proxy` command[🔗](https://caddyserver.com/docs/quick-starts/https#the-reverse-proxy-command "Direct link") ------------------------------------------------------------------------------------------------------------------------- +The `reverse-proxy` command +--------------------------- If all you need is a simple reverse proxy over HTTPS (as a TLS terminator), run this command (replacing your domain name and actual backend address): -``` -caddy reverse-proxy --from example.com --to localhost:9000 -``` - +`caddy reverse-proxy --from example.com --to localhost:9000` You will see Caddy provision a TLS certificate and serve your site over HTTPS. -JSON config[🔗](https://caddyserver.com/docs/quick-starts/https#json-config "Direct link") ------------------------------------------------------------------------------------------- +JSON config +----------- The general rule of thumb is that any [host matcher](https://caddyserver.com/docs/json/apps/http/servers/routes/match/host/) will trigger automatic HTTPS. diff --git a/docs/caddy/docs/docs/quick-starts/reverse-proxy.md b/docs/caddy/quick-starts/reverse-proxy.md similarity index 89% rename from docs/caddy/docs/docs/quick-starts/reverse-proxy.md rename to docs/caddy/quick-starts/reverse-proxy.md index e6a4774..6cc88f5 100644 --- a/docs/caddy/docs/docs/quick-starts/reverse-proxy.md +++ b/docs/caddy/quick-starts/reverse-proxy.md @@ -22,16 +22,10 @@ Command line To start a plaintext HTTP proxy from port 2080 to port 9000 on your machine: -``` -caddy reverse-proxy --from :2080 --to :9000 -``` - +`caddy reverse-proxy --from :2080 --to :9000` Then try it: -``` -curl -v 127.0.0.1:2080 -``` - +`curl -v 127.0.0.1:2080` The [`reverse-proxy` command](https://caddyserver.com/docs/command-line#reverse-proxy) is intended for quick and easy reverse proxies. (You can use it in production if your requirements are simple.) Caddyfile @@ -49,16 +43,10 @@ That config file is roughly equivalent to the `caddy reverse-proxy` command abov Then, from the same directory, run: -``` -caddy run -``` - +`caddy run` Then try your proxy: -``` -curl -v 127.0.0.1:2080 -``` - +`curl -v 127.0.0.1:2080` If you change the Caddyfile, make sure to [reload](https://caddyserver.com/docs/command-line#caddy-reload) Caddy. This was a simple example. You can do a lot more with the [`reverse_proxy` directive](https://caddyserver.com/docs/caddyfile/directives/reverse_proxy). @@ -78,28 +66,16 @@ If you don't specify a port, Caddy defaults to 443 for HTTPS. In that case you w Here's the most basic `caddy reverse-proxy` command that gives you HTTPS: -``` -caddy reverse-proxy --to :9000 -``` - +`caddy reverse-proxy --to :9000` Then try it: -``` -curl -v https://localhost -``` - +`curl -v https://localhost` You can customize the hostname using the `--from` flag: -``` -caddy reverse-proxy --from example.com --to :9000 -``` - +`caddy reverse-proxy --from example.com --to :9000` If you don't have permission to bind to low ports, you can proxy from a higher port: -``` -caddy reverse-proxy --from example.com:8443 --to :9000 -``` - +`caddy reverse-proxy --from example.com:8443 --to :9000` If you're using a Caddyfile, simply change the first line to your domain name, for example: ``` @@ -113,18 +89,12 @@ HTTPS from proxy to backend Caddy can also proxy using HTTPS between itself and the backend if the backend supports TLS. Just use `https://` in your backend address: -``` -caddy reverse-proxy --from :2080 --to https://localhost:9000 -``` - +`caddy reverse-proxy --from :2080 --to https://localhost:9000` This requires that the backend's certificate is trusted by the system Caddy is running on. (Caddy doesn't trust self-signed certificates unless explicitly configured to do so.) Of course, you can do HTTPS on both ends too: -``` -caddy reverse-proxy --from example.com --to https://example.com:9000 -``` - +`caddy reverse-proxy --from example.com --to https://example.com:9000` This serves HTTPS from client to proxy, and from proxy to backend. If the hostname you're proxying to is different than the one you're proxying from, you will need to use the `--change-host-header` flag: diff --git a/docs/caddy/docs/docs/quick-starts/static-files.md b/docs/caddy/quick-starts/static-files.md similarity index 77% rename from docs/caddy/docs/docs/quick-starts/static-files.md rename to docs/caddy/quick-starts/static-files.md index d6eab7d..a536e7d 100644 --- a/docs/caddy/docs/docs/quick-starts/static-files.md +++ b/docs/caddy/quick-starts/static-files.md @@ -15,37 +15,25 @@ This guide will show you how to get a production-ready static file server up and There are two easy ways to get a quick file server up and running. -Command line ------------- +Command line[🔗](https://caddyserver.com/docs/quick-starts/static-files#command-line "Direct link") +--------------------------------------------------------------------------------------------------- In your terminal, change to the root directory of your site and run: -``` -caddy file-server -``` - +`caddy file-server` If you get a permissions error, it probably means your OS does not allow you to bind to low ports -- so use a high port instead: -``` -caddy file-server --listen :2015 -``` - +`caddy file-server --listen :2015` Then open [localhost](http://localhost/) (or [localhost:2015](http://localhost:2015/)) in your browser to see your site! If you don't have an index file but you want to display a file listing, use the `--browse` option: -``` -caddy file-server --browse -``` - +`caddy file-server --browse` You can use another folder as the site root: -``` -caddy file-server --root ~/mysite -``` - -Caddyfile ---------- +`caddy file-server --root ~/mysite` +Caddyfile[🔗](https://caddyserver.com/docs/quick-starts/static-files#caddyfile "Direct link") +--------------------------------------------------------------------------------------------- In the root of your site, create a file called `Caddyfile` with these contents: @@ -59,10 +47,7 @@ If you don't have permission to bind to low ports, replace `localhost` with `loc Then, from the same directory, run: -``` -caddy run -``` - +`caddy run` You can then load [localhost](https://localhost/) (or whatever the address is in your config) to see your site! The [`file_server` directive](https://caddyserver.com/docs/caddyfile/directives/file_server) has more options for you to customize your site. Make sure to [reload](https://caddyserver.com/docs/command-line#caddy-reload) Caddy (or stop and start it again) when you change the Caddyfile! diff --git a/docs/caddy/docs/docs/running.md b/docs/caddy/running.md similarity index 78% rename from docs/caddy/docs/docs/running.md rename to docs/caddy/running.md index 2cb7f41..a8f91cc 100644 --- a/docs/caddy/docs/docs/running.md +++ b/docs/caddy/running.md @@ -14,28 +14,30 @@ While Caddy can be run directly with its [command line interface](https://caddys * [Environment variables](https://caddyserver.com/docs/running#environment-variables) * [`run` and `reload` override](https://caddyserver.com/docs/running#run-and-reload-override) * [Restart on crash](https://caddyserver.com/docs/running#restart-on-crash) + * [SELinux Considerations](https://caddyserver.com/docs/running#selinux-considerations) + * [Windows service](https://caddyserver.com/docs/running#windows-service) * [sc.exe](https://caddyserver.com/docs/running#scexe) * [WinSW](https://caddyserver.com/docs/running#winsw) + * [Docker Compose](https://caddyserver.com/docs/running#docker-compose) * [Setup](https://caddyserver.com/docs/running#setup) * [Usage](https://caddyserver.com/docs/running#usage) * [Local HTTPS](https://caddyserver.com/docs/running#local-https-with-docker) -Linux Service[🔗](https://caddyserver.com/docs/running#linux-service "Direct link") ------------------------------------------------------------------------------------ +Linux Service +------------- The recommended way to run Caddy on Linux distributions with systemd is with our official systemd unit files. -### Unit Files[🔗](https://caddyserver.com/docs/running#unit-files "Direct link") +### Unit Files -We provide two different systemd unit files that you can choose between, depending on your usecase: +We provide two different systemd unit files that you can choose between, depending on your use case: * [**`caddy.service`**](https://github.com/caddyserver/dist/blob/master/init/caddy.service) if you configure Caddy with a [Caddyfile](https://caddyserver.com/docs/caddyfile). If you prefer to use a different config adapter or a JSON config file, you may [override](https://caddyserver.com/docs/running#overrides) the `ExecStart` and `ExecReload` commands. - + * [**`caddy-api.service`**](https://github.com/caddyserver/dist/blob/master/init/caddy-api.service) if you configure Caddy solely through its [API](https://caddyserver.com/docs/api). This service uses the [`--resume`](https://caddyserver.com/docs/command-line#caddy-run) option which will start Caddy using the `autosave.json` which is [persisted](https://caddyserver.com/docs/json/admin/config/) by default. - They are very similar, but differ in the `ExecStart` and `ExecReload` commands to accommodate the workflows. @@ -46,7 +48,7 @@ sudo systemctl disable --now caddy sudo systemctl enable --now caddy-api ``` -### Manual Installation[🔗](https://caddyserver.com/docs/running#manual-installation "Direct link") +### Manual Installation Some [installation methods](https://caddyserver.com/docs/install) automatically set up Caddy to run as a service. If you chose a method that did not, you may follow these instructions to do so: @@ -58,22 +60,13 @@ Some [installation methods](https://caddyserver.com/docs/install) automatically Move the caddy binary into your `$PATH`, for example: -``` -sudo mv caddy /usr/bin/ -``` - +`sudo mv caddy /usr/bin/` Test that it worked: -``` -caddy version -``` - +`caddy version` Create a group named `caddy`: -``` -sudo groupadd --system caddy -``` - +`sudo groupadd --system caddy` Create a user named `caddy` with a writeable home directory: ``` @@ -103,54 +96,36 @@ sudo systemctl enable --now caddy Verify that it is running: -``` -systemctl status caddy -``` - +`systemctl status caddy` Now you're ready to [use the service](https://caddyserver.com/docs/running#using-the-service)! -### Using the Service[🔗](https://caddyserver.com/docs/running#using-the-service "Direct link") +### Using the Service If using a Caddyfile, you can edit your configuration with `nano`, `vi`, or your preferred editor: -``` -sudo nano /etc/caddy/Caddyfile -``` - +`sudo nano /etc/caddy/Caddyfile` You can place your static site files in either `/var/www/html` or `/srv`. Make sure the `caddy` user has permission to read the files. To verify that the service is running: -``` -systemctl status caddy -``` - +`systemctl status caddy` The status command will also show the location of the currently running service file. When running with our official service file, Caddy's output will be redirected to `journalctl`. To read your full logs and to avoid lines being truncated: -``` -journalctl -u caddy --no-pager | less +G -``` - +`journalctl -u caddy --no-pager | less +G` If using a config file, you can gracefully reload Caddy after making any changes: -``` -sudo systemctl reload caddy -``` - +`sudo systemctl reload caddy` You can stop the service with: -``` -sudo systemctl stop caddy -``` - +`sudo systemctl stop caddy` The Caddy process will run as the `caddy` user, which has its `$HOME` set to `/var/lib/caddy`. This means that: * The default [data storage location](https://caddyserver.com/docs/conventions#data-directory) (for certificates and other state information) will be in `/var/lib/caddy/.local/share/caddy`. * The default [config storage location](https://caddyserver.com/docs/conventions#configuration-directory) (for the auto-saved JSON config, primarily useful for the `caddy-api` service) will be in `/var/lib/caddy/.config/caddy`. -### Local HTTPS with systemd[🔗](https://caddyserver.com/docs/running#local-https-with-systemd "Direct link") +### Local HTTPS with systemd When using Caddy for local development with HTTPS, you might use a [hostname](https://caddyserver.com/docs/caddyfile/concepts#addresses) like `localhost` or `app.localhost`. This enables [Local HTTPS](https://caddyserver.com/docs/automatic-https#local-https) using Caddy's local CA to issue certificates. @@ -158,17 +133,14 @@ Since Caddy runs as the `caddy` user when running as a service, it won't have pe If you want other devices to connect to your server when using the [`internal` issuer](https://caddyserver.com/docs/caddyfile/directives/tls#internal), you will need to install the root CA certificate on those devices as well. You can find the root CA certificate at `/var/lib/caddy/.local/share/caddy/pki/authorities/local/root.crt`. Many web browsers now use their own trust store (ignoring the system's trust store), so you may also need to install the certificate manually there as well. -### Overrides[🔗](https://caddyserver.com/docs/running#overrides "Direct link") +### Overrides The best way to override aspects of the service files is with this command: -``` -sudo systemctl edit caddy -``` - +`sudo systemctl edit caddy` This will open a blank file with your default terminal text editor in which you can override or add directives to the unit definition. This is called a "drop-in" file. -#### Environment variables[🔗](https://caddyserver.com/docs/running#environment-variables "Direct link") +#### Environment variables If you need to define environment variables for use in your config, you may do so like this: @@ -190,7 +162,7 @@ Then your `/etc/caddy/.env` file may look like this (do not use `"` quotes aroun CF_API_TOKEN=super-secret-cloudflare-tokenvalue ``` -#### `run` and `reload` override[🔗](https://caddyserver.com/docs/running#run-and-reload-override "Direct link") +#### `run` and `reload` override If you need to change the config file from the default of the Caddyfile, to instead using a JSON file (note that `Exec*` directives [must be reset with empty strings](https://www.freedesktop.org/software/systemd/man/systemd.service.html#ExecStart=) before setting a new value): @@ -202,7 +174,7 @@ ExecReload= ExecReload=/usr/bin/caddy reload --config /etc/caddy/caddy.json ``` -#### Restart on crash[🔗](https://caddyserver.com/docs/running#restart-on-crash "Direct link") +#### Restart on crash If you'd like caddy to restart itself after 5s if it ever crashes unexpectedly: @@ -216,18 +188,14 @@ RestartSec=5s Then, save the file and exit the text editor, and restart the service for it to take effect: -``` -sudo systemctl restart caddy -``` - -### SELinux Considerations[🔗](https://caddyserver.com/docs/running#selinux-considerations "Direct link") +`sudo systemctl restart caddy` +### SELinux Considerations On SELinux enabled systems you have two options: -1. Install Caddy using the [COPR repo](https://caddyserver.com/docs/install#fedora-redhat-centos). Your systemd file and caddy binary will already be created and labelled correctly (so you may ignore this section). If you wish to use a custom build of Caddy, you'll need to label the executable as described below. - -2. [Download Caddy from this site](https://caddyserver.com/download) or compile it with [`xcaddy`](https://github.com/caddyserver/xcaddy). In either case, you will need to label the files yourself. - +1. Install Caddy using the [COPR repo](https://caddyserver.com/docs/install#fedora-redhat-centos). Your systemd file and caddy binary will already be created and labelled correctly (so you may ignore this section). If you wish to use a custom build of Caddy, you'll need to label the executable as described below. + +2. [Download Caddy from this site](https://caddyserver.com/download) or compile it with [`xcaddy`](https://github.com/caddyserver/xcaddy). In either case, you will need to label the files yourself. Systemd unit files and their executables will not be run unless labelled with `systemd_unit_file_t` and `bin_t` respectively. @@ -239,34 +207,25 @@ To tag the `caddy` binary, you can use the following command: semanage fcontext -a -t bin_t /usr/bin/caddy && restorecon -Rv /usr/bin/caddy ``` -Windows service[🔗](https://caddyserver.com/docs/running#windows-service "Direct link") ---------------------------------------------------------------------------------------- +Windows service +--------------- There are two ways to run Caddy as a service on Windows: [sc.exe](https://caddyserver.com/docs/running#scexe) or [WinSW](https://caddyserver.com/docs/running#winsw). -### sc.exe[🔗](https://caddyserver.com/docs/running#scexe "Direct link") +### sc.exe To create the service, run: -``` -sc.exe create caddy start= auto binPath= "YOURPATH\caddy.exe run" -``` - +`sc.exe create caddy start= auto binPath= "YOURPATH\caddy.exe run"` (replace `YOURPATH` with the actual path to your `caddy.exe`) To start: -``` -sc.exe start caddy -``` - +`sc.exe start caddy` To stop: -``` -sc.exe stop caddy -``` - -### WinSW[🔗](https://caddyserver.com/docs/running#winsw "Direct link") +`sc.exe stop caddy` +### WinSW Install Caddy as a service on Windows with these instructions. @@ -298,32 +257,23 @@ Add a `caddy-service.xml` in the same directory: You can now install the service using: -``` -caddy-service install -``` - +`caddy-service install` You might want to start the Windows Services Console to see if the service is running correctly: -``` -services.msc -``` - +`services.msc` Be aware that Windows services cannot be reloaded, so you have to tell caddy directly to reload: -``` -caddy reload -``` - +`caddy reload` Restarting is possible via the normal Windows services commands, for example via the Task Manager's "Services" tab. For customizing the service wrapper, see the [WinSW documentation](https://github.com/winsw/winsw/tree/master#usage) -Docker Compose[🔗](https://caddyserver.com/docs/running#docker-compose "Direct link") -------------------------------------------------------------------------------------- +Docker Compose +-------------- The simplest way to get up and running with Docker is to use Docker Compose. See the docs on [Docker Hub](https://hub.docker.com/_/caddy) for more additional details about the official Caddy Docker image. -### Setup[🔗](https://caddyserver.com/docs/running#setup "Direct link") +### Setup First, create a file `compose.yml` (or add this service to your existing file): @@ -337,7 +287,7 @@ services: - "443:443" - "443:443/udp" volumes: - - ./Caddyfile:/etc/caddy/Caddyfile + - ./conf:/etc/caddy - ./site:/srv - caddy_data:/data - caddy_config:/config @@ -353,39 +303,45 @@ What this does: * Uses the `unless-stopped` restart policy to make sure the Caddy container is restarted automatically when your machine is rebooted. * Binds to ports `80` and `443` for HTTP and HTTPS respectively, plus `443/udp` for HTTP/3. -* Bind mounts the `Caddyfile` file which is your Caddy configuration. +* Bind mounts the `conf` directory which contains your Caddyfile configuration. * Bind mounts the `site` directory to serve your site's static files from `/srv`. * Named volumes for `/data` and `/config` to [persist important information](https://caddyserver.com/docs/conventions#file-locations). -Then, create a file named `Caddyfile` beside the `compose.yml`, and write your [Caddyfile](https://caddyserver.com/docs/caddyfile/concepts) config. +Then, create a file named `Caddyfile` as the only file in the `conf` directory, and write your [Caddyfile](https://caddyserver.com/docs/caddyfile/concepts) config. If you have static files to serve, you may place them in a `site/` directory beside the configs, then set the [`root`](https://caddyserver.com/docs/caddyfile/directives/root) using `root * /srv`. If you don't, then you may remove the `/srv` volume mount. If you need a custom build of Caddy with plugins, follow the [Docker build instructions](https://caddyserver.com/docs/build#docker) to create a custom Docker image. Create the `Dockerfile` beside your `compose.yml`, then replace the `image:` line in your `compose.yml` with `build: .` instead. -### Usage[🔗](https://caddyserver.com/docs/running#usage "Direct link") +### Usage Then, you can start the container: -``` -docker compose up -d -``` - +`docker compose up -d` To reload Caddy after making changes to your Caddyfile: -``` -docker compose exec -w /etc/caddy caddy caddy reload -``` - +`docker compose exec -w /etc/caddy caddy caddy reload` To see Caddy's 1000 most recent logs, and `f`ollow to see new ones streaming in: +`docker compose logs caddy -n=1000 -f` +### Local HTTPS with Docker + +When using Docker for local development with HTTPS, you might use a [hostname](https://caddyserver.com/docs/caddyfile/concepts#addresses) like `localhost` or `app.localhost`. This enables [Local HTTPS](https://caddyserver.com/docs/automatic-https#local-https) using Caddy's local CA to issue certificates. This means that HTTP clients outside the container will not trust the TLS certificate served by Caddy. To solve this, you may install Caddy's root CA cert on your host machine's trust store: + ``` -docker compose logs caddy -n=1000 -f +docker compose cp \ + caddy:/data/caddy/pki/authorities/local/root.crt \ + /usr/local/share/ca-certificates/root.crt \ + && sudo update-ca-certificates ``` -### Local HTTPS with Docker[🔗](https://caddyserver.com/docs/running#local-https-with-docker "Direct link") - -When using Docker for local development with HTTPS, you might use a [hostname](https://caddyserver.com/docs/caddyfile/concepts#addresses) like `localhost` or `app.localhost`. This enables [Local HTTPS](https://caddyserver.com/docs/automatic-https#local-https) using Caddy's local CA to issue certificates. This means that HTTP clients outside the container will not trust the TLS certificate served by Caddy. To solve this, you may install Caddy's root CA cert on your host machine's trust store: +``` +docker compose cp \ + caddy:/data/caddy/pki/authorities/local/root.crt \ + /tmp/root.crt \ + && sudo security add-trusted-cert -d -r trustRoot \ + -k /Library/Keychains/System.keychain /tmp/root.crt +``` ``` docker compose cp \ @@ -396,6 +352,6 @@ docker compose cp \ Many web browsers now use their own trust store (ignoring the system's trust store), so you may also need to install the certificate manually there as well, using the `root.crt` file copied from the container in the command above. -* For Firefox, go to Preferences \> Privacy & Security \> Certificates \> View Certificates \> Authorities \> Import, and select the `root.crt` file. - -* For Chrome, go to Settings \> Privacy and security \> Security \> Manage certificates \> Authorities \> Import, and select the `root.crt` file. +* For Firefox, go to Preferences > Privacy & Security > Certificates > View Certificates > Authorities > Import, and select the `root.crt` file. + +* For Chrome, go to Settings > Privacy and security > Security > Manage certificates > Authorities > Import, and select the `root.crt` file. diff --git a/docs/caddy/docs/docs/signature-verification.md b/docs/caddy/signature-verification.md similarity index 92% rename from docs/caddy/docs/docs/signature-verification.md rename to docs/caddy/signature-verification.md index 86de5f6..118c727 100644 --- a/docs/caddy/docs/docs/signature-verification.md +++ b/docs/caddy/signature-verification.md @@ -3,19 +3,16 @@ Title: Verifying Asset Signatures - Caddy Documentation URL Source: https://caddyserver.com/docs/signature-verification Markdown Content: -Signature Verification[🔗](https://caddyserver.com/docs/signature-verification#signature-verification "Direct link") --------------------------------------------------------------------------------------------------------------------- +Signature Verification +---------------------- -Artifact signing allows you to validate the artifact you have is the same one created by the project's workflow and was not modified by an unauthorized party (e.g. man-in-the-middle). The validation provides common ground, assurance, and knowledge that all parties are refering to the same artifact, collection of bytes, whether it is an executable, SBOM, or text file. +Artifact signing allows you to validate the artifact you have is the same one created by the project's workflow and was not modified by an unauthorized party (e.g. man-in-the-middle). The validation provides common ground, assurance, and knowledge that all parties are referring to the same artifact, collection of bytes, whether it is an executable, SBOM, or text file. As of Caddy v2.6.0, CI/CD release artifacts are signed using project [Sigstore](https://www.sigstore.dev/) technology, which issues certificates containing details about the subject to whom the certificate is issued. You can start by inspecting the certificate used to sign your artifact of choice. The certificates are base64-encoded, so you first have to base64-decode it to receive the PEM file. In this example, we'll work with the `caddy_2.6.0_checksums.txt` artifact and assume a Linux-like environment. Start by downloading the the 3 files pertaining to your artifact of choice (i.e. `` which is the actual artifact whose companion signature and certs are to be verified, `.sig` which is the signature of the artifact, and `.pem` is the certificate descending from the root cert by Fulcio by Sigstore). Then base64 decode the downloaded `.pem` file to the armored version: -``` -base64 -d < caddy_2.6.0_checksums.txt.pem > cert.pem -``` - +`base64 -d < caddy_2.6.0_checksums.txt.pem > cert.pem` You can now inspect the certificate using the `openssl` command. Running `openssl x509 -in cert.pem -text` against the certificate we have just decoded shows this snipped print-out: ``` @@ -144,8 +141,8 @@ The use of `jq` is to prettify the output. You should see an output like this: Notice how the value of `.Body.HashedRekordObj.signature.content` matches the content of the signature generated in our CI and available in the file `caddy_2.6.0_checksums.txt.sig`. Moreover, the certificate used and downloaded is also stored in the Rekor server and available in the response at `.Body.HashedRekordObj.signature.publicKey.content` and matches the string we have in the file `caddy_2.6.0_checksums.txt.pem`. We can take one step further and check how `.Body.HashedRekordObj.data.hash.value` matches the output of the command `sha256sum ./caddy_2.6.0_checksums.txt`. So by now we have matching certs, matching signatures, and matching checksums (of the file containing the checksums of the archives but not of itself; this checksum is provided and recorded externally via Sigstore ecosystem). All of this is publicly recorded in transparency logs for the general public to validate. -Verifying Authenticity of an Artifact[🔗](https://caddyserver.com/docs/signature-verification#verifying-authenticity-of-an-artifact "Direct link") --------------------------------------------------------------------------------------------------------------------------------------------------- +Verifying Authenticity of an Artifact +------------------------------------- What if you are handed an artifact claimed to be the product of the Caddy project but you were not given the signature file or the certificate? You can use `rekor-cli` to query Rekor server for the subject artifact: @@ -157,10 +154,7 @@ Found matching entries (listed by UUID): Note how the UUID matches the one encountered in the earlier section for the same file. Like we did in the earlier section, we can query Rekor for the entry details of this UUID: -``` -rekor-cli get --uuid 04deb84e5a73ba75ea69092c6d700eaeb869c29cae3e0cf98dbfef871361ed09 --format json | jq -r '.' -``` - +`rekor-cli get --uuid 04deb84e5a73ba75ea69092c6d700eaeb869c29cae3e0cf98dbfef871361ed09 --format json | jq -r '.'` However, we can short-circuit the lookup by running this line to merge the two separate commands into a one-liner: ``` @@ -193,9 +187,7 @@ rekor-cli get --uuid $(rekor-cli search --artifact ./caddy_2.6.0_checksums.txt - We now know the artifact is signed, and its signature is logged on Rekor transparency log server. The next step is to validate the signature and the artifact were the product of the CI/CD workflow of the Caddy project. We do this by extracting the public key from the JSON received by querying Rekor, base64-decode it into PEM file, then inspect the certificate using `openssl`. Run the following command to extract the certificate from the Rekor response we received earlier, base64-decode it, and store the result in a file. -``` -rekor-cli get --uuid $(rekor-cli search --artifact ./caddy_2.6.0_checksums.txt --format json | jq -r '.UUIDs[0]') --format json | jq -r '.Body.HashedRekordObj.signature.publicKey.content' | base64 -d > cert.pem -``` +`rekor-cli get --uuid $(rekor-cli search --artifact ./caddy_2.6.0_checksums.txt --format json | jq -r '.UUIDs[0]') --format json | jq -r '.Body.HashedRekordObj.signature.publicKey.content' | base64 -d > cert.pem` Now inspect the certificate using `openssl` and pay attention to the `X509v3 extensions` section. @@ -236,7 +228,7 @@ Certificate: The [extensions values](https://caddyserver.com/docs/signature-verification#x509-extensions) indicate the authenticity of the artifact. Refer to [Sigstore OID information](https://github.com/sigstore/fulcio/blob/a25fb09c3f0561ac43e50357fdfc427e3f0aca4a/docs/oid-info.md) for the definition of each extension. -What If The Signature Is Not Verified?[🔗](https://caddyserver.com/docs/signature-verification#what-if-the-signature-is-not-verified "Direct link") ---------------------------------------------------------------------------------------------------------------------------------------------------- +What If The Signature Is Not Verified? +-------------------------------------- Signature verification failure indicates the artificate at hand was not produced by the CI/CD workflow of the Caddy project on GitHub. If you have the signature, the certificate, and the artifact, then you are looking for successful verification reported by `cosign`. Alternatively, you can use `rekor-cli` to inspect the Rekor server for the entry, validate the certificate extensions for the correct and expected values, and match the checksums and signatures. Mismatches or absence of Rekor entry means either the artifact was not produced by the CI/CD of the Caddy project, or the artifact was tampered somewhere between the build flow of the CI/CD, the GitHub releases page, and the delivery to you. diff --git a/docs/caddy/docs/docs/v2-upgrade.md b/docs/caddy/v2-upgrade.md similarity index 95% rename from docs/caddy/docs/docs/v2-upgrade.md rename to docs/caddy/v2-upgrade.md index 04f3047..96f7e1c 100644 --- a/docs/caddy/docs/docs/v2-upgrade.md +++ b/docs/caddy/v2-upgrade.md @@ -31,6 +31,7 @@ This guide won't delve into the new features available -- which are really cool, * [status](https://caddyserver.com/docs/v2-upgrade#status) * [templates](https://caddyserver.com/docs/v2-upgrade#templates) * [tls](https://caddyserver.com/docs/v2-upgrade#tls) + * [Service files](https://caddyserver.com/docs/v2-upgrade#service-files) * [Plugins](https://caddyserver.com/docs/v2-upgrade#plugins) * [Getting help](https://caddyserver.com/docs/v2-upgrade#getting-help) @@ -51,13 +52,13 @@ High-order bits[🔗](https://caddyserver.com/docs/v2-upgrade#high-order-bits "D Steps[🔗](https://caddyserver.com/docs/v2-upgrade#steps "Direct link") ---------------------------------------------------------------------- -1. Get familiar with Caddy 2 by doing our [Getting Started](https://caddyserver.com/docs/getting-started) tutorial. -2. Do step 1 if you haven't yet. Seriously -- we can't stress how important it is to at least know how to use Caddy 2. (It's more fun!) -3. Use the guide below to transition your `caddy` command(s). -4. Use the guide below to transition your Caddyfile. -5. Test your new config locally or in staging. -6. Test, test, test again -7. Deploy and have fun! +1. Get familiar with Caddy 2 by doing our [Getting Started](https://caddyserver.com/docs/getting-started) tutorial. +2. Do step 1 if you haven't yet. Seriously -- we can't stress how important it is to at least know how to use Caddy 2. (It's more fun!) +3. Use the guide below to transition your `caddy` command(s). +4. Use the guide below to transition your Caddyfile. +5. Test your new config locally or in staging. +6. Test, test, test again +7. Deploy and have fun! HTTPS and ports[🔗](https://caddyserver.com/docs/v2-upgrade#https-and-ports "Direct link") ------------------------------------------------------------------------------------------ @@ -97,15 +98,14 @@ The [v2 Caddyfile](https://caddyserver.com/docs/caddyfile/concepts) is very simi ### Primary changes[🔗](https://caddyserver.com/docs/v2-upgrade#primary-changes "Direct link") * If you are serving static files, you will need to add a [`file_server` directive](https://caddyserver.com/docs/caddyfile/directives/file_server), since Caddy 2 does not assume this by default. Caddy 2 does not sniff MIME by default, either, for security reasons; if a Content-Type is missing you may need to set the header yourself using the [header](https://caddyserver.com/docs/caddyfile/directives/header) directive. - + * In v1, you could only filter (or "match") directives by request path. In v2, [request matching](https://caddyserver.com/docs/caddyfile/matchers) is much more powerful. Any v2 directives which add a middleware to the HTTP handler chain or which manipulate the HTTP request/response in any way take advantage of this new matching functionality. [Read more about v2 request matchers.](https://caddyserver.com/docs/caddyfile/matchers) You'll need to know about them to make sense of the v2 Caddyfile. - + * Although many [placeholders](https://caddyserver.com/docs/conventions#placeholders) are the same, many have changed, and there are now [many new ones](https://caddyserver.com/docs/modules/http#docs), including [shorthands for the Caddyfile](https://caddyserver.com/docs/caddyfile/concepts#placeholders). - + * Caddy 2 logs are all structured, and the default format is JSON. All log levels can simply go to the same log to be processed (but you can customize this if needed). - + * Where you matched requests by path prefix in Caddy 1, path matching is now exact by default in Caddy 2. If you want to match a prefix like `/foo/`, you'll need `/foo/*` in Caddy 2. - We'll list some of the most common v1 directives here and describe how to convert them for use in the v2 Caddyfile. @@ -171,8 +171,8 @@ handle_errors { Implied file extensions can be done with [`try_files`](https://caddyserver.com/docs/caddyfile/directives/try_files). -* **v1:** `ext .html` -* **v2:** `try_files {path}.html {path}` +* **v1:**`ext .html` +* **v2:**`try_files {path}.html {path}` ### fastcgi[🔗](https://caddyserver.com/docs/v2-upgrade#fastcgi "Direct link") @@ -270,8 +270,8 @@ reverse_proxy localhost:9005 [Unchanged](https://caddyserver.com/docs/caddyfile/directives/redir), except for a few details about the optional status code argument. Most configs won't need to make any changes. -* **v1:** `redir https://example.com{uri}` -* **v2:** `redir https://example.com{uri}` +* **v1:**`redir https://example.com{uri}` +* **v2:**`redir https://example.com{uri}` ### rewrite[🔗](https://caddyserver.com/docs/v2-upgrade#rewrite "Direct link") @@ -307,8 +307,8 @@ You may find the new [`route`](https://caddyserver.com/docs/caddyfile/directives [Unchanged](https://caddyserver.com/docs/caddyfile/directives/root), but if your root path starts with `/`, you'll need to add a `*` matcher token to distinguish it from a [path matcher](https://caddyserver.com/docs/caddyfile/concepts#path-matchers). -* **v1:** `root /var/www` -* **v2:** `root * /var/www` +* **v1:**`root /var/www` +* **v2:**`root * /var/www` Because it accepts a matcher in v2, this means you can also change the site root depending on the request. @@ -336,17 +336,17 @@ The overall syntax of the [`templates`](https://caddyserver.com/docs/caddyfile/d [See the docs](https://caddyserver.com/docs/modules/http.handlers.templates) for details about the new functions. -* **v1:** `templates` -* **v2:** `templates` +* **v1:**`templates` +* **v2:**`templates` ### tls[🔗](https://caddyserver.com/docs/v2-upgrade#tls "Direct link") The fundamentals of the [`tls`](https://caddyserver.com/docs/caddyfile/directives/tls) directive have not changed, for example specifying your own cert and key: -* **v1:** `tls cert.pem key.pem` -* **v2:** `tls cert.pem key.pem` +* **v1:**`tls cert.pem key.pem` +* **v2:**`tls cert.pem key.pem` -But Caddy's [auto-HTTPS logic](https://caddyserver.com/docs/automatic-https) _has_ changed, so be aware of that! +But Caddy's [auto-HTTPS logic](https://caddyserver.com/docs/automatic-https)_has_ changed, so be aware of that! The cipher suite names have also changed. diff --git a/examples/vite/vite.config.ts b/examples/vite/vite.config.ts index 5c48e6e..159b6b0 100644 --- a/examples/vite/vite.config.ts +++ b/examples/vite/vite.config.ts @@ -3,6 +3,7 @@ import Inspect from 'vite-plugin-inspect' import Unplugin from '../../src/vite' export default defineConfig({ + base: '/test', plugins: [ Inspect(), Unplugin({ diff --git a/package.json b/package.json index 16b09a6..4cac7dd 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "unplugin-https-reverse-proxy", "type": "module", - "version": "3.0.0", + "version": "4.0.0", "description": "", "license": "MIT", "homepage": "https://github.com/zcf0508/unplugin-https-reverse-proxy#readme", diff --git a/src/caddy/caddyfile.ts b/src/caddy/caddyfile.ts index 3b65072..e0ea76e 100644 --- a/src/caddy/caddyfile.ts +++ b/src/caddy/caddyfile.ts @@ -46,27 +46,36 @@ export const caddyTemplate = `{ } } -{% for p in proxies %} -{{ p.target }}{{ p.portSuffix }} { - {{ p.tls }} - reverse_proxy http://{{ p.source }} {% if p.healthCheck %} { - health_uri {{ p.base }} - health_interval 2s - health_timeout 5s - fail_duration 2s - unhealthy_status 502 503 504 404 - lb_try_duration 3s - lb_try_interval 300ms - - @error status 502 503 504 404 - handle_response @error { - respond * 503 { - body "Service Unavailable" - close +{% for host in hosts %} +{{ host.host }}{{ host.portSuffix }} { + {{ host.tls }} + + {% for route in host.routes %} + handle {{ route.base }}* { + reverse_proxy http://{{ route.source }} {% if route.healthCheck %} { + health_uri {{ route.base }} + health_interval 2s + health_timeout 5s + health_headers { + User-Agent {http.request.header.User-Agent} + Accept text/html,application/json,*/* + } + fail_duration 2s + unhealthy_status 502 503 504 404 + lb_try_duration 3s + lb_try_interval 300ms + + @error status 502 503 504 404 + handle_response @error { + respond * 503 { + body "Service Unavailable" + close + } } } + {% endif %} } - {% endif %} + {% endfor %} } {% endfor %} ` @@ -74,5 +83,35 @@ export const caddyTemplate = `{ const liquid = new Liquid() export async function genCaddyfile(ctx: typeof CaddyContext.infer): Promise { - return await liquid.parseAndRender(caddyTemplate, ctx) + const hostsMap = new Map() + + for (const proxy of ctx.proxies) { + const key = `${proxy.target}${proxy.portSuffix}` + if (!hostsMap.has(key)) { + hostsMap.set(key, { + host: proxy.target, + portSuffix: proxy.portSuffix, + tls: proxy.tls, + routes: [], + }) + } + let base = proxy.base || '/' + if (!base.startsWith('/')) + base = `/${base}` + if (base !== '/' && !base.endsWith('/')) + base = `${base}/` + hostsMap.get(key)!.routes.push({ ...proxy, base }) + } + + for (const host of hostsMap.values()) + host.routes.sort((a, b) => b.base.length - a.base.length) + + const hosts = Array.from(hostsMap.values()) + + return await liquid.parseAndRender(caddyTemplate, { ...ctx, hosts }) } diff --git a/src/caddy/config.ts b/src/caddy/config.ts index 7997c66..b57ce86 100644 --- a/src/caddy/config.ts +++ b/src/caddy/config.ts @@ -44,8 +44,13 @@ export function useCaddyConfig(): { const proxies = configJsonRef() || {} _proxies.forEach((p) => { - const index = `${p.target}${p.portSuffix}` - proxies[index] = p + let base = p.base || '/' + if (!base.startsWith('/')) + base = `/${base}` + if (base !== '/' && !base.endsWith('/')) + base = `${base}/` + const index = `${p.target}${p.portSuffix}${base}` + proxies[index] = { ...p, base } }) const content = JSON.stringify(proxies, null, 2) diff --git a/src/caddy/index.ts b/src/caddy/index.ts index e13a3cf..ba4280c 100644 --- a/src/caddy/index.ts +++ b/src/caddy/index.ts @@ -199,6 +199,15 @@ export class CaddyInstant { consola.success('update host success\n') const targetHost = target.split(':')[0] + const normalizeBase = (b: string): string => { + let out = b || '/' + if (!out.startsWith('/')) + out = `/${out}` + if (out !== '/' && !out.endsWith('/')) + out = `${out}/` + return out + } + const baseNormalized = normalizeBase(base) const proxies = [ { @@ -206,7 +215,7 @@ export class CaddyInstant { portSuffix: https ? '' : ':80', tls: https ? 'tls internal' : '', source, - base, + base: baseNormalized, healthCheck, }, ] @@ -218,15 +227,13 @@ export class CaddyInstant { effect(async () => { const { configJsonRef } = getCaddyConfig() const proxies = Object.values(configJsonRef() || {}) - if (!(this.caddyfile || '').includes(`${target.split(':')[0]}${https ? '' : ':80'}`)) { - const ctx = validateTemplateContext({ - caddy_root: this.caddyRoot, - proxies, - }) - - this.caddyfile = await genCaddyfile(ctx) - await this.writeCaddyfile() - } + const ctx = validateTemplateContext({ + caddy_root: this.caddyRoot, + proxies, + }) + + this.caddyfile = await genCaddyfile(ctx) + await this.writeCaddyfile() }), ) diff --git a/src/index.ts b/src/index.ts index 8afb542..028a0a7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -160,6 +160,16 @@ export const unpluginFactory: UnpluginFactory = options => ({ if (caddy) return + let base = '/' + const publicPath = compiler.options.output?.publicPath as unknown + if (typeof publicPath === 'string' && publicPath) { + base = publicPath + } + if (!base.startsWith('/')) + base = `/${base}` + if (base !== '/' && !base.endsWith('/')) + base = `${base}/` + // https://github.com/webpack/webpack-dev-server/blob/master/lib/Server.js#L1913 const _close = compiler.close?.bind(compiler) if (_close) { @@ -177,12 +187,13 @@ export const unpluginFactory: UnpluginFactory = options => ({ caddy = new CaddyInstant() caddy.run(source, target, { + base, ...options, }).then(() => { compiler.hooks.done.tap('unplugin-https-reverse-proxy', async () => { await printForwardProxy() - consola.success(` ${c.green('➜')} ${c.bold('run caddy reverse proxy success')}: ${colorUrl(`${options.https ? 'https' : 'http'}://${target}`)}`) + consola.success(` ${c.green('➜')} ${c.bold('run caddy reverse proxy success')}: ${colorUrl(`${options.https ? 'https' : 'http'}://${target}${base}`)}`) }) }).catch((e) => { throw e @@ -231,12 +242,23 @@ export const unpluginFactory: UnpluginFactory = options => ({ caddy = new CaddyInstant() + let base = '/' + const publicPath = compiler.options.output?.publicPath as unknown + if (typeof publicPath === 'string' && publicPath) { + base = publicPath + } + if (!base.startsWith('/')) + base = `/${base}` + if (base !== '/' && !base.endsWith('/')) + base = `${base}/` + caddy.run(source, target, { + base, ...options, }).then(async () => { await printForwardProxy() - consola.success(` ${c.green('➜')} ${c.bold('run caddy reverse proxy success')}: ${colorUrl(`${options.https ? 'https' : 'http'}://${target}`)}`) + consola.success(` ${c.green('➜')} ${c.bold('run caddy reverse proxy success')}: ${colorUrl(`${options.https ? 'https' : 'http'}://${target}${base}`)}`) }).catch((e) => { throw e }) diff --git a/test/caddy-config.test.ts b/test/caddy-config.test.ts new file mode 100644 index 0000000..90a42c5 --- /dev/null +++ b/test/caddy-config.test.ts @@ -0,0 +1,40 @@ +import { afterEach, describe, expect, it } from 'vitest' +import { useCaddyConfig } from '../src/caddy/config' + +describe('caddy config write with base path', () => { + afterEach(async () => { + const { cleanUp } = useCaddyConfig() + await cleanUp() + }) + + it('should not override when same host with different base', () => { + const { writeCaddyConfig, configJsonRef } = useCaddyConfig() + + writeCaddyConfig([ + { + target: 'example.com', + portSuffix: ':80', + tls: '', + source: 'localhost:5173', + base: '/app', + healthCheck: true, + }, + { + target: 'example.com', + portSuffix: ':80', + tls: '', + source: 'localhost:5174', + base: '/api', + healthCheck: true, + }, + ]) + + const cfg = configJsonRef() + expect(cfg).toBeTruthy() + const keys = Object.keys(cfg!) + expect(keys).toContain('example.com:80/app/') + expect(keys).toContain('example.com:80/api/') + expect(cfg!['example.com:80/app/'].source).toEqual('localhost:5173') + expect(cfg!['example.com:80/api/'].source).toEqual('localhost:5174') + }) +}) diff --git a/test/caddy/index.test.ts b/test/caddy/index.test.ts index 218a3eb..54ed0ae 100644 --- a/test/caddy/index.test.ts +++ b/test/caddy/index.test.ts @@ -69,22 +69,31 @@ describe('caddy', () => { test-1.abc.com:80 { - reverse_proxy http://127.0.0.1:8080 { - health_uri / - health_interval 2s - health_timeout 5s - fail_duration 2s - unhealthy_status 502 503 504 404 - lb_try_duration 3s - lb_try_interval 300ms - - @error status 502 503 504 404 - handle_response @error { - respond * 503 { - body "Service Unavailable" - close + + + handle /* { + reverse_proxy http://127.0.0.1:8080 { + health_uri / + health_interval 2s + health_timeout 5s + health_headers { + User-Agent {http.request.header.User-Agent} + Accept text/html,application/json,*/* + } + fail_duration 2s + unhealthy_status 502 503 504 404 + lb_try_duration 3s + lb_try_interval 300ms + + @error status 502 503 504 404 + handle_response @error { + respond * 503 { + body "Service Unavailable" + close + } } } + } } @@ -132,22 +141,31 @@ describe('caddy', () => { test-2.abc.com { tls internal - reverse_proxy http://127.0.0.1:8080 { - health_uri / - health_interval 2s - health_timeout 5s - fail_duration 2s - unhealthy_status 502 503 504 404 - lb_try_duration 3s - lb_try_interval 300ms - - @error status 502 503 504 404 - handle_response @error { - respond * 503 { - body "Service Unavailable" - close + + + handle /* { + reverse_proxy http://127.0.0.1:8080 { + health_uri / + health_interval 2s + health_timeout 5s + health_headers { + User-Agent {http.request.header.User-Agent} + Accept text/html,application/json,*/* + } + fail_duration 2s + unhealthy_status 502 503 504 404 + lb_try_duration 3s + lb_try_interval 300ms + + @error status 502 503 504 404 + handle_response @error { + respond * 503 { + body "Service Unavailable" + close + } } } + } } @@ -192,22 +210,31 @@ describe('caddy', () => { test-3.abc.com:80 { - reverse_proxy http://127.0.0.1:8080 { - health_uri / - health_interval 2s - health_timeout 5s - fail_duration 2s - unhealthy_status 502 503 504 404 - lb_try_duration 3s - lb_try_interval 300ms - - @error status 502 503 504 404 - handle_response @error { - respond * 503 { - body "Service Unavailable" - close + + + handle /* { + reverse_proxy http://127.0.0.1:8080 { + health_uri / + health_interval 2s + health_timeout 5s + health_headers { + User-Agent {http.request.header.User-Agent} + Accept text/html,application/json,*/* + } + fail_duration 2s + unhealthy_status 502 503 504 404 + lb_try_duration 3s + lb_try_interval 300ms + + @error status 502 503 504 404 + handle_response @error { + respond * 503 { + body "Service Unavailable" + close + } } } + } } @@ -253,29 +280,43 @@ describe('caddy', () => { test-3.abc.com:80 { - reverse_proxy http://127.0.0.1:8080 { - health_uri / - health_interval 2s - health_timeout 5s - fail_duration 2s - unhealthy_status 502 503 504 404 - lb_try_duration 3s - lb_try_interval 300ms - - @error status 502 503 504 404 - handle_response @error { - respond * 503 { - body "Service Unavailable" - close + + + handle /* { + reverse_proxy http://127.0.0.1:8080 { + health_uri / + health_interval 2s + health_timeout 5s + health_headers { + User-Agent {http.request.header.User-Agent} + Accept text/html,application/json,*/* + } + fail_duration 2s + unhealthy_status 502 503 504 404 + lb_try_duration 3s + lb_try_interval 300ms + + @error status 502 503 504 404 + handle_response @error { + respond * 503 { + body "Service Unavailable" + close + } } } + } } test-4.abc.com { tls internal - reverse_proxy http://127.0.0.1:8080 + + + handle /* { + reverse_proxy http://127.0.0.1:8080 + } + } " @@ -323,22 +364,31 @@ describe('caddy', () => { test-2.abc.com { tls internal - reverse_proxy http://127.0.0.1:8080 { - health_uri /test/ - health_interval 2s - health_timeout 5s - fail_duration 2s - unhealthy_status 502 503 504 404 - lb_try_duration 3s - lb_try_interval 300ms - - @error status 502 503 504 404 - handle_response @error { - respond * 503 { - body "Service Unavailable" - close + + + handle /test/* { + reverse_proxy http://127.0.0.1:8080 { + health_uri /test/ + health_interval 2s + health_timeout 5s + health_headers { + User-Agent {http.request.header.User-Agent} + Accept text/html,application/json,*/* + } + fail_duration 2s + unhealthy_status 502 503 504 404 + lb_try_duration 3s + lb_try_interval 300ms + + @error status 502 503 504 404 + handle_response @error { + respond * 503 { + body "Service Unavailable" + close + } } } + } } @@ -348,6 +398,34 @@ describe('caddy', () => { await caddy.baseCleanup() }) + + it.sequential('same host different base no override', async () => { + const caddyA = new CaddyInstant() + expect(caddyA.checkLock()).toBe(false) + await caddyA.run('127.0.0.1:8081', 'test-5.abc.com', { + base: '/app', + }) + + expect(caddyA.checkLock()).toBe(true) + + const caddyB = new CaddyInstant() + expect(caddyB.checkLock()).toBe(true) + await caddyB.run('127.0.0.1:8082', 'test-5.abc.com', { + base: '/api', + }) + + await sleep(50) + const caddyfile = await caddyB.getCaddyfile() + + expect(caddyfile).toContain('test-5.abc.com:80 {') + expect(caddyfile).toContain('handle /app/*') + expect(caddyfile).toContain('reverse_proxy http://127.0.0.1:8081') + expect(caddyfile).toContain('handle /api/*') + expect(caddyfile).toContain('reverse_proxy http://127.0.0.1:8082') + + await caddyB.baseCleanup() + await caddyA.baseCleanup() + }) }) }, { timeout: 10000000, diff --git a/test/caddyfile.test.ts b/test/caddyfile.test.ts new file mode 100644 index 0000000..bc4ac29 --- /dev/null +++ b/test/caddyfile.test.ts @@ -0,0 +1,46 @@ +import { describe, expect, it } from 'vitest' +import { genCaddyfile, validateTemplateContext } from '../src/caddy/caddyfile' + +describe('caddyfile host grouping and route ordering', async () => { + it('should group same host and order routes by base length desc', async () => { + const ctx = validateTemplateContext({ + caddy_root: '/tmp', + proxies: [ + { + target: 'example.com', + portSuffix: ':80', + tls: '', + source: 'localhost:5173', + base: '/api', + healthCheck: true, + }, + { + target: 'example.com', + portSuffix: ':80', + tls: '', + source: 'localhost:5174', + base: '/api/v2', + healthCheck: true, + }, + { + target: 'another.com', + portSuffix: ':80', + tls: '', + source: 'localhost:5175', + base: '/web', + healthCheck: false, + }, + ], + }) + + const caddyfile = await genCaddyfile(ctx) + expect(caddyfile).toContain('example.com:80 {') + expect(caddyfile).toContain('another.com:80 {') + + const posApiV2 = caddyfile.indexOf('handle /api/v2/*') + const posApi = caddyfile.indexOf('handle /api/*') + expect(posApiV2).toBeGreaterThan(-1) + expect(posApi).toBeGreaterThan(-1) + expect(posApiV2).toBeLessThan(posApi) + }) +})