a project
⚠️ Due to multiple outstanding bugs in the go command, we are aware that some downloads may hang or fail. In the meantime, you can download Caddy from the latest release on GitHub, or use xcaddy for custom builds. (Remember, this download page comes with no guarantees or SLAs.) Sorry for the inconvenience.
Platform:
Standard features: ☑️
Extra features: 30
Download
⚠️ Only choose plugins you need and trust
📦
downloads: 63901 version:
github.com/
caddy-dns/cloudflare
🔌 dns.providers.cloudflare wraps the provider implementation as a Caddy module.
📦
downloads: 22452 version:
github.com/
caddy-dns/route53
🔌 dns.providers.route53 wraps the provider implementation as a Caddy module.
📦
downloads: 21491 version:
github.com/
mholt/caddy-webdav
🔌 http.handlers.webdav implements an HTTP handler for responding to WebDAV clients.
📦
downloads: 16014 version:
github.com/
caddyserver/replace-response
🔌 http.handlers.replace_response manipulates response bodies by performing substring or regex replacements.
📦
downloads: 14908 version:
github.com/
caddyserver/transform-encoder
🔌 caddy.logging.encoders.transform allows the user to provide custom template for log prints.
📦
downloads: 11043 version:
github.com/
caddy-dns/duckdns
🔌 dns.providers.duckdns wraps the provider implementation as a Caddy module.
📦
downloads: 9619 version:
github.com/
abiosoft/caddy-exec
🔌 exec is top level module that runs shell commands.
🔌 http.handlers.exec implements an HTTP handler that runs shell command.
🔌 http.matchers.exec_noop is a matcher that blocks all requests.
🔌 http.matchers.execnopmatch is a matcher that blocks all request.
📦
downloads: 8732 version:
github.com/
greenpau/caddy-trace
🔌 http.handlers.trace is a middleware which displays the content of the request it handles.
📦
downloads: 8341 version:
github.com/
greenpau/caddy-security
🔌 http.authentication.providers.authorizer authorizes access to endpoints based on the presense and content of JWT token.
🔌 http.handlers.authenticator implements Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0, SAML Authentication.
🔌 security implements security manager.
📦
downloads: 7005 version:
github.com/
caddy-dns/lego-deprecated
🔌 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....
📦
downloads: 5957 version:
github.com/
caddyserver/ntlm-transport
🔌 http.reverse_proxy.transport.http_ntlm proxies HTTP with NTLM authentication.
📦
downloads: 5459 version:
github.com/
aksdb/caddy-cgi/v2
📦
downloads: 4994 version:
github.com/
imgk/caddy-trojan
🔌 admin.api.trojan is ...
🔌 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....
🔌 http.handlers.trojan implements an HTTP handler that ...
📦
downloads: 4887 version:
github.com/
pteich/caddy-tlsconsul
🔌 caddy.storage.consul holds all parameters for the Consul connection
📦
downloads: 4858 version:
github.com/
mholt/caddy-l4
🔌 layer4 is a Caddy app that operates closest to layer 4 of the OSI model.
🔌 layer4.handlers.echo is a simple handler that writes what it reads.
🔌 layer4.handlers.proxy is a handler that can proxy connections.
🔌 layer4.handlers.proxy_protocol is a connection handler that accepts the PROXY protocol.
🔌 layer4.handlers.tee is a layer4 handler that replicates a connection so that a branch of handlers can concurrently handle it....
🔌 layer4.handlers.throttle throttles connections using leaky bucket rate limiting.
🔌 layer4.handlers.tls is a connection handler that terminates TLS.
🔌 layer4.matchers.http is able to match HTTP connections.
🔌 layer4.matchers.ip matches requests by remote IP (or CIDR range).
🔌 layer4.matchers.ssh is able to match SSH connections.
🔌 layer4.matchers.tls is able to match TLS connections.
🔌 layer4.matchers.xmpp is able to match XMPP connections.
🔌 layer4.proxy.selection_policies.first is a policy that selects the first available host.
🔌 layer4.proxy.selection_policies.ip_hash is a policy that selects a host based on hashing the remote IP of the connection....
🔌 layer4.proxy.selection_policies.least_conn is a policy that selects the upstream with the least active connections.
🔌 layer4.proxy.selection_policies.random is a policy that selects an available host at random.
🔌 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....
🔌 layer4.proxy.selection_policies.round_robin is a policy that selects a host based on round-robin ordering.
📦
downloads: 4821 version:
github.com/
caddy-dns/dnspod
🔌 dns.providers.dnspod wraps the provider implementation as a Caddy module.
📦
downloads: 4390 version:
github.com/
caddy-dns/digitalocean
🔌 dns.providers.digitalocean wraps the provider implementation as a Caddy module.
📦
downloads: 4257 version:
github.com/
kirsch33/realip
📦
downloads: 4041 version:
github.com/
abiosoft/caddy-json-parse
🔌 http.handlers.json_parse implements an HTTP handler that parses json body as placeholders.
📦
downloads: 3941 version:
github.com/
RussellLuo/caddy-ext/ratelimit
🔌 http.handlers.rate_limit implements a handler for rate-limiting.
📦
downloads: 3853 version:
github.com/
porech/caddy-maxmind-geolocation
🔌 http.matchers.maxmind_geolocation Allows to filter requests based on source IP country.
📦
downloads: 3592 version:
github.com/
caddy-dns/alidns
🔌 dns.providers.alidns wraps the provider implementation as a Caddy module.
📦
downloads: 3278 version:
github.com/
caddyserver/nginx-adapter
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 3023 version:
github.com/
mholt/caddy-dynamicdns
🔌 dynamic_dns is a Caddy app that keeps your DNS records updated with the public IP address of your instance.
🔌 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....
🔌 dynamic_dns.ip_sources.upnp gets the IP address from UPnP device.
📦
downloads: 3018 version:
github.com/
lolPants/caddy-requestid
🔌 http.handlers.request_id implements an HTTP handler that writes a unique request ID to response headers.
📦
downloads: 2880 version:
github.com/
abiosoft/caddy-yaml
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 2671 version:
github.com/
caddy-dns/godaddy
🔌 dns.providers.godaddy wraps the provider implementation as a Caddy module.
📦
downloads: 2668 version:
github.com/
abiosoft/caddy-hmac
🔌 http.handlers.hmac implements an HTTP handler that validates request body with hmac.
📦
downloads: 2610 version:
github.com/
caddy-dns/hetzner
🔌 dns.providers.hetzner wraps the provider implementation as a Caddy module.
📦
downloads: 2545 version:
github.com/
abiosoft/caddy-json-schema
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 2417 version:
github.com/
gamalan/caddy-tlsredis
🔌 caddy.storage.redis contain Redis client, and plugin option
📦
📦
downloads: 2143 version:
github.com/
hairyhenderson/caddy-teapot-module
🔌 http.handlers.teapot implements a static "418 I'm a teapot" response to all requests on the route
📦
downloads: 2093 version:
github.com/
abiosoft/caddy-named-routes
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 1946 version:
github.com/
sjtug/caddy2-filter
🔌 http.handlers.filter implements an HTTP handler that writes the visitor's IP address to a file or stream.
📦
downloads: 1881 version:
github.com/
caddy-dns/azure
🔌 dns.providers.azure wraps the provider implementation as a Caddy module.
📦
downloads: 1866 version:
github.com/
caddyserver/jsonc-adapter
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 1866 version:
github.com/
caddy-dns/vultr
🔌 dns.providers.vultr wraps the provider implementation as a Caddy module.
📦
downloads: 1805 version:
github.com/
caddy-dns/gandi
🔌 dns.providers.gandi wraps the provider implementation as a Caddy module.
📦
downloads: 1787 version:
github.com/
techknowlogick/caddy-s3browser
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 1718 version:
github.com/
ggicci/caddy-jwt
🔌 http.authentication.providers.jwt facilitates JWT (JSON Web Token) authentication.
📦
downloads: 1690 version:
github.com/
dunglas/mercure/caddy
🔌 http.handlers.mercure implements a Mercure hub as a Caddy module.
📦
downloads: 1625 version:
github.com/
WingLim/caddy-webhook
🔌 http.handlers.webhook is the module configuration.
📦
downloads: 1579 version:
github.com/
lindenlab/caddy-s3-proxy
🔌 http.handlers.s3proxy implements a proxy to return, set, delete or browse objects from S3
📦
downloads: 1545 version:
github.com/
ueffel/caddy-brotli
🔌 http.encoders.br can create brotli encoders.
📦
downloads: 1514 version:
github.com/
hslatman/caddy-openapi-validator
🔌 http.handlers.openapi_validator is used to validate OpenAPI requests and responses against an OpenAPI specification
📦
downloads: 1410 version:
github.com/
mholt/caddy-ratelimit
🔌 http.handlers.rate_limit implements rate limiting functionality.
📦
📦
downloads: 1194 version:
github.com/
ss098/certmagic-s3
📦
downloads: 950 version:
github.com/
greenpau/caddy-git
🔌 http.handlers.git implements git repository manager.
📦
downloads: 908 version:
github.com/
hslatman/caddy-crowdsec-bouncer
🔌 crowdsec is a Caddy App that functions as a CrowdSec bouncer.
🔌 http.handlers.crowdsec matches request IPs to CrowdSec decisions to (dis)allow access
🔌 layer4.matchers.crowdsec matches IPs to CrowdSec decisions to (dis)allow access
📦
downloads: 873 version:
github.com/
baldinof/caddy-supervisor
🔌 supervisor
📦
downloads: 841 version:
github.com/
darkweak/souin/plugins/caddy
🔌 http.handlers.cache declaration.
📦
downloads: 838 version:
github.com/
francislavoie/caddy-hcl
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 797 version:
github.com/
muety/caddy-remote-host
🔌 http.matchers.remote_host matches based on the remote IP of the connection.
📦
downloads: 739 version:
github.com/
HeavenVolkoff/caddy-authelia/plugin
🔌 http.handlers.authelia implements a plugin for securing routes with authentication
📦
📦
downloads: 694 version:
magnax.ca/caddy/gopkg
🔌 http.handlers.gopkg represents the GoPkg Caddy module.
📦
downloads: 666 version:
github.com/
caddyserver/cache-handler
🔌 http.handlers.cache declaration.
📦
downloads: 622 version:
github.com/
caddy-dns/googleclouddns
🔌 dns.providers.googleclouddns lets Caddy read and manipulate DNS records hosted by this DNS provider.
📦
downloads: 612 version:
github.com/
shift72/caddy-geo-ip
🔌 http.handlers.geoip Allows to filter requests based on source IP country.
📦
downloads: 591 version:
github.com/
caddy-dns/openstack-designate
🔌 dns.providers.openstack-designate wraps the provider implementation as a Caddy module.
📦
downloads: 561 version:
github.com/
mohammed90/caddy-ssh
🔌 ssh is the app providing ssh services
🔌 ssh.actor_matchers.critical_option matches request by the value of critical-option of the certificate/user
🔌 ssh.actor_matchers.extension matches request by SSH protocol extension
🔌 ssh.actor_matchers.group matches requests by user's group
🔌 ssh.actor_matchers.not matches requests by negating the results of its matcher sets.
🔌 ssh.actor_matchers.remote_ip matches requests by client IP (or CIDR range).
🔌 ssh.actor_matchers.user matches requests by username
🔌 ssh.actors.shell is an `ssh.actors` module providing "shell" to a session.
🔌 ssh.actors.static_response is an actor that writes a static value to the client
🔌 ssh.ask.localforward.allow is PortForwardingAsker module which always allows the session
🔌 ssh.ask.localforward.deny Allow is PortForwardingAsker module which always rejects the session
🔌 ssh.ask.pty.allow is PtyAsker module which always allows the PTY session
🔌 ssh.ask.pty.deny Allow is PtyAsker module which always rejects the PTY session
🔌 ssh.authentication.flows.interactive holds the interactive authentication providers
🔌 ssh.authentication.flows.password_auth // PasswordAuthFlow holds the password-based authentication providers
🔌 ssh.authentication.flows.public_key holds the public key authentication providers
🔌 ssh.authentication.providers.public_key.os is an authenticator that authenticates the user based on the `.ssh/authorized_keys` in the user's $HOME...
🔌 ssh.config.loaders.provided Lifted and merged from golang.org/x/crypto/ssh ProvidedConfig holds server specific configuration data.
🔌 ssh.config_matchers.local_ip matches requests by local IP (or CIDR range).
🔌 ssh.config_matchers.not matches requests by negating the results of its matcher sets.
🔌 ssh.config_matchers.remote_ip matches requests by client IP (or CIDR range).
🔌 ssh.session.authorizers.chained is a multi-authorizer module that authorizes a session against multiple authorizers
🔌 ssh.session.authorizers.max_session is an authorizer that permits sessions so long as the number of active sessions is below the specified maximum....
🔌 ssh.session.authorizers.public authorizes all sessions
🔌 ssh.session.authorizers.reject rejects all sessions
🔌 ssh.signers.fallback will check if the signers exist in the storage, otherwise generate them.
🔌 ssh.signers.file is a session signer that uses pre-existing keys, which may be backed as files or retrievable via HTTP
🔌 ssh.subsystem.inmem_sftp is an in-memory SFTP server allowing shared space between all users.
📦
downloads: 553 version:
github.com/
git001/caddyv2-upload
🔌 http.handlers.upload Middleware implements an HTTP handler that writes the uploaded file to a file on the disk.
📦
📦
downloads: 435 version:
github.com/
circa10a/caddy-geofence
🔌 http.handlers.geofence implements IP geofencing functionality.
📦
downloads: 426 version:
github.com/
ueffel/caddy-basic-auth-filter
🔌 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....
📦
downloads: 366 version:
github.com/
ueffel/caddy-imagefilter/defaults
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 331 version:
github.com/
ueffel/caddy-tls-format
🔌 caddy.logging.encoders.filter.tls_cipher is Caddy log field filter that replaces the numeric TLS cipher_suite value with the string representation....
🔌 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....
📦
downloads: 306 version:
github.com/
caddy-dns/netcup
🔌 dns.providers.netcup lets Caddy read and manipulate DNS records hosted by this DNS provider.
📦
📦
downloads: 271 version:
github.com/
cubic3d/caddy-quantity-limiter
🔌 http.handlers.quantity_limiter limits the number of successful requests for a token and allows the counter to be reset.
📦
downloads: 228 version:
github.com/
mholt/caddy-grpc-web
🔌 http.handlers.grpc_web is an HTTP handler that bridges gRPC-Web <--> gRPC requests.
📦
downloads: 208 version:
github.com/
sillygod/cdp-cache
🔌 admin.api.purge is a module that provides the /purge endpoint as the admin api.
🔌 distributed.consul handles the client to interact with the consul agent
🔌 http.handlers.http_cache is a http handler as a middleware to cache the response
📦
downloads: 203 version:
github.com/
RussellLuo/caddy-ext/flagr
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 198 version:
github.com/
cubic3d/caddy-ct
🔌 http.handlers.ct allows to transpile YAML based configuration into a JSON ignition to be used with Flatcar or Fedora CoreOS....
📦
downloads: 189 version:
github.com/
caddy-dns/porkbun
🔌 dns.providers.porkbun lets Caddy read and manipulate DNS records hosted by this DNS provider.
📦
downloads: 188 version:
github.com/
gbox-proxy/gbox
📦
downloads: 173 version:
github.com/
RussellLuo/olaf/caddyconfig/adapter
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 165 version:
github.com/
RussellLuo/caddy-ext/requestbodyvar
🔌 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....
📦
downloads: 164 version:
github.com/
caddy-dns/ovh
🔌 dns.providers.ovh wraps the provider implementation as a Caddy module.
📦
downloads: 157 version:
github.com/
caddy-dns/netlify
🔌 dns.providers.netlify wraps the provider implementation as a Caddy module.
📦
downloads: 150 version:
github.com/
mholt/caddy-events-exec
🔌 events.handlers.exec implements an event handler that runs a command/program.
📦
downloads: 137 version:
github.com/
tosie/caddy-dns-linode
🔌 dns.providers.linode wraps the provider implementation as a Caddy module.
📦
downloads: 124 version:
github.com/
Elegant996/scgi-transport
🔌 http.reverse_proxy.transport.scgi facilitates SCGI communication.
📦
downloads: 115 version:
github.com/
caddy-dns/metaname
🔌 dns.providers.metaname wraps the provider implementation as a Caddy module.
📦
downloads: 85 version:
github.com/
caddy-dns/namesilo
🔌 dns.providers.namesilo lets Caddy read and manipulate DNS records hosted by this DNS provider.
📦
downloads: 82 version:
github.com/
caddy-dns/vercel
🔌 dns.providers.vercel wraps the provider implementation as a Caddy module.
📦
downloads: 78 version:
github.com/
argami/redir-dns
🔌 http.handlers.redir_dns is a RedirDns for manipulating redirecting based on DNS TXT record.
📦
downloads: 74 version:
github.com/
caddy-dns/ddnss
🔌 dns.providers.ddnss lets Caddy read and manipulate DNS records hosted by this DNS provider.
📦
downloads: 71 version:
github.com/
caddy-dns/njalla
🔌 dns.providers.njalla lets Caddy read and manipulate DNS records hosted by this DNS provider.
📦
downloads: 66 version:
github.com/
sagikazarmark/caddy-fs-s3
🔌 caddy.fs.s3 is a Caddy virtual filesystem module for AWS S3 (and compatible) object store.
📦
downloads: 64 version:
github.com/
RussellLuo/caddy-ext/layer4
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 60 version:
github.com/
mpilhlt/caddy-conneg
🔌 http.matchers.conneg matches requests by comparing results of a content negotiation process to a (list of) value(s).
📦
downloads: 53 version:
github.com/
caddy-dns/dinahosting
🔌 dns.providers.dinahosting lets Caddy read and manipulate DNS records hosted by this DNS provider.
📦
downloads: 51 version:
github.com/
grafana/certmagic-gcs
🔌 caddy.storage.gcs implements a caddy storage backend for Google Cloud Storage.
📦
downloads: 38 version:
github.com/
lucaslorentz/caddy-docker-proxy/v2
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 37 version:
github.com/
darkweak/go-esi/middleware/caddy
🔌 http.handlers.esi to handle, process and serve ESI tags.
📦
downloads: 35 version:
github.com/
bploetz/caddy-oauth2-token-introspection
🔌 http.handlers.oauth2_token_introspection is a Caddy http.handlers Module for authorizing requests via OAuth2 Token Introspection...
📦
downloads: 34 version:
github.com/
WeidiDeng/caddy-cloudflare-ip
🔌 http.ip_sources.cloudflare provides a range of IP address prefixes (CIDRs) retrieved from cloudflare.
📦
downloads: 31 version:
github.com/
Odyssey346/ListenCaddy
🔌 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....
📦
downloads: 29 version:
github.com/
silinternational/certmagic-storage-dynamodb/v3
🔌 caddy.storage.dynamodb implements certmagic.Storage to facilitate storage of certificates in DynamoDB for a clustered environment....
📦
📦
📦
downloads: 12 version:
github.com/
dulli/caddy-wol
🔌 http.handlers.wake_on_lan wakes up a target host on HTTP requests using wake-on-lan.
📦
downloads: 12 version:
github.com/
caddy-dns/google-domains
🔌 dns.providers.google_domains lets Caddy read and manipulate DNS records hosted by this DNS provider.
📦
downloads: 8 version:
github.com/
fvbommel/caddy-dns-ip-range
🔌 http.ip_sources.dns provides a range of IP addresses associated with a DNS name.
📦
downloads: 5 version:
github.com/
fvbommel/caddy-combine-ip-ranges
🔌 http.ip_sources.combine This module combines the prefixes returned by several other IP source plugins.
📦
downloads: 5 version:
github.com/
caddy-dns/powerdns
🔌 dns.providers.powerdns wraps the provider implementation as a Caddy module.
📦
downloads: 3 version:
github.com/
mohammed90/caddy-ngrok-listener
🔌 caddy.listeners.ngrok is a `listener_wrapper` whose address is an ngrok-ingress address
🔌 caddy.listeners.ngrok.tunnels.http ngrok HTTP tunnel
🔌 caddy.listeners.ngrok.tunnels.labeled ngrok Labeled Tunnel
🔌 caddy.listeners.ngrok.tunnels.tcp ngrok TCP tunnel
🔌 caddy.listeners.ngrok.tunnels.tls ngrok TLS tunnel Note: only available for ngrok Enterprise user
📦
downloads: 3 version:
github.com/
caddy-dns/tencentcloud
🔌 dns.providers.tencentcloud wraps the provider implementation as a Caddy module.
📦
downloads: 2 version:
github.com/
mohammed90/caddy_profiling/profiling
🔌 profiling The `profiling` app hosts the collection of push-based profiling agents with common profiling parameters acorss the Caddy instance....
📦
downloads: 1 version:
github.com/
zhangjiayin/caddy-mysql-adapter
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 1 version:
github.com/
ueffel/caddy-imagefilter/v2/defaults
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 1 version:
github.com/
sandstorm/caddy-nats-bridge
This package does not add any modules to the JSON config structure. Either it is another kind of plugin (such as a config adapter) or this listing is in error.
📦
downloads: 1 version:
github.com/
mohammed90/caddy_profiling/pyroscope
🔌 profiling.profiler.pyroscope is the container of the `pyroscope` profiler if configured as a guest module of the `profiling` app...
🔌 pyroscope The `pyroscope` app collects profiling data during the life-time of the process and uploads them to the Pyroscope server....
📦
downloads: 1 version:
github.com/
mohammed90/caddy_profiling/profefe
🔌 profefe The `profefe` app collects profiling data during the life-time of the process and uploads them to the profefe server.
🔌 profiling.profiler.profefe is the container of the `profefe` profiler if configured as a guest module of the `profiling` app...