Sign inSign up

prakash014/cloudy_caddy

By prakash014

β€’Updated 4 months ago

Caddy with cloudflare ssl enabled

Image
0

1.1K

prakash014/cloudy_caddy repository overview

⁠☁️ Cloudy Caddy

Custom Docker image of Caddy 2.10.0⁠ with built-in support for Cloudflare DNSβ€”ideal for automatic HTTPS, wildcard domain support, and fast, secure web delivery.

Published at:
πŸ‘‰ Docker Hub - prakash014/cloudy_caddy⁠


⁠✨ Features

  • βœ… Based on caddy:2.10.0-alpine
  • πŸ”§ Built via xcaddy with github.com/caddy-dns/cloudflare
  • πŸ”’ TLS 1.2 & 1.3 support with auto HTTPS
  • 🌐 Wildcard domain support via Cloudflare DNS
  • πŸͺΆ Lightweight Alpine image

β πŸ›  Usage

⁠🐳 Pull the image
docker pull prakash014/cloudy_caddy

πŸ“„ Sample Caddyfile Configurations

Without Cloudflare DNS (Email-based TLS):

tls <replace_with_email_id> {
    protocols tls1.2 tls1.3
}

With Cloudflare DNS (Wildcard TLS + Static Hosting):

*.<subdomain>.<domain>.com {
    root * /var/www/html/non_production/<project_name>/{labels.3}
    encode gzip
    file_server

    log {
        output file /var/log/caddy/<project_name>/nprod_access.log
        format json
    }

    tls {
        dns cloudflare {$CLOUDFLARE_API_TOKEN}
    }
}

Use environment variable CLOUDFLARE_API_TOKEN to keep your token secure.

πŸ“¦ Docker Compose Example Create a file named docker-compose.yml:

version: '3.8'

services:
  cloudy_caddy:
    image: prakash014/cloudy_caddy:latest
    container_name: cloudy_caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    environment:
      - CLOUDFLARE_API_TOKEN=your_cloudflare_api_token_here
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./site:/var/www/html
      - caddy_data:/data
      - caddy_config:/config
      - ./logs:/var/log/caddy
    networks:
      - web

volumes:
  caddy_data:
  caddy_config:

networks:
  web:
    driver: bridge

🧱 Build Details

Image built using:

FROM caddy:2.10.0-builder-alpine AS builder
RUN xcaddy build v2.10.0 --with github.com/caddy-dns/cloudflare

FROM caddy:2.10.0-alpine
COPY --from=builder /usr/bin/caddy /usr/bin/caddy

content of /etc/caddy folder:

Caddyfile  non_production  production

content of Caddyfile:

import /etc/caddy/production/*.caddy
import /etc/caddy/non_production/*.caddy

eg files inside non_production

leave_balance_marketing.caddy  polo_themes_documentation.caddy  polo_themes_marketing.caddy  truemark_handbook.caddy

⚠️ Security Note

Never hardcode your Cloudflare API token.

Use environment variables, .env files, or Docker secrets.

Always scope your Cloudflare API tokens minimally (Zone:DNS:Edit recommended).

πŸ“¬ Support

For help, reach out to the image maintainer via GitHub or Docker Hub discussions.

Tag summary

Content type

Image

Digest

sha256:4f54c6563…

Size

36.7 MB

Last updated

4 months ago

docker pull prakash014/cloudy_caddy:2.11.4