#
Prod
The production command runs the built application. It requires bun run build first.
#
Running
bun run prod # Run server and client preview
bun run prod server # Server only (port 3000)
bun run prod client # Client preview only (port 4173)
The server serves both the API and static files on port 3000. The client preview on port 4173 is for testing the frontend build independently.
#
Environment
Production mode uses .env.production:
NODE_ENV=production
DATABASE_URL=postgresql://user:password@prod-host:5432/quickdapp
SESSION_ENCRYPTION_KEY=your_32_character_production_key
#
How it Works
bun run prod runs dist/server/binary.js, which sets production environment defaults (via EMBEDDED_ENV) before loading the server. This ensures NODE_ENV=production is set before any configuration is evaluated.
The binary entry point also extracts bundled static assets to a temp directory and serves them via the static file plugin.
#
Binary vs bun run prod
bun run prod runs binary.js with Bun. Use this for local testing or when Bun is installed on the server.
Binary deployment uses self-contained executables with no dependencies:
./dist/binaries/quickdapp-linux-x64
For production servers, prefer the binary approach for simplicity and reliability.
#
Testing Production
bun run build
NODE_ENV=production bun run prod
# Verify
curl http://localhost:3000/health