This project provides a QuakeJS server with a stats tracking system using Docker and Traefik as a reverse proxy.
It includes:
โ
QuakeJS Server for hosting matches.
โ
Stats Tracker to monitor and log player scores.
โ
Traefik Proxy to handle routing and expose the services.
๐ quakejs-stats
โโโ LICENSE # License file for the project
โโโ README.md # Documentation on how to set up and use the project
โโโ ๐ build # Contains build-related files for the project
โ โโโ Dockerfile # Dockerfile for building the quakejs-stats service
โ โโโ ๐ code # Python application and monitoring scripts
โ โ โโโ app.py # Main Flask application (if applicable)
โ โ โโโ monitor.py # QuakeJS match monitoring and stats tracking script
โ โ โโโ ๐ templates # HTML templates for the web interface
โ โ โโโ index.html # Example index page for web interface
โ โโโ requirements.txt # Python dependencies for the stats tracker
โ โโโ supervisord.conf # Supervisor configuration for managing processes
โโโ ๐ data # Persistent storage for the application
โ โโโ ๐ db # SQLite database storage for match statistics
โ โโโ ๐ dynamic # Dynamic configuration files for Traefik
โ โโโ ๐ logs # Log files directory for services
โ โโโ server.cfg # Configuration file for the QuakeJS server
โโโ docker-compose.yaml # Docker Compose configuration to run all services
Before running the project, make sure you have:
๐น Docker installed: Install Docker
๐น Docker Compose installed: Install Docker Compose
git clone https://github.com/yourusername/quakejs-server.git
cd quakejs-server
Create a .env
file to override default settings if needed:
SERVER_IP=quakejs-proxy
SERVER_PORT=27960
RCON_PASSWORD=5tr0nG_P@ssw0rd!
TRACKED_PLAYERS=Visor,Sarge,Major
MATCH_TIMEOUT=3600
DB_PATH=/app/db/quake_stats.db
RUNNING=True
Ensure necessary directories exist for persistent data:
mkdir -p data/db
chmod -R 777 data/db
Run the following command to build and start the containers:
docker compose up --build -d
๐น --build
ensures the images are rebuilt.
๐น -d
runs the containers in detached mode (background).
Check running containers:
docker compose ps
Service | URL or Command |
---|---|
QuakeJS Game Server | quakejs.example.com (or IP) |
Stats Tracker API | http://quakejs-stats.example.com |
Traefik Dashboard | http://traefik-dashboard.example.com |
docker logs -f quakejs-stats
docker compose restart quakejs-stats
docker compose down
Modify docker-compose.yaml
if needed:
- Modify
environment
variables for different settings.
Example: Change tracked players in quakejs-stats
:
environment:
- TRACKED_PLAYERS=player1,player2,player3
Issue | Solution |
---|---|
sqlite3.OperationalError: unable to open database file |
Ensure data/db exists and has write permissions (chmod -R 777 data/db ). |
QuakeJS not accessible | Check firewall settings and ensure ports are correctly exposed. |
Logs not showing | Run docker logs -f quakejs-stats to debug. |
This project is open-source under the MIT License.
You're now ready to run and track QuakeJS matches using this system! ๐ฎ๐
If you encounter any issues, feel free to open an issue or contribute.