NeXuS uses a dual-layer SSL architecture: Cloudflare for edge TLS and Traefik + Letβs Encrypt for origin TLS.
Client ββ(HTTPS)βββΆ Cloudflare ββ(HTTPS)βββΆ Traefik ββ(HTTP)βββΆ Container
Edge TLS Origin TLS Internal
Traefik automatically provisions TLS certificates using the ACME protocol with Letβs Encrypt.
Each service declares its TLS requirements via Docker labels:
labels:
- "traefik.http.routers.nexus-api.entrypoints=websecure"
- "traefik.http.routers.nexus-api.tls.certresolver=letsencrypt"
Traefik handles:
Certificates are stored in a Traefik volume. Ensure this volume persists across restarts to avoid rate-limit issues with Letβs Encrypt.
Configure Cloudflare SSL/TLS to Full (Strict) mode:
Cloudflare automatically provisions edge certificates for all proxied domains. No configuration needed.
Each NeXuS service needs:
Host() ruleExample for a new service:
# In docker-compose.yml
my-service:
labels:
- "traefik.enable=true"
- "traefik.http.routers.my-service.rule=Host(`my-service.sebhosting.com`)"
- "traefik.http.routers.my-service.entrypoints=websecure"
- "traefik.http.routers.my-service.tls.certresolver=letsencrypt"
- "traefik.http.services.my-service.loadbalancer.server.port=8080"
- "traefik.docker.network=traefik-public"
Then add a DNS record:
my-service.sebhosting.com β A β <server-ip> (proxied)