Orbit documentation: docs, wiki and FAQ pages

This commit is contained in:
reverse 2026-06-20 06:34:12 +00:00
commit bcbe5fff22
No known key found for this signature in database
18 changed files with 714 additions and 0 deletions

35
docs/deploy.md Normal file
View file

@ -0,0 +1,35 @@
# Build & deploy
Orbit builds to a **static** `dist/` you can serve from any web server.
```sh
npm run build # → dist/ (index.html + hashed assets + config.json + sw.js)
```
## Serving
Serve `dist/` under a path — conventionally `/app/`. The build's `vite.config.ts` sets
`base: '/app/'`. Example nginx:
```nginx
location /app/assets/ { root /var/www/site; expires 7d; add_header Cache-Control "immutable"; }
location = /app/index.html { root /var/www/site; add_header Cache-Control "no-cache"; }
location /app/ { root /var/www/site; try_files $uri $uri/ /app/index.html; }
```
- **Hashed assets** are immutable → cache forever.
- **`index.html`** is `no-cache` so new builds load immediately.
- **`config.json`** is served *network-first* by the service worker, so edits apply without a rebuild.
## Origin allow-list
The IRC WebSocket server must allow the **Origin** Orbit is served from (e.g. InspIRCd
`<wsorigin allow="https://chat.example.org">`). Otherwise the socket is rejected on connect.
## Service worker
On each deploy, bump the cache version in `public/sw.js` (`const CACHE = 'app-vN'`). The worker
calls `skipWaiting()` + `clients.claim()` and fires `controllerchange`, so existing PWA installs
auto-reload to the new build.
For an automated pipeline, see [Push-to-deploy](/docs/push-to-deploy/).