DeployDock
DeployDock is a self-hosted deployment control panel for developers and small teams already running apps on VPS servers. It automates the workflow you already have — connect servers, register apps, run one-click deploys, stream logs, restart services, and roll back failed releases — through an on-demand SSH bridge or an outbound-only Go agent that health-checks each new container before switching traffic.
Focus
Deployment automation, secure server access, release pipeline state
Category
DevOps / Backend / Developer Tools
Stack
FastAPI, PostgreSQL, React, Vite, Go, Docker

The problem
Automating deployments on servers people already run, without forcing a new runtime — while keeping SSH access pinned and audited, secrets encrypted, and every release health-gated before traffic switches.
Architecture
Core Features
- One-click deploys with a 12-state pipeline and one-click rollback
- Two execution paths: on-demand SSH bridge or outbound-only Go agent
- Live deployment log streaming over SSE
- GitHub webhooks that auto-deploy and queue behind an active release
- SSH keys and environment variables encrypted at rest with rotatable key ids
- Agent registration with heartbeats and a command queue for agent-driven deploys
What I Learned
- Automating a workflow people already trust beats asking them to migrate to a new runtime.
- Deployments need an explicit state pipeline, not just streamed command output.
- Health-gated traffic switches make rollback boring, and boring is the goal for releases.
Write-ups
A deploy is a state machine, not a command
Why DeployDock tracks explicit release states instead of streaming shell output, and what health-gated cutover actually buys you.
- #deployments
- #architecture
- #go