General-purpose proxy vs security sidecar
Traefik is designed to sit at the edge of your infrastructure and route traffic to many services. It auto-discovers containers, manages load balancing, and integrates with Kubernetes, Docker, Consul, and more.
VibeWarden is designed to sit next to one app and secure it. It does not care about your container orchestrator or service mesh. You point it at your app's port and it handles TLS, auth, WAF, rate limiting, and egress control.
This means Traefik gives you features you do not need for a single app, while VibeWarden gives you security features that Traefik does not have.
Setup: side by side
Here is what it takes to get a secured reverse proxy running with each tool.
# docker-compose.yml services: traefik: image: traefik:v3 ports: - "443:443" volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.yml:/traefik.yml - ./acme.json:/acme.json app: image: my-app labels: - "traefik.enable=true" - "traefik.http.routers.app.rule=Host(`app.example.com`)" - "traefik.http.routers.app.tls.certresolver=le" - "traefik.http.routers.app.middlewares=rate-limit" - "traefik.http.middlewares.rate-limit.ratelimit.average=60" # traefik.yml entryPoints: websecure: address: :443 certificatesResolvers: le: acme: email: you@example.com storage: acme.json httpChallenge: entryPoint: web providers: docker: exposedByDefault: false
# Install curl -sS https://vibewarden.dev/install.sh | sh # Generate config vibew init \ --upstream 3000 \ --auth \ --rate-limit # Start vibew dev # That's it. Your vibewarden.yaml: domain: app.example.com upstream: http://127.0.0.1:3000 tls: auto: true kratos: enabled: true rate_limit: per_ip: requests: 60 window: 1m
Traefik requires a docker-compose file, a Traefik config file, Docker labels on every service, and an understanding of entrypoints, routers, and middlewares. VibeWarden needs one YAML file.
Feature comparison
| Capability | Traefik | VibeWarden |
|---|---|---|
| Reverse proxy | Yes (multi-service) | Yes (single-app sidecar) |
| Automatic TLS | Built in (ACME) | Built in (ACME) |
| Authentication | BasicAuth middleware or external service (ForwardAuth) | Built in (Kratos -- OAuth2, API keys, JWT) |
| WAF | No built-in WAF (requires plugin or external service) | Built in (OWASP rules) |
| Rate limiting | Built in (middleware, basic) | Built in (per-IP, per-user, token bucket) |
| AI-readable logs | JSON access logs (no schema) | Structured JSON events with published schemas |
| Prompt injection detection | No | Built in |
| Egress proxy | No (ingress only) | Built in (allowlist, audit, circuit breakers) |
| Security headers | Via middleware config | Automatic (CSP, HSTS, X-Frame-Options) |
| Container auto-discovery | Yes (Docker, K8s, Consul, etc.) | No (sidecar, not infrastructure) |
| Load balancing | Yes (round-robin, weighted, etc.) | No (single upstream) |
| Config surface | YAML + Docker labels + middleware chain | 1 YAML file |
| Setup time | ~15 minutes | ~3 minutes |
What VibeWarden adds that Traefik does not have
- Built-in authentication -- Traefik's ForwardAuth middleware requires you to deploy and maintain a separate auth service. VibeWarden bundles Kratos, giving you OAuth2, API key validation, and JWT verification without extra infrastructure.
- WAF with OWASP rules -- Traefik has no built-in WAF. You need a plugin or an external service. VibeWarden blocks SQLi, XSS, and path traversal out of the box.
- Prompt injection detection -- if your app uses an LLM, VibeWarden inspects inbound requests for injection patterns.
- Egress proxy -- control and audit your app's outbound traffic. Allowlist which external APIs it can call. Traefik only handles inbound traffic.
- AI-readable structured logs -- every event follows a published JSON schema that AI agents can parse without custom code.
When Traefik is the better choice
Traefik is a great tool. It is the better choice when:
- You run many services -- Traefik excels at routing traffic to dozens of containers using auto-discovery and Docker labels. VibeWarden secures one app at a time.
- You need load balancing -- round-robin, weighted, sticky sessions across multiple instances. VibeWarden proxies to a single upstream.
- You use Kubernetes -- Traefik integrates as an Ingress controller. VibeWarden is a sidecar, not an infrastructure component.
- You need the plugin ecosystem -- Traefik has a marketplace of middleware plugins for various needs. VibeWarden is opinionated about what it includes.
The bottom line
If you are deploying a single app and want security out of the box -- auth, WAF, rate limiting, egress control, AI logs -- VibeWarden gets you there in 3 commands with zero middleware configuration. If you are managing infrastructure with many services and need flexible routing, Traefik is built for that job.