Switch from Cloudflare to Vultr for DNS challenge configuration
- Replace all Cloudflare references with Vultr throughout documentation - Update environment variables: CLOUDFLARE_API_TOKEN → VULTR_API_TOKEN - Change caddy.tls.dns configuration from cloudflare to vultr - Update .env example with Vultr API token placeholder - Modify setup instructions to reference Vultr DNS configuration - Maintain all functionality while using Vultr DNS provider
This commit is contained in:
parent
1ca195607e
commit
60247d898b
42
README.md
42
README.md
@ -1173,8 +1173,8 @@ services:
|
||||
environment:
|
||||
# Enable Docker provider for automatic container discovery
|
||||
CADDY_INGRESS_NETWORKS: caddy
|
||||
# Cloudflare API token for DNS challenge (wildcard certificates)
|
||||
CLOUDFLARE_API_TOKEN: ${CLOUDFLARE_API_TOKEN}
|
||||
# Vultr API token for DNS challenge (wildcard certificates)
|
||||
VULTR_API_TOKEN: ${VULTR_API_TOKEN}
|
||||
networks:
|
||||
- caddy
|
||||
volumes:
|
||||
@ -1184,7 +1184,7 @@ services:
|
||||
restart: unless-stopped
|
||||
labels:
|
||||
# Global TLS configuration for wildcard certificates
|
||||
caddy.tls.dns: cloudflare
|
||||
caddy.tls.dns: vultr
|
||||
|
||||
mcmqtt:
|
||||
image: python:3.11-slim
|
||||
@ -1213,7 +1213,7 @@ services:
|
||||
labels:
|
||||
caddy: mqtt-dashboard.yourdomain.com
|
||||
caddy.reverse_proxy: "{{upstreams 80}}"
|
||||
caddy.tls.dns: cloudflare
|
||||
caddy.tls.dns: vultr
|
||||
|
||||
networks:
|
||||
caddy:
|
||||
@ -1232,8 +1232,8 @@ volumes:
|
||||
# .env file
|
||||
COMPOSE_PROJECT_NAME=mcmqtt-production
|
||||
|
||||
# Cloudflare DNS challenge for wildcard certificates
|
||||
CLOUDFLARE_API_TOKEN=your_cloudflare_global_api_key_here
|
||||
# Vultr DNS challenge for wildcard certificates
|
||||
VULTR_API_TOKEN=your_vultr_api_key_here
|
||||
|
||||
# Domain configuration
|
||||
DOMAIN=yourdomain.com
|
||||
@ -1252,7 +1252,7 @@ docker volume create caddy_config
|
||||
|
||||
# 2. Configure environment variables
|
||||
cp .env.example .env
|
||||
# Edit .env with your domain and Cloudflare token
|
||||
# Edit .env with your domain and Vultr token
|
||||
|
||||
# 3. Deploy the stack
|
||||
docker compose up -d
|
||||
@ -1286,7 +1286,7 @@ docker run -d \
|
||||
--label "caddy.reverse_proxy={{upstreams 1883}}" \
|
||||
--label "caddy.handle_path=/ws" \
|
||||
--label "caddy.handle_path.reverse_proxy={{upstreams 9001}}" \
|
||||
--label "caddy.tls.dns=cloudflare" \
|
||||
--label "caddy.tls.dns=vultr" \
|
||||
python:3.11-slim uvx amqtt
|
||||
|
||||
# 3. caddy-docker-proxy automatically detects the new container
|
||||
@ -1297,7 +1297,7 @@ docker run -d \
|
||||
# reverse_proxy mqtt-broker-customer-acme-prod:9001
|
||||
# }
|
||||
# tls {
|
||||
# dns cloudflare
|
||||
# dns vultr
|
||||
# }
|
||||
# }
|
||||
|
||||
@ -1310,9 +1310,9 @@ docker run -d \
|
||||
git clone https://github.com/your-org/mcmqtt-production-stack
|
||||
cd mcmqtt-production-stack
|
||||
|
||||
# Configure your domain and Cloudflare
|
||||
# Configure your domain and Vultr DNS
|
||||
cp .env.example .env
|
||||
# Edit .env with your settings
|
||||
# Edit .env with your domain and Vultr API token
|
||||
|
||||
# Deploy production stack
|
||||
make deploy
|
||||
@ -1354,7 +1354,7 @@ uvx mcmqtt --transport http-streamable --hostname mqtt-control.yourdomain.com
|
||||
```docker
|
||||
--label "caddy=${HOSTNAME}"
|
||||
--label "caddy.reverse_proxy={{upstreams ${PORT}}}"
|
||||
--label "caddy.tls.dns=cloudflare" # If CLOUDFLARE_API_TOKEN detected
|
||||
--label "caddy.tls.dns=vultr" # If VULTR_API_TOKEN detected
|
||||
--label "caddy.handle_path=/ws" # For WebSocket support
|
||||
```
|
||||
3. **Configures FastMCP server for streaming responses**
|
||||
@ -1364,7 +1364,7 @@ uvx mcmqtt --transport http-streamable --hostname mqtt-control.yourdomain.com
|
||||
```bash
|
||||
# mcmqtt detects these environment variables:
|
||||
CADDY_NETWORK=caddy # Join caddy network automatically
|
||||
CLOUDFLARE_API_TOKEN=xxx # Enable DNS challenge for wildcard certs
|
||||
VULTR_API_TOKEN=xxx # Enable DNS challenge for wildcard certs
|
||||
DOMAIN=yourdomain.com # Use as base domain for spawned brokers
|
||||
SSL_EMAIL=admin@yourdomain.com # Let's Encrypt certificate email
|
||||
|
||||
@ -1384,7 +1384,7 @@ services:
|
||||
environment:
|
||||
- DOMAIN=${DOMAIN}
|
||||
- CADDY_NETWORK=caddy
|
||||
- CLOUDFLARE_API_TOKEN=${CLOUDFLARE_API_TOKEN}
|
||||
- VULTR_API_TOKEN=${VULTR_API_TOKEN}
|
||||
# No manual labels needed - all automatic!
|
||||
```
|
||||
|
||||
@ -1426,7 +1426,7 @@ docker run -d \
|
||||
--label "caddy.reverse_proxy={{upstreams 1883}}" \
|
||||
--label "caddy.handle_path=/ws" \
|
||||
--label "caddy.handle_path.reverse_proxy={{upstreams 9001}}" \
|
||||
--label "caddy.tls.dns=cloudflare" \
|
||||
--label "caddy.tls.dns=vultr" \
|
||||
python:3.11-slim uvx amqtt
|
||||
|
||||
# caddy-docker-proxy immediately detects container
|
||||
@ -1437,7 +1437,7 @@ docker run -d \
|
||||
# reverse_proxy mqtt-broker-customer-acme:9001
|
||||
# }
|
||||
# tls {
|
||||
# dns cloudflare
|
||||
# dns vultr
|
||||
# }
|
||||
# }
|
||||
|
||||
@ -1498,9 +1498,9 @@ wss://customer-acme.mqtt.yourapp.com/ws # WebSocket from browsers
|
||||
|
||||
**Production Security Features:**
|
||||
- 🔒 **Automatic HTTPS/TLS encryption** via Let's Encrypt
|
||||
- 🛡️ **DDoS protection** via Cloudflare/Caddy
|
||||
- 🛡️ **DDoS protection** via Vultr/Caddy
|
||||
- 🔑 **Authentication** built into MQTT broker
|
||||
- 🌐 **Global CDN** if using Cloudflare
|
||||
- 🌐 **Global CDN** if using Vultr
|
||||
- 📊 **Request logging & monitoring** via Caddy
|
||||
- ⚡ **Rate limiting** and traffic shaping
|
||||
- 🔄 **Automatic failover** with health checks
|
||||
@ -1729,8 +1729,8 @@ This isn't just exposing existing services - it's **spawning infrastructure with
|
||||
```caddyfile
|
||||
# Global options for wildcard certificate management
|
||||
{
|
||||
# Cloudflare DNS challenge for wildcard certs
|
||||
acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}
|
||||
# Vultr DNS challenge for wildcard certs
|
||||
acme_dns vultr {env.VULTR_API_TOKEN}
|
||||
}
|
||||
|
||||
# Wildcard certificate covers all subdomains
|
||||
@ -1770,7 +1770,7 @@ This isn't just exposing existing services - it's **spawning infrastructure with
|
||||
|
||||
# Automatic certificate for *.mqtt.yourdomain.com
|
||||
tls {
|
||||
dns cloudflare {env.CLOUDFLARE_API_TOKEN}
|
||||
dns vultr {env.VULTR_API_TOKEN}
|
||||
wildcard
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user