Start
Local demo
The GozWire demo is a developer playground. It is not a consumer chat product and it will not start in production.
The demo is a local developer playground: an Express host and a Svelte UI. It shows how to host @gozwire/core. It is not a consumer chat product, not part of the npm package, and it refuses to start when engine.environment is production.
Identity is simulated with the x-user-id header. The engine still authorizes against membership, rate limits, and policy. The demo does not implement accounts, SSO, or sessions.
Run it
cp .env.example .env
docker compose up --build
Open http://localhost:3000.
On start the server upserts four identities: Alice, Bob, Carol, and Dana. The sidebar Acting as control switches x-user-id.
What the pages are for
| Page | Purpose |
|---|---|
| Dashboard | Health lights for PostgreSQL, Redis, Centrifugo, object storage, moderation, the engine, and outbox counts |
| Chat | Direct chats, channels, forums, send, threads, reactions, receipts, attachments, mute |
| Users | Seeded identities and profile-picture upload |
| Conversations | Create a group, channel, or forum |
| Media | Attachments the current user can see |
| Moderation | Cursor-paginated jobs, preview, allow or block |
| Configuration | Moderation on/off, Web Push, and public engine config |
| Events | Recent outbox rows waiting for Centrifugo (admin) |
| Metrics | Counters from this demo process |
| Benchmarks | Sequential local sends. Not a capacity claim |
A send can succeed while realtime is down: PostgreSQL committed; the outbox retries later.
Public engine config
GET /api/config is a host-safe slice of engine config: limits, policy, and enablement. Credentials, private keys, and internal endpoints are omitted. You can read textPolicy and imagePolicy. You cannot edit thresholds from the UI.
Limits
- Do not put this demo on the public internet with these auth rules.
- The Users page lists seeded identities only.
- The Benchmarks page is a small sequential loop. Use repository
benchmarks/for measured runs.
See installation and troubleshooting.