Docker Compose (recommended)
The quickest path to a production deployment:docker-compose.yml
Security hardening
Sundew’s Docker image is hardened by default:Network isolation
For maximum security, deploy with no outbound network access:Storage limits
Prevent disk exhaustion from high-traffic attacks:- SQLite database: 500 MB max (oldest events pruned)
- JSONL log: 100 MB with 5 rotated backups
- Rate limiting: 100 req/s per source IP (configurable)
Deployment checklist
Before going live, verify:1
Network isolation
Container has no outbound network access (
--network=none or internal bridge).2
Read-only filesystem
Root filesystem is read-only with only
./data/ writable.3
Non-root execution
Running as non-root user (UID 1001).
4
No real credentials
No real API keys, tokens, or passwords anywhere in config or persona files.
5
Canary validation
All canary tokens are verifiably fake:
sundew validate-config.6
Log rotation
Storage limits configured to prevent disk exhaustion.
7
Host firewall
Only the honeypot port is open inbound. No egress allowed.
8
Security audit
make audit passes (pip-audit + bandit + security tests).Building from source
dhi.io/python:3.13-alpine) with nonroot execution, no shell, and minimal attack surface.