A real-time multiplayer gaming platform featuring UNO and XO (Tic-Tac-Toe) games with WebSocket-based synchronization, QR code room sharing, and spectator support.
QRFun supports two database modes:
By default, QRFun uses an embedded SQLite database requiring no external database service. Data is stored at ${DATA_PATH}/qrfun.db (default: ./data/qrfun.db).
Set the DATABASE_URL environment variable to use PostgreSQL instead:
DATABASE_URL=postgresql://user:pass@host:5432/qrfun
The application runs seamlessly in Replit with no additional configuration:
npm run dev
This starts the development server with hot-reloading on the Replit-assigned port. In Replit, PostgreSQL is automatically provisioned.
npm run build
npm start
The application is fully Docker-ready for deployment on Docker Hub, Unraid, and other container platforms.
docker build -t qrfun .
docker run -d \
-p 4322:4322 \
-v /path/to/data:/app/data \
--name qrfun \
qrfun
No database configuration needed - SQLite is used automatically.
docker run -d \
-p 4322:4322 \
-v /path/to/data:/app/data \
-e DATABASE_URL=postgresql://user:pass@host:5432/qrfun \
--name qrfun \
qrfun
version: '3.8'
services:
qrfun:
build: .
ports:
- "4322:4322"
volumes:
- ./data:/app/data
environment:
- NODE_ENV=production
- PORT=4322
restart: unless-stopped
version: '3.8'
services:
qrfun:
build: .
ports:
- "4322:4322"
volumes:
- ./data:/app/data
environment:
- NODE_ENV=production
- PORT=4322
- DATABASE_URL=postgresql://user:pass@db:5432/qrfun
depends_on:
- db
restart: unless-stopped
db:
image: postgres:15
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=pass
- POSTGRES_DB=qrfun
volumes:
- pgdata:/var/lib/postgresql/data
restart: unless-stopped
volumes:
pgdata:
4322 → 4322/mnt/user/appdata/qrfun → /app/dataNo database configuration required - SQLite database is created automatically in the mapped volume.
| Variable | Default | Description |
|---|---|---|
PORT | 4322 | Server port (Replit overrides automatically) |
NODE_ENV | development | Environment mode |
DATA_PATH | ./data | Persistent data directory (SQLite database location) |
DATABASE_URL | - | PostgreSQL connection string (if set, uses PostgreSQL instead of SQLite) |
SESSION_SECRET | - | Session encryption secret |
SENDGRID_API_KEY | - | SendGrid API key (optional) |
| Platform | Status | Database | Notes |
|---|---|---|---|
| Replit | ✅ Full Support | PostgreSQL | Development and production |
| Docker | ✅ Full Support | SQLite/PostgreSQL | Zero-config with SQLite |
| Unraid 7.0.1 | ✅ Full Support | SQLite | Zero-touch deployment |
| Local Node.js | ✅ Full Support | SQLite/PostgreSQL | Direct execution |
MIT
Content type
Image
Digest
sha256:db0e4938f…
Size
139.9 MB
Last updated
9 months ago
docker pull muaeabudhabi/qrfun