# Fluxer Chat Server Setup ## Overview Fluxer is a modern, Discord-like messaging platform deployed on st.vish.gg, replacing the previous Stoat Chat installation. It runs as a unified server container on the Seattle VM. ## Quick Reference | Property | Value | |----------|-------| | **Domain** | st.vish.gg | | **Host** | Seattle VM (YOUR_WAN_IP) | | **Repository** | https://github.com/fluxerapp/fluxer | | **Branch** | `refactor` | | **Local Path** | `/root/fluxer` | | **Compose Files** | `compose.yaml` + `compose.override.yaml` | | **Nginx Config** | `/etc/nginx/sites-available/fluxer` | | **SSL Cert** | `/etc/nginx/ssl/st.vish.gg.{crt,key}` (wildcard, expires May 2026) | ## Architecture ### Unified Server Model Fluxer runs as a single `fluxer-server` container that bundles: - Frontend app, REST API, WebSocket gateway, admin panel, media proxy, and S3 storage ### Supporting Services | Service | Purpose | Image | |---------|---------|-------| | valkey | Cache/sessions (Redis-compatible) | `valkey/valkey:8.0.6-alpine` | | meilisearch | Full-text search | `getmeili/meilisearch:v1.14` | | elasticsearch | Alternative search | `elasticsearch:8.19.11` | | livekit | Voice/video calls | `livekit/livekit-server:v1.9.11` | | nats-core | Message broker | `nats:2-alpine` | | nats-jetstream | Persistent streaming | `nats:2-alpine` | ### Network Configuration - **Fluxer server**: `127.0.0.1:8088` (only accessible via nginx) - **Nginx**: Ports 80/443 on the host, terminates SSL - **Subdomains**: `api`, `events`, `files`, `proxy`, `voice` — all routed to fluxer_server on different path prefixes ## Initial Setup ### 1. Clone Repository ```bash cd /root git clone https://github.com/fluxerapp/fluxer.git cd fluxer git checkout refactor ``` ### 2. Configure ```bash # Edit the application config vim config/config.json # Set base domain, S3 credentials, etc. ``` ### 3. Build and Deploy ```bash MEILI_MASTER_KEY= docker compose build fluxer_server MEILI_MASTER_KEY= docker compose up -d ``` ### 4. Verify ```bash curl -fsS http://127.0.0.1:8088/_health # Should return JSON with all services healthy ``` ## Health Check The `/_health` endpoint returns status for all internal services: ```json { "status": "healthy", "services": { "kv": {"status": "healthy"}, "s3": {"status": "healthy"}, "jetstream": {"status": "healthy"}, "mediaProxy": {"status": "healthy"}, "admin": {"status": "healthy"}, "api": {"status": "healthy"}, "app": {"status": "healthy"} } } ``` ## See Also - [Fluxer Deployment Details](fluxer-deployment.md) — full deployment history, maintenance commands, and changelog - [Fluxer Migration Guide](fluxer-migration-guide.md) — migration from Stoat Chat (February 2026) --- **Last Updated**: April 7, 2026 **Status**: Production Running