What is DeployDock?
DeployDock is a monorepo aimed at self-hosted Ubuntu operators who want a web panel for servers, applications, domains, databases, backups, and deployments.
In this page
Architecture
| Layer | Technology | Role |
|---|---|---|
| UI | React + Vite (apps/web) | Browser panel; dev server proxies /api to the API. |
| API | NestJS (apps/api) | REST under /api/v1, Prisma ORM, Swagger. |
| Worker | Node + BullMQ (apps/worker) | Consumes queue panel, job deploy, runs runtime adapters. |
| Data | PostgreSQL | Prisma schema in apps/api/prisma/schema.prisma. |
| Queue | Redis | BullMQ connection; optional disable via PANEL_DISABLE_QUEUE. |
Supporting packages live under packages/* (runtime-adapters, command-runner, config-renderer, metrics-agent, shared-types, …). See Directory layout.
Data and jobs
- Applications store
RuntimeKind,AppType, install paths, deployment history (Deploymentrows). - Creating or re-deploying an application enqueues
deployor completes locally when the queue module is off (PANEL_DISABLE_QUEUE=1).
Safety model
- Sensitive values use AES-256-GCM with
PANEL_SECRETS_KEY. - OS mutations are intended to flow through allowlisted commands (
@deploydock/command-runner). PANEL_DRY_RUN=1reduces risk on demos (especially worker in Docker dev compose).