Directory layout
In this page
Monorepo (deploy-dock)
| Path | Role |
|---|---|
apps/web | React + Vite UI; pnpm --filter @deploydock/web build writes dist/ for nginx. |
apps/api | NestJS API, Prisma schema/migrations, Swagger at /api/docs. |
apps/worker | BullMQ worker; queue name panel, job name deploy. |
packages/command-runner | Allowlisted spawn runner used by adapters / bootstrap. |
packages/config-renderer | Nginx / systemd template helpers. |
packages/runtime-adapters | Runtime adapter registry (node, php, plus noop placeholders). |
packages/metrics-agent | Host metrics snapshot for monitoring API. |
packages/shared-types | Shared DTO-style types. |
packages/ui-bridge | Placeholder for future codegen. |
packages/create-deploy-dock-panel | npm initializer that clones the template repo (see monorepo README). |
deploy/docker | docker-compose.yml, docker-compose.prod.yml, Dockerfiles, nginx.panel.conf. |
deploy/systemd | deploy-dock-api.service, deploy-dock-worker.service unit templates. |
scripts/panel.sh | panel CLI dispatcher (install, update, doctor, …). |
scripts/install, scripts/update, scripts/doctor, scripts/backup | Shell scripts invoked by panel. |
docs/openapi | Notes for exporting OpenAPI from a running API. |
Package names remain @deploydock/* in package.json filters as shipped in the repository.
Production-style paths (Ubuntu)
From scripts/install/install.sh and monorepo README (exact strings in repo today):
| Path | Purpose |
|---|---|
/opt/deploy-dock | INSTALL_ROOT: current, releases, shared layout. |
/etc/deploy-dock | Config directory; api.env expected for API/worker EnvironmentFile. |
/var/lib/deploy-dock | Data directory created by installer skeleton. |
/var/log/deploy-dock | Log directory placeholder. |
| System user | Default deploydock (PANEL_USER). |
| systemd units | deploy-dock-api.service, deploy-dock-worker.service under deploy/systemd/. |
Default application root in API: PANEL_APPS_ROOT default /var/www/deploy-dock-apps (apps/api/.env.example).
Docker build contexts
Compose files set build.context to the repository root (../.. from deploy/docker/) with dockerfile: deploy/docker/Dockerfile.api or Dockerfile.worker. Migrations in prod README run inside the API container at /srv/apps/api.