Remote Solver Setup
IkaSolver's remote solving feature lets you offload the heavy computation of running a poker solver to a separate machine - typically a high-RAM server or cloud instance - while you browse results and interact with the GUI on your local computer. This is especially useful for large trees that require more RAM than your laptop has available.
How it Works
The remote solver runs as a WebSocket server on the server machine. Your local IkaSolver GUI connects to it over the network, sends the tree and solver configuration, and receives live stats and results back. The solving happens entirely on the server; your local machine only needs enough resources to display the GUI.
Starting the Server
On the server machine, run:
ikasolver --serveThis starts the WebSocket server on the default port 9876. You can specify a different port:
ikasolver --serve 8080Authentication Token
By default, the server generates a random 32-character authentication token and prints it to the console:
IkaSolver v1.0.0
Auth token: aB3xK9mP2qR7sT4uV6wY8zA1bC5dE0f
Listening on 0.0.0.0:9876You'll need this token to connect from the GUI. Copy it and enter it in the connection settings.
To use a specific token instead of a random one, pass it with --token:
ikasolver --serve --token my-secret-tokenThis is useful for scripted deployments or when you want a memorable token.
Security Note
ws://). If you're connecting over an untrusted network (e.g., the internet rather than a local network), use an SSH tunnel or VPN to encrypt the traffic.Stopping the Server
Press Ctrl+C to shut down the server. Any active solve will be terminated.
Console Output
While running, the server prints status information to the console:
- Client connections -
Client connected from 192.168.1.50:54321 - Live solver stats - Iterations, speed, elapsed time, volatility, memory usage, and player EVs - updated in real time on a single overwriting line
- Client disconnections -
Client disconnected, ready for new connection - Errors - Authentication failures, WebSocket errors, solver errors
The server accepts one client at a time. If a client disconnects and reconnects, the solver state is preserved - the reconnecting client picks up where it left off. A new client can connect after the previous one disconnects.
System Requirements for the Server
RAM
RAM is the most important resource for the solver. Requirements depend on the tree size, abstraction settings, and number of streets:
- Small trees (heads-up preflop, few bet sizes): 2-8 GB
- Medium trees (6-max preflop, moderate bet sizes): 8-32 GB
- Large trees (full postflop, many bet sizes): 32-128 GB+
Use the Estimate RAM button in the GUI's Settings panel to get an accurate prediction before starting a solve. The server will abort on Linux if /proc/meminfo reports insufficient available RAM.
CPU
More threads means faster solving. The solver scales well across cores:
- Minimum - 2-4 cores
- Recommended - 8-16 cores for comfortable solving speed
- Ideal - 32+ cores for large trees (dedicated cloud instances)
The number of threads is configured in the solver settings before starting the solve - you don't set threads on the server command line. However, the server machine must have enough physical cores to benefit from the thread count.
Network
The initial tree transfer can be several hundred megabytes for large trees. After that, only solver stats and query results travel over the connection, which is lightweight. A stable connection is more important than bandwidth - if the connection drops, you'll need to reconnect (though solver state is preserved on the server).
Bounty Configuration
To run a bounty solve remotely, pass the --squid-config flag with a path to your bounty configuration JSON file:
ikasolver --serve --squid-config /path/to/bounty-config.jsonSee bounty mode for details on bounty configuration.
Next Steps
- Connecting - Connect to the remote server from the GUI