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