| Version | Supported |
|---|---|
| latest | ✅ |
If you discover a security vulnerability, please:
- Do NOT create a public GitHub issue
- Email the maintainer directly (or use GitHub security advisories)
- Include details about the vulnerability:
- Description
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
When deploying DIP-Lab:
- Change all default passwords - All secrets in
.envfiles should be changed from the placeholders in the corresponding.env.example - Use strong passwords - Use a password manager (Vaultwarden is
included in this repo under
passwords/) - Keep services updated - Run
./manager.sh updateregularly - Restrict network access - Services run on the internal Docker network; only Traefik is exposed externally
- Review container permissions - Every service uses
no-new-privileges:true;dev-agentand other developer tools run with explicit resource caps - Enable firewall - Only expose ports 80 and 443 (and any other port you intentionally need) to the internet
- Rotate
OPENCODE_SERVER_PASSWORDindev-agent/.envif the developer container has been reachable on anything other than127.0.0.1
- Traefik API - Dashboard is disabled by default (
insecure: false). Enable only over a trusted network. - Docker socket -
proxy/traefikmounts/var/run/docker.sockto read container labels;containers/portainermounts it to provide Docker management. Treat those services as privileged. - MySQL init script -
databases/mysql-init.sqlships with placeholders.databases/entrypoint.shsubstitutes real passwords fromdatabases/.envat first start. If you ever change the MySQL password in.envafter first start, also reset thedatabases/data/mysqlvolume (drop tables for the affected users and re-run the init). - Object storage - The optional
/mnt/object-storagemount is treated as semi-trusted. Do not put secrets on it without additional encryption. :latestimage tags - Several services use:latest(n8n, Portainer, Vaultwarden, Grafana, Loki, Promtail, Prometheus, cAdvisor, node-exporter, Paperless, Hermes). Pin to a digest in production deployments where reproducibility matters.- dev-agent container - The developer workstation has
opencode servealways on. By default it binds to127.0.0.1. If you setOPENCODE_BIND_IP=0.0.0.0, theOPENCODE_SERVER_PASSWORDis your only authentication.