Skip to main content

Manual install

“Manual” here means you build artifacts and configure .env yourself—either fully on bare metal or hybrid (Docker for DB + local processes).

In this page

Clone and install dependencies

git clone https://github.com/gwalesh/deploy-dock.git
cd deploy-dock
corepack enable && corepack prepare pnpm@9.15.0 --activate
pnpm install

Configure the API

cp apps/api/.env.example apps/api/.env

Edit apps/api/.env and set at minimum:

  • DATABASE_URL
  • JWT_ACCESS_SECRET, PANEL_SECRETS_KEY
  • PANEL_WEB_ORIGIN (must match the browser origin of the UI)
  • Optional: PANEL_DISABLE_QUEUE=1 if Redis is unavailable (deploy jobs complete inline without worker)

Database migrations and seed

pnpm --filter @deploydock/api exec prisma migrate deploy
pnpm --filter @deploydock/api exec prisma db seed

Development mode

pnpm dev
  • UI: Vite default (5173), proxies /api to the API.
  • API: 4000 — Swagger at http://127.0.0.1:4000/api/docs
  • First run: open http://127.0.0.1:5173/auth/setup to register the superadmin and first server.

Production-style Docker (nginx :8080)

From monorepo README:

pnpm install
pnpm --filter @deploydock/web build
docker compose -f deploy/docker/docker-compose.prod.yml up -d --build
docker compose -f deploy/docker/docker-compose.prod.yml exec -T api sh -lc "cd /srv/apps/api && pnpm exec prisma migrate deploy && pnpm exec prisma db seed"
  • Browser: http://localhost:8080
  • Nginx serves apps/web/dist and proxies /api/ to the API container (deploy/docker/nginx.panel.conf).
  • Set JWT_ACCESS_SECRET, PANEL_SECRETS_KEY, and PANEL_WEB_ORIGIN for real deployments (compose supports ${VAR:-default} patterns).

Installer paths on Ubuntu (skeleton) remain under /opt/deploy-dock and /etc/deploy-dock as in scripts/install/install.sh.