Server/Cloud-ready Stockfish Docker image based on slim Node Debian image including:
- Stockfish Engine
- A simple Node.js script to communicate with Stockfish Engine via UCI commands through WebSockets
This image is intented for people who want to setup their own Stockfish Server using own server or cloud instance.
Docker Hub prebuilt images are automatically updated on a daily basis.
You have to communicate with this server via WebSockets.
You can send 2 event types: auth:authenticate
and uci:command
.
You can receive 3 event types: auth:authenticated
, auth:unauthenticated
and uci:response
.
All sent and received events look like that: { type: string }
or { type: string, payload: string }
.
Check the client example to understand how that works.
- Example
- Supported tags and respective
Dockerfile
links - Docker Environment Variables
- Docker Arguments
- Sanity Check
- Contribute
You can check a very simple implementation example in examples/simple using this Docker image.
You'll find a README.md
there explaining how to it works and how to run it locally.
If you set the API_TOKEN
, sent socket events will need to be authenticated using this token.
Otherwise anybody can listen and emit to your server.
Undefined by default.
REQUIRED
This is the server exposed port to emit and listen socket events.
./dockerfiles
directory
and not via the Docker Hub images that are prebuilt using the default values declared below.
Architecture target while building:
Default value: x86-64-bmi2
apple-silicon
: Apple silicon ARM64armv7-neon
: ARMv7 32-bit with popcnt and neonarmv7
: ARMv7 32-bitarmv8
: ARMv8 64-bit with popcnt and neone2k
: Elbrus 2000general-32
: unspecified 32-bitgeneral-64
: unspecified 64-bitppc-32
: PPC 32-bitppc-64
: PPC 64-bitriscv64
: RISC-V 64-bitx86-32-sse2
: x86 32-bit with sse2 supportx86-32-sse41-popcnt
: x86 32-bit with sse41 and popcnt supportx86-32
: x86 32-bit generic (with mmx and sse support)x86-64-avx2
: x86 64-bit with avx2 supportx86-64-avx512
: x86 64-bit with avx512 supportx86-64-avxvnni
: x86 64-bit with avxvnni supportx86-64-bmi2
: x86 64-bit with bmi2 supportx86-64-modern
: common modern CPU, currently x86-64-sse41-popcntx86-64-sse3-popcnt
: x86 64-bit with sse3 and popcnt supportx86-64-sse41-popcnt
: x86 64-bit with sse41 and popcnt supportx86-64-ssse3
: x86 64-bit with ssse3 supportx86-64-vnni256
: x86 64-bit with vnni support 256bit widex86-64-vnni512
: x86 64-bit with vnni support 512bit widex86-64
: x86 64-bit generic (with sse2 support)
Once you have deployed Dockfish either locally or remotely, you can check if the server is running by
visiting the /check
path.
You should normally see a plain text body stating: "Dockfish is up and running.".
X
is Stockfish version.
make build-X
Example: make build-15
.
make run-X
Example: make run-15
.