Sign inSign up

blazesnow/caddy

By blazesnow

•Updated 6 days ago

https://github.com/BlazeSnow/Caddy

Image
1

10K+

blazesnow/caddy repository overview

⁠BlazeSnow/Caddy

Docker Pulls Docker Image Size GitHub Release GitHub last commit (branch) GitHub Actions Workflow Status GitHub License

⁠简介

镜像名称见:https://hub.docker.com/r/blazesnow/caddy/tags⁠

Caddy 默认通过 HTTP-01 质询验证域名,要求 CA(如 Let's Encrypt)能从公网直接访问你的 80 端口。

  • 站点未套 CDN(80 端口可直达):官方 Caddy 镜像即可完成自动 HTTPS,无需使用本镜像
  • 站点套了 CDN(如腾讯 EdgeOne):CDN 代理了 80/443 端口,CA 的质询请求穿不透到你的服务器,官方镜像无法完成证书验证。此时应使用本镜像——已集成各主流 DNS 提供商的插件,通过 DNS-01 质询(修改 DNS TXT 记录)验证域名,不依赖任何入站端口,选用对应 DNS 提供商的 tag 即可

⁠使用

每个插件对应一个独立镜像 tag,以 Cloudflare DNS 插件为例。

Tip

`docker run` 与 `docker compose` 二选一即可,效果相同。
⁠docker run
docker run -d \
  --name caddy \
  -p 80:80 \
  -p 443:443 \
  -p 443:443/udp \
  -e CF_API_TOKEN=your_api_token \
  -v /path/to/Caddyfile:/etc/caddy/Caddyfile \
  -v caddy_data:/data \
  -v caddy_config:/config \
  blazesnow/caddy:cloudflare
⁠docker compose

docker-compose.yml:

services:
  caddy:
    image: blazesnow/caddy:cloudflare
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    environment:
      - CF_API_TOKEN=your_api_token
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config

volumes:
  caddy_data:
  caddy_config:

在 compose 文件所在目录运行:

docker compose up -d
⁠Caddyfile

DNS 质询示例,凭据通过环境变量传递:

example.com {
    tls {
        dns cloudflare {env.CF_API_TOKEN}
    }
}

各插件的凭据环境变量名和格式因提供商而异,详见下方 ACME-DNS⁠ 章节中的表格。

⁠注意事项
  • 配置目录为 /config,数据目录为 /data(镜像内通过 XDG_CONFIG_HOME / XDG_DATA_HOME 指定),建议挂载持久化
  • 提供 Alpine 和 Debian 两个基础镜像:<插件> / <插件>-alpine 基于 Alpine(默认、体积更小),<插件>-slim 基于 Debian slim
  • 管理端口 2019 可选开放

⁠ACME-DNS

以下内容摘自:https://caddyserver.com/docs/automatic-https#acme-challenges⁠

DNS 质询会对候选主机名的 TXT 记录执行权威 DNS 查找,并查找具有特定值的特殊 TXT 记录。如果 CA 发现预期值,则会颁发证书。

此质询不需要任何开放端口,请求证书的服务器也无需可从外部访问。但是,DNS 质询需要配置。Caddy 需要知道访问您域名的 DNS 提供商的凭据,以便设置(和清除)特殊 TXT 记录。如果启用了 DNS 质询,则默认情况下会禁用其他质询。

由于 ACME CA 在查找 TXT 记录进行质询验证时遵循 DNS 标准,因此您可以使用 CNAME 记录将质询的应答委托给其他 DNS 区域。这可用于将 _acme-challenge 子域委托给另一个区域。如果您的 DNS 提供商不提供 API,或者 Caddy 的某个 DNS 插件不支持该 API,则此功能尤其有用。

⁠支持的提供商

本项目目前支持的提供商,各提供商使用说明见附链接:

⁠Webdav

使用说明:https://github.com/mholt/caddy-webdav⁠

⁠许可证

自2025年10月28日起,本软件以MIT的条款发布。

⁠第三方组件许可证

本软件中包含的Caddy软件遵守其原有的许可证。

Tag summary

Content type

Image

Digest

sha256:e4c8f8923…

Size

57.6 MB

Last updated

6 days ago

docker pull blazesnow/caddy:godaddy-slim