# Pages ## Root structure - **index.html** — Redirects to `gw.html`. - **Active pages** — `gw.html`, `ugh.html`, `gs.html`, `basic.html` (see table below). - **Shared** — `main.js`, `services-loader.js`, `services-data.json`, `ddate-now`, `assets/`, and per-page CSS/JS. **Chat backend** — `chat-server.js`, `package.json` (Node + `ws`) for the real-time chat on **GS**. ## Active | Page | File | Description | |--------|------------|-------------| | **GW** | `gw.html` | Main GravityWell.xYz site (standard). | | **Ugh**| `ugh.html` | UGH.im branded, high-energy version. | | **GS** | `gs.html` | GalaxySpin.Space experience; includes embedded real-time chat widget. | | **Basic** | `basic.html` | Minimal HTML/CSS, no JS; good for low bandwidth and accessibility. | ## Archive Non-active or alternate versions are under `archive/`: - **archive/standby.html** — Maintenance / standby page. - **archive/unavailable.html** — Unavailable notice (with home link). - **archive/future.html** (+ **archive/future.css**) — “Future” theme; loads `../services-data.json`. - **archive/extra/** — Alternate layouts: Retro, Shelf, Icons, Bloodlust (ugh-bloodlust); `index.html` redirects to `../../gw.html`. - **archive/GSS/** — GalaxySpin.Space theme variants (type0–type7) and `instructions.txt`. - **archive/20260208_234428/** — Dated snapshot of GW and Ugh. - **archive/services.json**, **archive/gs_services.json** — Legacy data (unused by active pages). ## Chat (GS) **gs.html** includes an embedded real-time chat widget (bottom-right). It connects to a WebSocket server that broadcasts messages to all connected clients (no persistence). - **Run the chat server:** From the repo root, `npm install` then `node chat-server.js` (or `npm run chat`). Listens on port **8081** by default; set `CHAT_PORT` to override. - **Docker:** When deployed via the stack at `/opt/stacks/httpsimple`, a second service `chat-server` runs the Node server; the compose file exposes the WebSocket on port **8098**. - **WebSocket URL (frontend):** Configurable so the same page works locally and behind a reverse proxy. - **Default:** `ws://:8098` (or `wss://` if the page is served over HTTPS). Use when the chat server is reachable on port 8098. - **Override:** Set `window.CHAT_WS_URL` before the chat script runs, or set `data-ws-url` on `` (e.g. `data-ws-url="wss://galaxyspin.space/chat-ws"` when proxying).