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.
We recommend using your browser's "Find in page" feature for quick lookups.
| Module ID | Description | |
|---|---|---|
| Standard | admin.api.load | is a module that provides the /load endpoint for the Caddy admin API. |
| Standard | 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 | is a module that serves PKI endpoints to retrieve information about the CAs being managed by Caddy. |
| Non-standard | 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 | is a module that provides the /purge endpoint as the admin api. |
| Standard | admin.api.reverse_proxy | is a module that provides the /reverse_proxy/upstreams endpoint for the Caddy admin API. |
| Non-standard | admin.api.trojan | is ... |
| Standard | caddy.config_loaders.http | can load Caddy configs over HTTP(S). |
| Non-standard | caddy.config_loaders.storage | is a dynamic configuration loader that reads the configuration from a Caddy storage. |
| Standard | caddy.filesystems | loads caddy.fs modules into the global filesystem map |
| Non-standard | caddy.fs.git | The git filesystem module uses a git repository as the virtual filesystem. |
| Non-standard | caddy.fs.s3 | is a Caddy virtual filesystem module for AWS S3 (and compatible) object store. |
| Standard | 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 | is a listener_wrapper whose address is an ngrok-ingress address |
| Non-standard | caddy.listeners.ngrok.tunnels.http | ngrok HTTP tunnel |
| Non-standard | caddy.listeners.ngrok.tunnels.labeled | ngrok Labeled Tunnel |
| Non-standard | caddy.listeners.ngrok.tunnels.tcp | ngrok TCP tunnel |
| Non-standard | caddy.listeners.ngrok.tunnels.tls | ngrok TLS tunnel Note: only available for ngrok Enterprise user |
| Standard | caddy.listeners.proxy_protocol (github.com/caddyserver/caddy) | provides PROXY protocol support to Caddy by implementing the caddy.ListenerWrapper interface. |
| Non-standard | caddy.listeners.proxy_protocol (github.com/mastercactapus/caddy2-proxyprotocol) | |
| Non-standard | 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 | 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 | 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 | is a no-op module, purely for testing |
| Standard | caddy.logging.encoders.append | can be used to add fields to all log entries that pass through it. |
| Standard | caddy.logging.encoders.console | encodes log entries that are mostly human-readable. |
| Non-standard | caddy.logging.encoders.elastic | |
| Standard | 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 | 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 | is a Caddy log field filter that filters cookies. |
| Standard | caddy.logging.encoders.filter.delete | is a Caddy log field filter that deletes the field. |
| Standard | 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 | 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 | is a Caddy log field filter that filters query parameters from a URL. |
| Standard | 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 | is a Caddy log field filter that renames the field's key with the indicated name. |
| Standard | 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 | 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 | 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 (github.com/caddyserver/format-encoder) | allows the user to provide custom template for log prints. |
| Non-standard | caddy.logging.encoders.formatted (github.com/caddyserver/transform-encoder) | |
| Standard | caddy.logging.encoders.json | encodes entries as JSON. |
| Standard | 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 | writes a log entry that consists entirely of a single string field in the log entry. |
| Non-standard | caddy.logging.encoders.transform | allows the user to provide custom template for log prints. |
| Standard | caddy.logging.writers.discard | discards all writes. |
| Standard | caddy.logging.writers.file | can write logs to files. |
| Non-standard | caddy.logging.writers.graphite | is a Caddy logger used to send server activity to a Graphite database. |
| Non-standard | caddy.logging.writers.influx_log | |
| Non-standard | caddy.logging.writers.influxlog | is a influxdb client to write time series data |
| Standard | caddy.logging.writers.net | implements a log writer that outputs to a network socket. |
| Standard | caddy.logging.writers.stderr | writes logs to standard error. |
| Standard | caddy.logging.writers.stdout | writes logs to standard out. |
| Standard | caddy.network_proxy.none | The "none" proxy source module disables the use of network proxy. |
| Standard | caddy.network_proxy.url | The "url" proxy source uses the defined URL as the proxy |
| Non-standard | caddy.storage.cloudflare_kv | implements a Caddy storage backend for Cloudflare KV |
| Non-standard | caddy.storage.consul (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 (github.com/pteich/caddy-tlsconsul) | holds all parameters for the Consul connection |
| Non-standard | caddy.storage.consul (github.com/sillygod/cdp-cache) | implements the certmagic storage's interface This holds the consul client and kv store |
| Non-standard | caddy.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 (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 | is the impelementation of certmagic.Storage interface for Caddy with encryption/decryption layer using SOPS. |
| Non-standard | caddy.storage.encrypted.key.age | is a key type to be used with encryption provider. |
| Non-standard | caddy.storage.encrypted.key.gcp_kms | uses GCPKMS (Google Cloud Platform KMS) for the encryption/decryption. |
| Non-standard | caddy.storage.encrypted.provider.local | encryption provider avails in-process encryption/decryption capabilities |
| Non-standard | caddy.storage.env_redis | |
| Standard | caddy.storage.file_system | is a certmagic.Storage wrapper for certmagic.FileStorage. |
| Non-standard | caddy.storage.gcs | implements a caddy storage backend for Google Cloud Storage. |
| Non-standard | caddy.storage.mysql | |
| Non-standard | caddy.storage.nats | |
| Non-standard | caddy.storage.postgres | |
| Non-standard | caddy.storage.redis (github.com/gamalan/caddy-tlsredis) | contain Redis client, and plugin option |
| Non-standard | 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 (github.com/techio-dev/caddy-redis) | |
| Non-standard | caddy.storage.s3 (github.com/ss098/certmagic-s3) | |
| Non-standard | caddy.storage.s3 (github.com/techknowlogick/certmagic-s3) | |
| Non-standard | caddy.storage.vault | A highly available storage module that integrates with HashiCorp Vault. |
| Non-standard | crowdsec | is a Caddy App that functions as a CrowdSec bouncer. |
| Non-standard | distributed.consul | handles the client to interact with the consul agent |
| Non-standard | dns.providers.acmedns | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.acmeproxy | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.alidns | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.azure | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.bunny | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.civo | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.cloudflare | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.cloudns (github.com/anxuanzi/caddy-dns-ClouDNS) | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.cloudns (github.com/caddy-dns/cloudns) | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.ddnss | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.desec | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.digitalocean | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.dinahosting | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.directadmin | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.dnsexit | lets Caddy read and manipulate DNS records hosted by DNSExit. |
| Non-standard | dns.providers.dnsimple | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.dnsmadeeasy | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.dnspod | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.domainnameshop | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.dreamhost | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.duckdns | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.dynu | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.easydns | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.edgeone | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.gandi | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.glesys | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.godaddy (github.com/caddy-dns/godaddy) | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.godaddy (github.com/xcaddyplugins/caddy-dns-godaddy) | implements the libdns interfaces for GoDaddy DNS |
| Non-standard | dns.providers.google_domains | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.googleclouddns | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.he | lets Caddy read and manipulate DNS records hosted by Hurricane Electric. |
| Non-standard | dns.providers.hetzner | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.hexonet | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.hosttech | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.huaweicloud | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.immosquare | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.infomaniak | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.inwx | lets Caddy read and manipulate DNS records hosted by INWX. |
| Non-standard | dns.providers.ionos | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.katapult | lets Caddy read and manipulate DNS records hosted by Katapult. |
| Non-standard | dns.providers.leaseweb | wraps the provider implementation as a Caddy module. |
| Non-standard | 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 (github.com/caddy-dns/linode) | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.linode (github.com/tosie/caddy-dns-linode) | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.loopia | |
| Non-standard | dns.providers.mailinabox | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.metaname | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.namecheap | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.namedotcom | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.namesilo | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.nanelo | lets Caddy read and manipulate DNS records hosted by Nanelo DNS. |
| Non-standard | dns.providers.neoserv | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.netcup | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.netlify | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.njalla | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.openstack-designate | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.ovh | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.porkbun | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.powerdns | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.rfc2136 | |
| Non-standard | dns.providers.route53 (github.com/caddy-dns/route53) | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.route53 (github.com/ryantiger658/route53) | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.scaleway | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.selectel | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.spaceship | lets Caddy read and manipulate DNS records hosted by the Spaceship DNS provider. |
| Non-standard | dns.providers.tencentcloud | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.transip | lets Caddy read and manipulate DNS records hosted by this DNS provider. |
| Non-standard | dns.providers.vercel | wraps the provider implementation as a Caddy module. |
| Non-standard | dns.providers.vultr | wraps the provider implementation as a Caddy module. |
| Non-standard | dns01proxy | A proxy server for ACME DNS-01 challenges. |
| Non-standard | 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 | 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 | 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 | gets the IP address from UPnP device. |
| Standard | events | implements a global eventing system within Caddy. |
| Non-standard | events.handlers.exec | implements an event handler that runs a command/program. |
| Non-standard | events.handlers.nats | |
| Non-standard | events.handlers.store_cert | implements an event handler that stores the cert to a bucket. |
| Non-standard | exec | is top level module that runs shell commands. |
| Non-standard | frankenphp | |
| Non-standard | geoip2 | is global caddy app with http.handlers.geoip2 it update geoip2 data automatically by the params |
| Standard | http | is a robust, production-ready HTTP server. |
| Standard | http.authentication.hashes.bcrypt | implements the bcrypt hash. |
| Standard | http.authentication.hashes.scrypt | implements the scrypt KDF as a hash. |
| Non-standard | http.authentication.providers.authorize | authorizes access to endpoints based on the presense and content of JWT token. |
| Non-standard | http.authentication.providers.authorizer | authorizes access to endpoints based on the presense and content of JWT token. |
| Non-standard | http.authentication.providers.discord | allows you to authenticate caddy routes from a Discord User Identity. |
| Non-standard | http.authentication.providers.forms | authorizes access to endpoints based on the credentials provided in a request. |
| Standard | http.authentication.providers.http_basic | facilitates HTTP basic authentication. |
| Non-standard | http.authentication.providers.jwt (github.com/ggicci/caddy-jwt) | facilitates JWT (JSON Web Token) authentication. |
| Non-standard | http.authentication.providers.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 | implements PASETO authentication. |
| Non-standard | 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 (github.com/dunglas/caddy-cbrotli) | can create Brotli encoders. |
| Non-standard | http.encoders.br (github.com/ueffel/caddy-brotli) | can create brotli encoders. |
| Standard | http.encoders.gzip | can create gzip encoders. |
| Standard | http.encoders.zstd | can create Zstandard encoders. |
| Standard | http.handlers.acme_server | is an ACME server handler. |
| Non-standard | 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 (github.com/teodorescuserban/caddy-argsort) | sort the query arguments after optionally lowercasing them. |
| Non-standard | http.handlers.argsort (github.com/teodorescuserban/caddy-argsort) | implements an HTTP handler that reorders the query arguments. |
| Non-standard | http.handlers.authelia | implements a plugin for securing routes with authentication |
| Standard | http.handlers.authentication | is a middleware which provides user authentication. |
| Non-standard | http.handlers.authenticator | implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0, SAML Authentication. |
| Non-standard | http.handlers.authp | implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0, SAML Authentication. |
| Non-standard | http.handlers.authz | |
| Non-standard | 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 | 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 | is a Caddy middleware module that requires clients to solve a computational challenge before granting access to HTTP resources. |
| Non-standard | http.handlers.cache (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 (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 (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 (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 | |
| Non-standard | http.handlers.cgi | |
| Non-standard | http.handlers.cookiecrypt | |
| Non-standard | http.handlers.cookieflag | manipulate various flags (Secure, HttpOnly, ...) in the Set-Cookie reponse headers. |
| Standard | 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 | 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 | matches request IPs to CrowdSec decisions to (dis)allow access |
| Non-standard | 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 (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 (github.com/jasonlovesdoggo/caddy-defender) | implements an HTTP middleware that enforces IP-based rules. |
| Non-standard | 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 | Implements an API for proxying ACME DNS-01 challenges. |
| Non-standard | http.handlers.dnsfetcher | |
| Standard | http.handlers.encode | is a middleware which can encode responses. |
| Standard | http.handlers.error | implements a simple handler that returns an error. |
| Non-standard | http.handlers.esi | to handle, process and serve ESI tags. |
| Non-standard | http.handlers.exec | implements an HTTP handler that runs shell command. |
| Non-standard | http.handlers.extra_placeholders | provides additional placeholders that can be used within Caddy configurations: Placeholder |
| Standard | http.handlers.file_server | implements a handler that serves static files. |
| Non-standard | http.handlers.filter | implements an HTTP handler that writes the visitor's IP address to a file or stream. |
| Non-standard | http.handlers.floaty | |
| Non-standard | http.handlers.forward_auth | |
| Non-standard | http.handlers.gbox | implements an HTTP handler as a GraphQL reverse proxy server for caching, securing, and monitoring. |
| Non-standard | http.handlers.geofence | implements IP geofencing functionality. |
| Non-standard | http.handlers.geoip | Allows looking up the Country Code of an IP address based on the Maxmind database |
| Non-standard | http.handlers.geoip2 | is an GeoIP2 server handler. |
| Non-standard | http.handlers.git | implements git repository manager. |
| Non-standard | http.handlers.gopkg (github.com/MagnaXSoftware/gopkg) | implements vanity go package import paths. |
| Non-standard | http.handlers.gopkg (github.com/MagnaXSoftware/gopkg) | represents the GoPkg Caddy module. |
| Non-standard | http.handlers.grpc_web | is an HTTP handler that bridges gRPC-Web <--> gRPC requests. |
| Non-standard | http.handlers.guard | is an elegant IPQS plugin for Caddy. |
| Standard | http.handlers.headers | is a middleware which modifies request and response headers. |
| Non-standard | http.handlers.hmac | implements an HTTP handler that validates request body with hmac. |
| Non-standard | http.handlers.http_cache | is a http handler as a middleware to cache the response |
| Non-standard | http.handlers.i18n | |
| Non-standard | http.handlers.image_filter (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 (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 | produces a cropped image as rectangular region of a specific size. |
| Non-standard | 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 | s flips (mirrors) a image vertically or horizontally. |
| Non-standard | http.handlers.image_filter.filter.resize | can downsize images. |
| Non-standard | http.handlers.image_filter.filter.rotate | rotates a image 90, 180 or 270 degrees counter-clockwise. |
| Non-standard | http.handlers.image_filter.filter.sharpen | produces a sharpened version of the image. |
| Non-standard | 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 | |
| Non-standard | http.handlers.inspect | implements an HTTP handler that writes the inspects the current request. |
| Standard | http.handlers.intercept | is a middleware that intercepts then replaces or modifies the original response. |
| Standard | 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 | |
| Non-standard | http.handlers.ipmap | implements a middleware that maps IP / Subnets as inputs to outputs. |
| Non-standard | http.handlers.jailbait | |
| Non-standard | http.handlers.json_parse | implements an HTTP handler that parses json body as placeholders. |
| Non-standard | 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 | is a Caddy HTTP handler that processes Kubernetes admission webhook requests. |
| Non-standard | http.handlers.lambda | is a middleware which triggers execution of a function when it is invoked. |
| Non-standard | http.handlers.ldap_basic_auth | |
| Non-standard | 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 | 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 | implements a high-performance API Gateway using the Lura framework (https://luraproject.org/). |
| Standard | http.handlers.map | implements a middleware that maps inputs to outputs. |
| Non-standard | http.handlers.mercure | implements a Mercure hub as a Caddy module. |
| Standard | 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 | |
| Non-standard | http.handlers.mirror | runs multiple handlers and aggregates their results |
| Non-standard | http.handlers.myplugin | |
| Non-standard | http.handlers.nobots | is a Caddy Server plugin to protect your website against web crawlers and bots. |
| Non-standard | http.handlers.oauth2_token_introspection | is a Caddy http.handlers Module for authorizing requests via OAuth2 Token Introspection |
| Non-standard | 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 | |
| Non-standard | http.handlers.openapi | |
| Non-standard | http.handlers.openapi_validator | is used to validate OpenAPI requests and responses against an OpenAPI specification |
| Non-standard | http.handlers.php | |
| Non-standard | http.handlers.pirsch | |
| Non-standard | http.handlers.pixbooster | |
| Non-standard | 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 | |
| Non-standard | 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 | implements an HTTP handler that proxies requests internally to a PocketBase server. |
| Non-standard | 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 | - |
| Non-standard | http.handlers.public_suffix | adds placeholders that return values based on the Public Suffix List, or PSL (https://publicsuffix.org). |
| Standard | http.handlers.push | is a middleware for HTTP/2 server push. |
| Non-standard | 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 (github.com/RussellLuo/caddy-ext) | implements a handler for rate-limiting. |
| Non-standard | http.handlers.rate_limit (github.com/mholt/caddy-ratelimit) | implements rate limiting functionality. |
| Non-standard | http.handlers.realip | |
| Non-standard | http.handlers.redir_dns | is a RedirDns for manipulating redirecting based on DNS TXT record. |
| Non-standard | http.handlers.replace_response | manipulates response bodies by performing substring or regex replacements. |
| Standard | http.handlers.request_body | is a middleware for manipulating the request body. |
| Non-standard | 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 | is a middleware which displays the content of the request it handles. |
| Non-standard | http.handlers.request_id | implements an HTTP handler that writes a unique request ID to response headers. |
| Standard | http.handlers.reverse_proxy | implements a highly configurable and production-ready reverse proxy. |
| Standard | http.handlers.rewrite | is a middleware which can rewrite/mutate HTTP requests. |
| Non-standard | http.handlers.s3proxy | implements a proxy to return, set, delete or browse objects from S3 |
| Non-standard | http.handlers.sablier (github.com/acouvreur/sablier) | |
| Non-standard | http.handlers.sablier (github.com/sablierapp/sablier) | |
| Non-standard | http.handlers.save | |
| Non-standard | http.handlers.scion | |
| Standard | http.handlers.static_response | implements a simple responder for static responses. |
| Standard | http.handlers.subroute | implements a handler that compiles and executes routes. |
| Non-standard | http.handlers.teapot | implements a static "418 I'm a teapot" response to all requests on the route |
| Standard | http.handlers.templates | is a middleware which executes response bodies as Go templates. |
| Non-standard | http.handlers.templates.functions.hitCounter | implements a simple early-Web hit counter. |
| Non-standard | http.handlers.trace | is a middleware which displays the content of the request it handles. |
| Standard | http.handlers.tracing | implements an HTTP handler that adds support for distributed tracing, using OpenTelemetry. |
| Non-standard | http.handlers.trapdoor | |
| Non-standard | http.handlers.trojan | implements an HTTP handler that ... |
| Non-standard | http.handlers.umami | A Caddy module which sends visitor information to Umami's Events REST API endpoint. |
| Non-standard | 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 | |
| Standard | 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 | add suport for the Vulcain protocol (fast and idiomatic client-driven REST APIs) as a Caddy module. |
| Non-standard | http.handlers.waf (github.com/BraveRoy/caddy-waf) | |
| Non-standard | http.handlers.waf (github.com/corazawaf/coraza-caddy) | |
| Non-standard | http.handlers.waf (github.com/corazawaf/coraza-caddy) | is a Web Application Firewall implementation for Caddy. |
| Non-standard | http.handlers.waf_chaitin | implements an HTTP handler for WAF. |
| Non-standard | http.handlers.wafris | Wafris, a free, open source WAF (web application firewall) |
| Non-standard | http.handlers.wake_on_lan | wakes up a target host on HTTP requests using wake-on-lan. |
| Non-standard | http.handlers.webdav | implements an HTTP handler for responding to WebDAV clients. |
| Non-standard | http.handlers.webhook | is the module configuration. |
| Non-standard | http.handlers.x_clacks_overhead | |
| Non-standard | http.handlers.xtemplate (github.com/infogulch/xtemplate-caddy) | |
| Non-standard | http.handlers.xtemplate (github.com/infogulch/xtemplate) | |
| Non-standard | http.handlers.xtemplates (github.com/infogulch/caddy-xtemplate) | |
| Non-standard | http.handlers.xtemplates (github.com/infogulch/caddy-xtemplates) | |
| Non-standard | 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 | provides a range of IP address prefixes (CIDRs) retrieved from cloudflare. |
| Non-standard | http.ip_sources.cloudfront | The module that auto trusted_proxies AWS CloudFront EDGE servers from CloudFront. |
| Non-standard | http.ip_sources.combine | This module combines the prefixes returned by several other IP source plugins. |
| Non-standard | http.ip_sources.dns | provides a range of IP addresses associated with a DNS name. |
| Non-standard | http.ip_sources.edgeone | provides a range of IP address prefixes (CIDRs) retrieved from EdgeOne. |
| Non-standard | 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 | provides a range of IP address prefixes (CIDRs) retrieved from url. |
| Standard | http.ip_sources.static | provides a static range of IP address prefixes (CIDRs). |
| Non-standard | http.matchers.client_asn | matches requests by the client_ip GeoIP ASN. |
| Non-standard | http.matchers.client_country | matches requests by the client_ip GeoIP Country. |
| Standard | http.matchers.client_ip | matches requests by the client IP address, i.e. |
| Non-standard | http.matchers.conneg | matches requests by comparing results of a content negotiation process to a (list of) value(s). |
| Non-standard | http.matchers.crawler | is a HTTP request matcher to detect crawlers. |
| Non-standard | http.matchers.cron | matches requests based on multiple sets of cron expressions. |
| Non-standard | http.matchers.dynamic_client_ip | matchers the requests by the client IP address. |
| Non-standard | http.matchers.dynamic_remote_ip | matchers the requests by the remote IP address. |
| Non-standard | http.matchers.exec_noop | is a matcher that blocks all requests. |
| Non-standard | http.matchers.execnopmatch | is a matcher that blocks all request. |
| Standard | http.matchers.expression | matches requests by evaluating a CEL expression. |
| Non-standard | http.matchers.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 (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 | is an HTTP request matcher that can match requests based upon file existence. |
| Non-standard | http.matchers.geocity | |
| Non-standard | http.matchers.geocn | |
| Non-standard | http.matchers.geoip_asn | matches requests by the client_ip GeoIP ASN. |
| Non-standard | http.matchers.geoip_country | matches requests by the client_ip GeoIP Country. |
| Standard | http.matchers.header | matches requests by header fields. |
| Standard | http.matchers.header_regexp | matches requests by a regular expression on header fields. |
| Standard | http.matchers.host | matches requests by the Host value (case-insensitive). |
| Non-standard | http.matchers.maxmind_geolocation | Allows to filter requests based on source IP country. |
| Standard | http.matchers.method | matches requests by the method. |
| Standard | http.matchers.not | matches requests by negating the results of its matcher sets. |
| Standard | http.matchers.path | case-insensitively matches requests by the URI's path. |
| Standard | http.matchers.path_regexp | matches requests by a regular expression on the URI's path. |
| Standard | http.matchers.protocol | matches requests by protocol. |
| Standard | http.matchers.query | matches requests by the URI's query string. |
| Non-standard | http.matchers.remote_host | matches based on the remote IP of the connection. |
| Standard | http.matchers.remote_ip | matches requests by the remote IP address, i.e. |
| Non-standard | http.matchers.signed | |
| Standard | http.matchers.tls | matches HTTP requests based on the underlying TLS connection state. |
| Standard | 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 | matches the value of the context variables by a given regular expression. |
| Standard | http.precompressed.br | provides the file extension for files precompressed with brotli encoding. |
| Standard | http.precompressed.gzip | provides the file extension for files precompressed with gzip encoding. |
| Standard | http.precompressed.zstd | provides the file extension for files precompressed with zstandard encoding. |
| Standard | 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 | is a policy that selects a host based on a given cookie name. |
| Standard | http.reverse_proxy.selection_policies.first | is a policy that selects the first available host. |
| Standard | 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 | is a policy that selects a host based on hashing the remote IP of the request. |
| Standard | 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 | is a policy that selects a host based on a given request query parameter. |
| Standard | http.reverse_proxy.selection_policies.random | is a policy that selects an available host at random. |
| Standard | 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 | is a policy that selects a host based on round-robin ordering. |
| Standard | 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 | is a policy that selects a host based on weighted round-robin ordering. |
| Non-standard | 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 | facilitates FastCGI communication. |
| Standard | http.reverse_proxy.transport.http | is essentially a configuration wrapper for http.Transport. |
| Non-standard | http.reverse_proxy.transport.http_ntlm | proxies HTTP with NTLM authentication. |
| Non-standard | http.reverse_proxy.transport.scgi | facilitates SCGI communication. |
| Non-standard | http.reverse_proxy.transport.uwsgi (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 (github.com/wxh06/caddy-uwsgi-transport) | |
| Non-standard | http.reverse_proxy.transport.ziti | |
| Standard | http.reverse_proxy.upstreams.a | provides upstreams from A/AAAA lookups. |
| Non-standard | http.reverse_proxy.upstreams.docker | provides upstreams from the docker host. |
| Non-standard | http.reverse_proxy.upstreams.etcd | is a Caddy module that integrates etcd with reverse_proxy. |
| Standard | 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 | provides upstreams from SRV lookups. |
| Non-standard | k8s.admission.always_allow | is a simple admission webhook controller that always allows requests. |
| Non-standard | k8s.admission.always_deny | is a simple admission webhook controller that always rejects requests. |
| Non-standard | k8s.admission.annotation_injector | is an admission webhook [Handler] that injects annotations into Kubernetes resources. |
| Non-standard | k8s.admission.json_patch | is an admission webhook controller that applies custom JSON patches to resources. |
| Non-standard | k8s.admission.validation_policy | is an admission webhook controller that validates resources using CEL expressions. |
| Non-standard | layer4 | is a Caddy app that operates closest to layer 4 of the OSI model. |
| Non-standard | layer4.handlers.echo | is a simple handler that writes what it reads. |
| Non-standard | layer4.handlers.proxy | is a handler that can proxy connections. |
| Non-standard | layer4.handlers.proxy_protocol | is a connection handler that accepts the PROXY protocol. |
| Non-standard | 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 | throttles connections using leaky bucket rate limiting. |
| Non-standard | layer4.handlers.tls | is a connection handler that terminates TLS. |
| Non-standard | layer4.matchers.crowdsec | matches IPs to CrowdSec decisions to (dis)allow access |
| Non-standard | layer4.matchers.http | is able to match HTTP connections. |
| Non-standard | layer4.matchers.ip | matches requests by remote IP (or CIDR range). |
| Non-standard | layer4.matchers.proxy_protocol | |
| Non-standard | layer4.matchers.ssh | is able to match SSH connections. |
| Non-standard | layer4.matchers.tls | is able to match TLS connections. |
| Non-standard | layer4.matchers.xmpp | is able to match XMPP connections. |
| Non-standard | layer4.proxy.selection_policies.first | is a policy that selects the first available host. |
| Non-standard | 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 | is a policy that selects the upstream with the least active connections. |
| Non-standard | layer4.proxy.selection_policies.random | is a policy that selects an available host at random. |
| Non-standard | 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 | is a policy that selects a host based on round-robin ordering. |
| Standard | pki | provides Public Key Infrastructure facilities for Caddy. |
| Non-standard | pocketbase | is a Caddy module that provides an embedded PocketBase server. |
| Non-standard | profefe | The profefe app collects profiling data during the life-time of the process and uploads them to the profefe server. |
| Non-standard | 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 | is the container of the profefe profiler if configured as a guest module of the profiling app |
| Non-standard | profiling.profiler.pyroscope | is the container of the pyroscope profiler if configured as a guest module of the profiling app |
| Non-standard | pyroscope | The pyroscope app collects profiling data during the life-time of the process and uploads them to the Pyroscope server. |
| Non-standard | 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 | implements a caddy module. |
| Non-standard | security | implements security manager. |
| Non-standard | ssh (github.com/kadeessh/kadeessh) | is the app providing ssh services |
| Non-standard | ssh (github.com/mohammed90/caddy-ssh) | is the app providing ssh services |
| Non-standard | ssh.actor_matchers.critical_option (github.com/kadeessh/kadeessh) | matches request by the value of critical-option of the certificate/user |
| Non-standard | ssh.actor_matchers.critical_option (github.com/mohammed90/caddy-ssh) | matches request by the value of critical-option of the certificate/user |
| Non-standard | ssh.actor_matchers.extension (github.com/kadeessh/kadeessh) | matches request by SSH protocol extension |
| Non-standard | ssh.actor_matchers.extension (github.com/mohammed90/caddy-ssh) | matches request by SSH protocol extension |
| Non-standard | ssh.actor_matchers.group (github.com/kadeessh/kadeessh) | matches requests by user's group |
| Non-standard | ssh.actor_matchers.group (github.com/mohammed90/caddy-ssh) | matches requests by user's group |
| Non-standard | ssh.actor_matchers.not (github.com/kadeessh/kadeessh) | matches requests by negating the results of its matcher sets. |
| Non-standard | ssh.actor_matchers.not (github.com/mohammed90/caddy-ssh) | matches requests by negating the results of its matcher sets. |
| Non-standard | ssh.actor_matchers.remote_ip (github.com/kadeessh/kadeessh) | matches requests by client IP (or CIDR range). |
| Non-standard | ssh.actor_matchers.remote_ip (github.com/mohammed90/caddy-ssh) | matches requests by client IP (or CIDR range). |
| Non-standard | ssh.actor_matchers.user (github.com/kadeessh/kadeessh) | matches requests by username |
| Non-standard | ssh.actor_matchers.user (github.com/mohammed90/caddy-ssh) | matches requests by username |
| Non-standard | ssh.actors.shell (github.com/kadeessh/kadeessh) | is an ssh.actors module providing "shell" to a session. |
| Non-standard | ssh.actors.shell (github.com/mohammed90/caddy-ssh) | is an ssh.actors module providing "shell" to a session. |
| Non-standard | ssh.actors.static_response (github.com/kadeessh/kadeessh) | is an actor that writes a static value to the client |
| Non-standard | ssh.actors.static_response (github.com/mohammed90/caddy-ssh) | is an actor that writes a static value to the client |
| Non-standard | ssh.ask.localforward.allow (github.com/kadeessh/kadeessh) | is PortForwardingAsker module which always allows the session |
| Non-standard | ssh.ask.localforward.allow (github.com/mohammed90/caddy-ssh) | is PortForwardingAsker module which always allows the session |
| Non-standard | ssh.ask.localforward.deny (github.com/kadeessh/kadeessh) | Allow is PortForwardingAsker module which always rejects the session |
| Non-standard | ssh.ask.localforward.deny (github.com/mohammed90/caddy-ssh) | Allow is PortForwardingAsker module which always rejects the session |
| Non-standard | ssh.ask.pty.allow (github.com/kadeessh/kadeessh) | is PtyAsker module which always allows the PTY session |
| Non-standard | ssh.ask.pty.allow (github.com/mohammed90/caddy-ssh) | is PtyAsker module which always allows the PTY session |
| Non-standard | ssh.ask.pty.deny (github.com/kadeessh/kadeessh) | Allow is PtyAsker module which always rejects the PTY session |
| Non-standard | ssh.ask.pty.deny (github.com/mohammed90/caddy-ssh) | Allow is PtyAsker module which always rejects the PTY session |
| Non-standard | ssh.ask.reverseforward.allow (github.com/kadeessh/kadeessh) | |
| Non-standard | ssh.ask.reverseforward.allow (github.com/mohammed90/caddy-ssh) | |
| Non-standard | ssh.ask.reverseforward.deny (github.com/kadeessh/kadeessh) | |
| Non-standard | ssh.ask.reverseforward.deny (github.com/mohammed90/caddy-ssh) | |
| Non-standard | ssh.authentication.flows.interactive (github.com/kadeessh/kadeessh) | holds the interactive authentication providers |
| Non-standard | ssh.authentication.flows.interactive (github.com/mohammed90/caddy-ssh) | holds the interactive authentication providers |
| Non-standard | ssh.authentication.flows.password_auth (github.com/kadeessh/kadeessh) | // PasswordAuthFlow holds the password-based authentication providers |
| Non-standard | ssh.authentication.flows.password_auth (github.com/mohammed90/caddy-ssh) | // PasswordAuthFlow holds the password-based authentication providers |
| Non-standard | ssh.authentication.flows.public_key (github.com/kadeessh/kadeessh) | holds the public key authentication providers |
| Non-standard | ssh.authentication.flows.public_key (github.com/mohammed90/caddy-ssh) | holds the public key authentication providers |
| Non-standard | ssh.authentication.providers.password.static (github.com/kadeessh/kadeessh) | |
| Non-standard | ssh.authentication.providers.password.static (github.com/mohammed90/caddy-ssh) | |
| Non-standard | ssh.authentication.providers.public_key.os (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 (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 (github.com/kadeessh/kadeessh) | |
| Non-standard | ssh.authentication.providers.public_key.static (github.com/mohammed90/caddy-ssh) | |
| Non-standard | ssh.config.loaders.provided (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 (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 (github.com/kadeessh/kadeessh) | matches requests by local IP (or CIDR range). |
| Non-standard | ssh.config_matchers.local_ip (github.com/mohammed90/caddy-ssh) | matches requests by local IP (or CIDR range). |
| Non-standard | ssh.config_matchers.not (github.com/kadeessh/kadeessh) | matches requests by negating the results of its matcher sets. |
| Non-standard | ssh.config_matchers.not (github.com/mohammed90/caddy-ssh) | matches requests by negating the results of its matcher sets. |
| Non-standard | ssh.config_matchers.remote_ip (github.com/kadeessh/kadeessh) | matches requests by client IP (or CIDR range). |
| Non-standard | ssh.config_matchers.remote_ip (github.com/mohammed90/caddy-ssh) | matches requests by client IP (or CIDR range). |
| Non-standard | ssh.session.authorizers.chained (github.com/kadeessh/kadeessh) | is a multi-authorizer module that authorizes a session against multiple authorizers |
| Non-standard | ssh.session.authorizers.chained (github.com/mohammed90/caddy-ssh) | is a multi-authorizer module that authorizes a session against multiple authorizers |
| Non-standard | ssh.session.authorizers.max_session (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 (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 (github.com/kadeessh/kadeessh) | authorizes all sessions |
| Non-standard | ssh.session.authorizers.public (github.com/mohammed90/caddy-ssh) | authorizes all sessions |
| Non-standard | ssh.session.authorizers.reject (github.com/kadeessh/kadeessh) | rejects all sessions |
| Non-standard | ssh.session.authorizers.reject (github.com/mohammed90/caddy-ssh) | rejects all sessions |
| Non-standard | ssh.signers.fallback (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 (github.com/mohammed90/caddy-ssh) | will check if the signers exist in the storage, otherwise generate them. |
| Non-standard | ssh.signers.file (github.com/kadeessh/kadeessh) | is a session signer that uses pre-existing keys, which may be backed as files |
| Non-standard | ssh.signers.file (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 (github.com/kadeessh/kadeessh) | is an in-memory SFTP server allowing shared space between all users. |
| Non-standard | ssh.subsystem.inmem_sftp (github.com/mohammed90/caddy-ssh) | is an in-memory SFTP server allowing shared space between all users. |
| Non-standard | supervisor | |
| Standard | tls | provides TLS facilities including certificate loading and management, client auth, and more. |
| Standard | tls.ca_pool.source.file | generates trusted root certificates pool from the designated DER and PEM file |
| Standard | tls.ca_pool.source.http | The HTTPCertPool fetches the trusted root certificates from HTTP(S) endpoints. |
| Standard | 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 | 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 | extracts the trusted intermediate certificates from Caddy's native 'pki' app |
| Standard | tls.ca_pool.source.pki_root | extracts the trusted root certificates from Caddy's native 'pki' app |
| Standard | tls.ca_pool.source.storage | extracts the trusted certificates root from Caddy storage |
| Standard | tls.certificates.automate | will automatically manage certificates for the names in the list, including obtaining and renewing certificates. |
| Standard | tls.certificates.load_files | loads certificates and their associated keys from disk. |
| Standard | 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 | loads certificates and their associated keys by decoding their PEM blocks directly. |
| Standard | tls.certificates.load_storage | loads certificates and their associated keys from the globally configured storage module. |
| Non-standard | tls.client_auth.revocation | Allows checking of client certificate revocation status based on CRL or OCSP |
| Non-standard | tls.client_auth.verifier.ldap_validator | |
| Standard | tls.client_auth.verifier.leaf | verifies the client's leaf certificate. |
| Non-standard | tls.client_auth.verifier.san_dns | |
| Standard | tls.ech.publishers.dns | configures how to publish an ECH configuration to DNS records for the specified domains. |
| Non-standard | tls.get_certificate.file | can get a certificate via file. |
| Standard | tls.get_certificate.http | can get a certificate via HTTP(S) request. |
| Non-standard | tls.get_certificate.pfx | allow user to set path to .pfx file to load TLS certificate |
| Standard | tls.get_certificate.tailscale | is a module that can get certificates from the local Tailscale process. |
| Non-standard | tls.handshake_match.alpn | |
| Standard | tls.handshake_match.local_ip | matches based on the IP address of the interface receiving the connection. |
| Standard | tls.handshake_match.remote_ip | matches based on the remote IP of the connection. |
| Standard | tls.handshake_match.sni | matches based on SNI. |
| Standard | tls.handshake_match.sni_regexp | matches based on SNI using a regular expression. |
| Standard | tls.issuance.acme | manages certificates using the ACME protocol (RFC 8555). |
| Non-standard | tls.issuance.certsrv | can request certificates from a Microsoft Active Directory Certificate Services instance |
| Standard | 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 | uses the ZeroSSL API to get certificates. |
| Standard | tls.leaf_cert_loader.file | loads leaf certificates from disk. |
| Standard | 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 | loads leaf certificates by decoding their PEM blocks directly. |
| Standard | tls.leaf_cert_loader.storage | loads leaf certificates from the globally configured storage module. |
| Standard | tls.permission.http | determines permission for a TLS certificate by making a request to an HTTP endpoint. |
| Standard | tls.stek.distributed | implements a distributed STEK provider. |
| Standard | tls.stek.standard | |
| Non-standard | trojan.proxies.env_proxy | is ... |
| Non-standard | trojan.proxies.no_proxy | is ... |
| Non-standard | trojan.upstreams.caddy | is ... |
| Non-standard | trojan.upstreams.memory | is ... |