Running each component
The client requires a production build (
pnpm build then pnpm start) to serve static files. Use pnpm dev only during development, as it enables Next.js hot-reloading and is not suitable for production.Environment variables
Copy and configure the environment files before starting:- In
server/.env:CLIENT_URL=http://localhost:3000 - In
client/.env.local:NEXT_PUBLIC_SOCKET_URL=http://localhost:3001
NODE_ENV=production in server/.env. Docker sets it for you; a direct Node run does not, and Express only suppresses stack traces in its built-in error responses when the value is exactly production.
Updating an existing deployment
The Docker instructions in Operations assume there is no repository to keep in sync. Running directly with Node means there is, so pull, reinstall, then restart:pm2 restart <name>, systemctl restart <unit>, or your own runner).
Confirm the restart landed by checking that uptime reset: