Deployment Prerequisites¶
What you need before deploying QS-Bridge.
Infrastructure Requirements¶
QS-Bridge runs on a VPS (Virtual Private Server) that you control. This is a deliberate architectural decision — not a limitation. VPS-only deployment unlocks first-class process management: mods become systemd services with auto-restart, health monitoring, resource limits, port allocation, and log aggregation.
Not supported: Docker, shared hosting, or serverless environments. The platform needs direct access to the filesystem, systemd, and process management.
Minimum Hardware¶
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 4 GB | 8+ GB |
| Disk | 20 GB SSD | 50+ GB SSD |
| Network | 100 Mbps | 1 Gbps |
| OS | Ubuntu 22.04+ / Debian 12+ | Ubuntu 24.04 LTS |
RAM scales with the number of game servers and installed mods. Each ProcessService mod consumes additional memory.
Software Dependencies¶
Required¶
| Software | Version | Purpose |
|---|---|---|
| SpacetimeDB | v1.1+ | Database engine (tables, reducers, subscriptions) |
| Rust | 1.75+ | Build STDB WASM modules |
| Node.js | 22 LTS | API gateway, panel build, wiki tooling |
| Git | 2.x | Version control, deployment |
Optional (depending on features)¶
| Software | Version | Purpose |
|---|---|---|
| Nginx | 1.27+ | Reverse proxy, TLS termination |
| Wiki.js | 2.x | Documentation wiki (wiki.qs-zuq.com) |
| PostgreSQL | 15+ | Wiki.js database |
| MinIO | Latest | Mod registry file storage (S3-compatible) |
| GCC / Clang | 11+ / 14+ | Build libqsbridge.so (C++17) |
| CMake | 3.20+ | Bridge build system |
Install Commands (Ubuntu 24.04)¶
# System packages
sudo apt update && sudo apt install -y \
build-essential cmake git curl wget \
nginx certbot python3-certbot-nginx
# Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add wasm32-unknown-unknown
# Node.js 22 LTS
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
# SpacetimeDB
curl -sSf https://install.spacetimedb.com | sh
Network Requirements¶
Ports¶
| Port | Service | Protocol | Access |
|---|---|---|---|
| 3000 | SpacetimeDB | WebSocket + HTTP | Internal (or panel clients) |
| 3081 | API Gateway | HTTPS | Panel clients |
| 443 | Nginx (TLS) | HTTPS | Public |
| 80 | Nginx (redirect) | HTTP | Public (→ 443) |
| 3001 | Wiki.js (via nginx) | HTTPS | Public |
| 8900-9899 | ProcessService mods | TCP | Internal |
DNS Records¶
| Record | Type | Value |
|---|---|---|
panel.qs-zuq.com |
A | VPS IP |
wiki.qs-zuq.com |
A | VPS IP |
api.qs-zuq.com |
A | VPS IP (optional, if gateway is separate) |
Hosting Provider Integration¶
BisectHosting (Primary Target)¶
QS-Bridge integrates with BisectHosting's Starbase API for server lifecycle management. You need:
| Requirement | How to Get |
|---|---|
| BisectHosting account | bisecthosting.com |
| API key | BisectHosting control panel → API section |
| Server UUID(s) | Listed in your BisectHosting dashboard |
The API key maps to one account that owns all servers. ServerRegistry.hosting_id links each QS-Bridge server row to its BisectHosting server UUID.
Security: The API key is stored server-side in the gateway's
.envfile. The React panel never touches hosting secrets — all lifecycle actions go through the API gateway.
Environment Variables¶
Create a .env file for each service. See Configuration Reference for the complete list.
Essential variables:
# SpacetimeDB
STDB_HOST=ws://localhost:3000
STDB_MODULE=qs-bridge
# API Gateway
GATEWAY_PORT=3081
GATEWAY_URL=https://panel.qs-zuq.com
JWT_SECRET=<generate-a-64-char-random-string>
STDB_HOST=ws://localhost:3000
STDB_TOKEN=<spacetimedb-auth-token>
# BisectHosting (optional)
BISECT_API_KEY=<your-api-key>
# Bridge (.so)
QSB_SERVER_ID=server-01
QSB_STDB_HOST=ws://localhost:3000
QSB_STDB_MODULE=qs-bridge
QSB_HMAC_SECRET=<generate-a-64-char-random-string>
Related Pages¶
- Installation — step-by-step deployment guide
- BisectHosting — hosting integration details
- Configuration — complete environment variable reference
- Troubleshooting — common issues and solutions