Overview

Welcome to the Poker Engine — a full-featured poker platform with cash games, tournaments, bots, payment processing, and a developer integration API.

What is the Poker Engine?

The Poker Engine is a complete, self-hosted poker platform that includes:

  • Cash game tables — Texas Hold’em, Omaha, Omaha Hi-Lo, Short Deck, 7-Card Stud, and more
  • Tournament system — Multi-table tournaments (MTT), Sit & Go, and Satellite tournaments with progressive blind levels
  • Admin panel — Full management of players, tables, bots, payments, bonuses, agents, and settings
  • Bot players — Configurable AI opponents with realistic play styles and timing
  • Payment providers — Stripe, cryptocurrency (CoinPayments), PayPal, Skrill, Neteller, MuchBetter, ecoPayz, and bank transfer
  • Developer Integration API — Embed the poker platform into external products with SSO, balance sync, and webhooks
  • Mobile app — React Native app in packages/mobile/ sharing business logic via the shared package
  • Internationalisation — Multi-language support (i18n) for both admin and player-facing interfaces

First Deployment

If you are setting up the platform for the first time, follow these steps:

1. Deploy the server

See Deployment Guide for Docker-based deployment instructions.

The recommended setup uses Docker Compose with:

  • PostgreSQL database
  • Redis
  • Node.js backend (port 3000)
  • Nginx, which serves the React frontend and handles SSL

2. Configure environment variables

Copy .env.prod.example to .env.prod and set the required variables:

VariableDescription
LICENSE_KEYYour license key, from your purchase confirmation email
LICENSE_DOMAINThe domain players use, for example poker.example.com
POSTGRES_PASSWORDDatabase password
REDIS_PASSWORDRedis password
JWT_ACCESS_SECRETSecret for signing access tokens (min 64 chars)
JWT_REFRESH_SECRETSecret for signing refresh tokens (min 64 chars)
JWT_2FA_TEMP_SECRETSecret for 2FA temporary tokens (min 64 chars)
ADMIN_INITIAL_PASSWORDFirst-install password for the bootstrap admin account; required outside explicit development/test environments when the database is empty
CSRF_SECRETSecret for CSRF tokens (min 32 chars)
ENCRYPTION_KEYEncryption key for sensitive data at rest (exactly 64 hex chars); generate with openssl rand -hex 32
CORS_ORIGINSComma-separated list of allowed origins

BCRYPT_ROUNDS sets the password hashing cost (default: 12).

Game settings, SMTP, payment provider keys, rake, and feature flags are not environment variables — they are configured through the Admin Panel after deployment.

3. Run the installer

./install.sh

The installer validates .env.prod, verifies your license, loads the signed Docker image, runs database migrations, and starts the services.

On first startup against an empty production or staging database, the app creates the admin account with ADMIN_INITIAL_PASSWORD. Use a unique password from your password manager. The bootstrap process will fail closed rather than create a privileged account with a shared default.

4. Access the admin panel

Navigate to https://your-domain.com/admin and log in with:

  • Username: admin
  • Password: the value you set in ADMIN_INITIAL_PASSWORD

Change the password after first login under Users, in the admin’s edit form, if your operational policy requires rotation.

First Steps in the Admin Panel

Once logged in, configure the platform in this order:

1. Settings

Go to Settings and configure these tabs:

  • Server — URLs, paths, emails, timezone, and SMTP so system emails are delivered
  • General — avatars, lobby melody, SEO
  • Game — timings, rake, bots, chat
  • Features — enable/disable features like Developer API, registration, 2FA

2. Payment providers

Go to Settings → Cashier and select Add Provider to set up at least one payment provider:

  • Add your Stripe API keys for credit card processing
  • Or configure Coinpayments for cryptocurrency deposits
  • Turn deposits and withdrawals on or off per provider

See Cashier & Payments for details.

3. Tables

Go to Tables and create your first cash game table:

  • Choose a game type and betting structure (No Limit, Pot Limit, Fixed Limit)
  • Set the stake level (small blind / big blind)
  • Apply a table style (manage them under Table Styles)

See Tables for details.

4. Bots (optional)

Go to Bots Management and use Scheduler to automatically fill tables with AI opponents. Configure play styles under Strategy Profiles.

See Bots for details.

5. Tournaments (optional)

Go to Tournaments to create your first tournament or Sit & Go template. Set buy-ins, blind structure, prize distribution, and registration windows.

See Tournaments for details.

Player Access

Players access the platform at https://your-domain.com. They can:

  • Register an account and verify their email
  • Browse the lobby and join cash game tables
  • Register for tournaments
  • Deposit and withdraw funds via the Cashier

Developer Integration

If you want to embed the poker platform into an existing product:

  1. Enable Developer API in Settings → Features. It requires an Enterprise license
  2. Create a partner in Developer API → Partners
  3. Generate an API key with the required scopes
  4. Follow the Integration API guide

Where to Go Next

GoalGuide
Day-to-day platform managementAdmin Guide
Integrate the platform into your productDeveloper API
Extend or customise the codebaseDeveloper Guide
Production deployment and scalingDeployment Guide
Troubleshooting operational issuesSee Admin → Common Workflows
Try the live demo Pricing

Have questions about Poker Engine? We reply fast.