TurboPanel Docs
Development

Website deployment

Contributor reference for TurboPanel/website. Production traffic is vanilla Next.js 16 (output: 'standalone', node server.js) behind Caddy with Let's Encrypt on alpha.turbopanel.net. This is a stopgap until the marketing site can be a TurboPanel native app.

Prerequisites

  • Node.js 26.7.0 or newer (engines.node in package.json; CI and the VPS pin the same release)
  • pnpm (see packageManager in package.json). pnpm-workspace.yaml must allowBuilds Next native postinstalls (esbuild, sharp, …) or pnpm 12 fails with ERR_PNPM_IGNORED_BUILDS.

Local preview

Terminal
cd ~/website
pnpm install
pnpm dev    # http://localhost:19820

Co-located dev: turbopanel-website.service runs the same dev server; logs under /var/log/turbopanel/website/. Contributor Vagrant stays on next dev — do not point it at the VPS.

Production build

Terminal
pnpm build
pnpm check:docs-ssr

pnpm build is vanilla next build (Turbopack) and writes a standalone Node server under .next/standalone/.

Deploy (VPS)

GitHub push webhooks rebuild one environment. Payload URL: https://alpha.turbopanel.net/hooks/github.

BranchHostnameNotes
trunktesting.turbopanel.ioDefault development drop
stagingstaging.turbopanel.io
liveturbopanel.iowww 301s to the apex

Two Linux users on the box: alpha owns Caddy, Let's Encrypt (noc@turbopanel.io), and the webhook HMAC secret; website owns the git clones and Next processes. Shared Node lives at /opt/node. Operator scripts and the Caddyfile are in scripts/vps/.

Control-plane URLs and API-reference server labels derive from the request host through src/lib/control-plane-hosts.ts; NEXT_PUBLIC_SITE_URL is injected at build time inside deploy.sh.

Docs content

  • MDX under docs/ — Fumadocs (source.config.ts)
  • Edit links resolve via src/lib/docs-github.ts (TurboPanel/website, branch trunk)
  • Navigation: per-folder meta.json
Edit on GitHub

Last updated on

On this page