RoyalTest is a browser-based, private Texas Hold'em game with:
- a host screen (
/host) for table control and game flow - a player screen (
/join) for mobile-friendly actions - real-time updates powered by Flask-SocketIO
Pulls the pre-built image from GitHub Container Registry and runs it locally. No cloning required.
docker pull ghcr.io/idobaruch7/royaltest:nightly
docker run --rm -p 5000:5000 ghcr.io/idobaruch7/royaltest:nightlyThen open:
- Host:
http://localhost:5000/host - Join:
http://localhost:5000/join - Landing page:
http://localhost:5000/
If players join from other devices on your network, use your computer's LAN IP instead of localhost.
Clone the repo, then build and run from source:
git clone https://github.com/idobaruch7/royaltest.git
cd royaltest
docker compose up --buildThis builds from Dockerfile, starts the container, publishes port 5000, and persists SQLite data in a named volume.
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
pip install -r requirements.txtpython3 server/app.pyThen open:
- Host:
http://localhost:5000/host - Join:
http://localhost:5000/join - Landing page:
http://localhost:5000/
You can configure runtime behavior with environment variables:
ROYALTEST_SECRET_KEY: Flask secret key (default: dev fallback)ROYALTEST_HOST: bind host (default:0.0.0.0)ROYALTEST_PORT: bind port (default:5000)ROYALTEST_DEBUG: debug mode (1/true/yes/onto enable, default off)
Example:
ROYALTEST_SECRET_KEY="change-me" ROYALTEST_DEBUG=1 python3 server/app.py- Open
/hoston the main display. - Players join from their phones using
/join. - Host starts the game when enough players are seated.
- New joiners during a hand are queued for the next hand.
server/app.py- Flask + Socket.IO server and routesserver/game_engine.py- poker engine and hand/state logicserver/bot_player.py- bot and player decision modelserver/db.py- SQLite helperspublic/host/index.html- host UIpublic/player/index.html- player UIpublic/index.html- landing page
python3 -m compileall serverruff check servermypy server- This project is designed for local/private play.
game.dbis intentionally ignored by git.

