Self-host your SaaS with Docker and Dokploy

Run a ShipAny app on your own server — build the Docker image (with the database provider baked in), run it, or deploy it through Dokploy, an open-source Vercel-style panel.

Last updated: Oct 8, 2026

Every ShipAny project includes a production Dockerfile, so you can run it on any server or container platform. Dokploy gives you a Vercel-like dashboard on your own machine: Git-based deploys, domains and HTTPS.

Run with Docker

ShipAny TanStack's image is a multi-stage build on node:22-alpine that runs as a non-root user on port 3000. The database provider is chosen at build time:

docker build --build-arg DATABASE_PROVIDER=postgres -t my-app .
docker run -p 3000:3000 --env-file .env.production my-app

Without Docker, pnpm build produces a self-contained server you can run with node .output/server/index.mjs.

Deploy with Dokploy

  1. Get a server — 4 cores, 8 GB RAM and Ubuntu 24.04 is a comfortable starting point.
  2. Install Dokploy: curl -sSL https://dokploy.com/install.sh | sh, then open http://<server-ip>:3000 and bind a domain to the panel.
  3. Create an application from your private Git repository (or a pre-built image) and let Dokploy build it with the project's Dockerfile.
  4. Add the environment variables (DATABASE_URL, AUTH_SECRET, app URL…), attach your domain, and deploy.

Tips

  • Rebuild the image when you change DATABASE_PROVIDER — it's baked in at build time.
  • Configure storage (R2/S3) if you run more than one container; local uploads aren't shared between instances.
  • Put the database on a private network with the app and don't expose its port publicly.

Related reading

More in Integrations

Ship your AI SaaS with ShipAny

Auth, payments, credits, i18n and admin are pre-wired — start from a production-ready template and focus on your product.