I wanted a message broker for a side project without paying for managed Kafka or wrestling with RabbitMQ clustering. NATS was the obvious answer—until I tried wiring up JetStream, token auth, WebSocket for the browser, and Traefik routing on my own. So I packaged the whole thing as a Dokploy Compose template.
The Problem
Spinning up NATS sounds easy until you actually need it in production:
nats.conf syntax is fine, but plumbing env vars through Docker Compose takes trial and error
Browser clients need the WebSocket port exposed through a reverse proxy with TLS
The monitoring endpoint on port 8222 is wide open by default
Every tutorial stops at "it runs locally"—nothing covers a real self-hosted deploy
The Solution: dokploy-nats
A single Git repo you point Dokploy at.…