A mobile-friendly, self-hosted web application for tracking Elo ratings, match results, and rankings for 1v1 and 2v2 games.
This project is packaged as an all-in-one Docker Compose deployment, utilizing Rust for the backend, Vite React for the frontend, SQLite for data storage, Nginx to serve the frontend, and Cloudflare Tunnels (cloudflared) to securely expose the application to your custom domain.
- Mobile-First Design: Optimized specifically for mobile screens with a clean, bottom-navigation bar layout.
- Record Matches: Quickly log 1v1 or 2v2 games by selecting players and declaring the winning team.
- Live Leaderboard: View updated player rankings, Elo ratings, and win/loss records. Easily add new players directly from the dashboard.
- Match History: Scroll through past matches with date, time, and winner details.
| Leaderboard | Record Match | Match History |
|---|---|---|
- Frontend: Vite React
- Backend: Rust (API development)
- Database: SQLite
- Frontend Server: Nginx
- Tunneling: Cloudflare Tunnel (
cloudflared) - Deployment: Docker & Docker Compose
- Docker and Docker Compose installed on your host machine.
- A Cloudflare account with a configured Tunnel token.
-
Clone the Repository:
git clone https://github.com/ar00n/elotracker.git cd elo-tracker -
Configure Frontend Routing: Place your
.htaccessfile inside thefrontenddirectory.# Add your configuration to frontend/.htaccess -
Set Up Environment Variables: Create a
.envfile in the root directory of the project and add your Cloudflare Tunnel token:CLOUDFLARE_TOKEN=your_cloudflare_tunnel_token_here
-
Launch the Application: Start the services in detached mode using Docker Compose:
docker compose up -d
Once the containers are running, Cloudflare will establish the tunnel and route traffic from your configured domain to the Nginx frontend container.