Skip to content
- Command palette search. Press Cmd+K to search across projects, servers, and actions from anywhere in the dashboard.
- Upgrade daemon from dashboard. Check for updates and upgrade the daemon directly from the web UI without SSH.
- Dark mode. The dashboard now respects system color scheme preferences.
- Zero downtime deploys. Deployments now wait for DNS propagation and port availability before routing traffic, eliminating brief 502 errors on new deploys.
- Stale deployment cleanup. Orphaned deployment containers are now automatically cleaned up on daemon startup.
- Better deployment timeout feedback. When a service fails to start, the output now shows which port was being waited on and for how long.
- DNS verification before routing. Traffic is only sent to new services after both internal DNS resolution and port checks pass.
- Docker log rotation. Container logs are now automatically rotated to prevent disk exhaustion on long-running services.
- Disk usage in stats. The
disco stats command now includes disk usage alongside CPU and memory.
- Cron timeout configuration. Set custom timeouts for cron jobs via
cronTimeout in disco.json.
- Volume import through Cloudflare. Fixed volume imports failing when the server is behind a Cloudflare tunnel.
- Health checks. Services can now define health check endpoints in
disco.json, used to verify readiness before routing traffic.
- Domain validation. Domain names are now validated before being added to prevent typos and invalid configurations.
- Services panel. The dashboard now shows all running services for a project with their status and scale.
- SSH keys with passphrases.
disco init now supports SSH identity files that require a passphrase.
- Volume export improvements. Better handling when exporting to terminal vs file, with clearer output messaging.
- Multi-node cluster support. Add and remove nodes from your swarm via CLI (
disco nodes:add, disco nodes:remove, disco nodes:list), with proper draining before removal.
- Custom
disco.json path. Set discoJsonPath in disco.json to point to your actual config file, helpful for monorepos.
- Automatic Docker build cache pruning. Build cache is now cleared daily to prevent disk from filling up.
- Search in log viewer. Search within deployment and runtime logs in the web dashboard.
- Real-time dashboard updates. The dashboard now receives live updates via server-sent events when deployments finish, env vars change, or domains are added.
- Stats command. New
disco stats command shows CPU, memory, and network usage for all running services.
- Service scale persistence. Scale settings are now remembered across deployments instead of resetting to 1.
- Better error reporting. Command run failures now include the actual error output instead of generic messages.
- Cancel deployments. Stop a running deployment with
disco deploy:cancel or from the dashboard.
- Deployment hooks. New
hook:deploy:start:after runs after the service starts but before traffic is routed.
- Postgres version selection. Specify which Postgres version to use when creating instances with
--version.
- Deployment number env var.
DISCO_DEPLOYMENT_NUMBER is now available in your service environment.
- List servers. New
disco discos:list command shows all configured Disco servers.
- Custom SSH identity file. Specify which SSH key to use during init with
--identity-file.
- Async deployment flow. Deployments are now fully async internally, improving reliability under load.
- JWT authentication. The API now supports JWT Bearer tokens in addition to API keys.
- CORS configuration. Set allowed origins for cross-origin requests to the API.
- Easy mode. Simpler
disco.json format that auto-detects your framework and generates the Dockerfile, just set type: easy and optionally a build command.
- SSH tunnels. Access internal Postgres securely via
disco postgres:tunnel.
- Cloudflare Tunnel support. Run Disco behind a Cloudflare Tunnel with
disco init --cloudflare-tunnel.
- .env as build secret. Environment variables are now available during Docker builds as a secret at
/run/secrets/.env.
- Generator services. New service type that runs once during deployment to generate static files.
- Branch tracking. Projects can now track a specific branch instead of always deploying the default branch.
- Postgres addon. Managed Postgres with
disco postgres:addon:install, including database creation, user management, and per-project attachment.
- Domain management API. Add, remove, and list domains programmatically via the API and CLI.
- GitHub Apps integration. Connect repos via GitHub Apps instead of deploy keys for better security and easier setup.
- Volume scoping. Volumes are now scoped to projects, preventing accidental cross-project access.
- API key usage tracking. See when each API key was last used to help identify unused keys.
- Cron jobs. Schedule recurring tasks in
disco.json with standard cron syntax, replacing the need for a separate worker.
- API key invites. Generate invite links to let teammates add their own API keys without sharing credentials.
- Volume import/export. Move data between servers with
disco volumes:export and disco volumes:import.
- GitHub webhook secrets. Webhook signatures are now verified to prevent unauthorized deployment triggers.
- Flexible init command. Rewritten
disco init supports Raspberry Pi, AWS EC2, and custom SSH configurations.
- Static site support. Deploy static sites with automatic builds via
type: static in disco.json.
- Node scaling. Scale services across multiple nodes with
disco scale:set.
- Docker registry support. Push images to a private registry for multi-node deployments.
- Pre-deploy hooks. Run commands before deployment starts with
hook:deploy:start:before.
- Better deployment output. Live streaming of build logs with clearer error messages when services fail to start.
- Run commands. Execute one-off commands in your project’s container with
disco run.
- Project deletion. Remove projects cleanly, including their containers, networks, and Caddy config.
- FastAPI migration. Rewrote the daemon from Pyramid to FastAPI for better async support and performance.
- Server-sent events for logs. Replaced websockets with SSE for more reliable log streaming.
- Build output streaming. Deployment logs now stream in real-time instead of appearing all at once.
- Initial release. Core deployment engine with Docker Swarm, Caddy reverse proxy, and GitHub webhooks.
- Multi-service projects. Run multiple services (web, worker, etc.) from a single
disco.json.
- Volumes. Persistent storage that survives deployments, with attach/detach support.
- Environment variables. Set and manage env vars per project via the API.
- Log streaming. Tail logs from any service with filtering by project and service name.
- External syslog. Forward container logs to external syslog servers for aggregation.