This checklist is the fastest path to getting the multiplayer / Socket.io backend live in production while keeping the static frontend on bobsgame.com.
bobsgame.comserves the static web appws.bobsgame.comserves the Node/Socket.io backend- frontend build points to
https://ws.bobsgame.com
- Static frontend on
bobsgame.comis already live. https://bobsgame.com/socket.io/...currently returns404.server/app.jsnow exists as a Passenger-friendly Node startup file.- Backend now exposes:
GET /→ plain-text running messageGET /healthz→ JSON health payload
- Open DreamHost panel.
- Create a subdomain:
- Domain:
ws.bobsgame.com
- Domain:
- Configure it as a website / web directory rooted at:
~/bobsgame.com/server
- If DreamHost offers Node/Passenger app settings for the subdomain:
- choose Node app hosting
- set startup file to
app.js - set Node version to the newest available version supported by DreamHost
Under ~/bobsgame.com/server/ you should now have at least:
app.jsindex.jspackage.jsonnode_modules/(or install them if missing)
After the subdomain is configured, verify these in a browser or with curl:
curl -i https://ws.bobsgame.com/
curl -i https://ws.bobsgame.com/healthz
curl -i "https://ws.bobsgame.com/socket.io/?EIO=4&transport=polling"Expected:
/returns200/healthzreturns JSON withok: true/socket.io/...should stop returning Apache404
Once the backend host is live, rebuild the frontend with:
VITE_SERVER_URL=https://ws.bobsgame.com npm run buildThen redeploy the static frontend to bobsgame.com.
SSH in and run:
cd ~/bobsgame.com/server
npm installIf npm is not in shell PATH but DreamHost Node hosting works through Passenger, use the DreamHost panel tools/documentation for Node app dependency install or locate the full npm path.
- subdomain is probably serving Apache static files only
- Passenger/Node app is not attached yet
- Node app is starting but failing during boot
- inspect DreamHost app logs / Passenger logs
- Socket.io path/proxying is still not reaching the running server correctly
- verify the Node app is actually using
server/index.jsviaapp.js
- Configure
ws.bobsgame.com - Verify
https://ws.bobsgame.com/healthz - Rebuild frontend with
VITE_SERVER_URL=https://ws.bobsgame.com - Redeploy frontend
- Test multiplayer from
bobsgame.com