Skip to main content

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

LayerTechnologyRole
UIReact + Vite (apps/web)Browser panel; dev server proxies /api to the API.
APINestJS (apps/api)REST under /api/v1, Prisma ORM, Swagger.
WorkerNode + BullMQ (apps/worker)Consumes queue panel, job deploy, runs runtime adapters.
DataPostgreSQLPrisma schema in apps/api/prisma/schema.prisma.
QueueRedisBullMQ 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 (Deployment rows).
  • Creating or re-deploying an application enqueues deploy or 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=1 reduces risk on demos (especially worker in Docker dev compose).