{"id":15853883,"url":"https://github.com/ivangabriele/dockfish","last_synced_at":"2025-03-15T21:31:02.594Z","repository":{"id":155914228,"uuid":"632766464","full_name":"ivangabriele/dockfish","owner":"ivangabriele","description":"Server/Cloud-ready Stockfish Docker Image.","archived":false,"fork":false,"pushed_at":"2025-02-19T17:06:11.000Z","size":153,"stargazers_count":8,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-27T04:11:27.711Z","etag":null,"topics":["aws","azure","chess","chess-engine","cloud","docker","google-cloud","server","socket","sockets","stockfish","uci","vps","websocket","websockets"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivangabriele.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-26T04:59:09.000Z","updated_at":"2025-01-26T20:07:38.000Z","dependencies_parsed_at":null,"dependency_job_id":"fe5ab650-fb46-4381-a3b0-e85caa6bddbc","html_url":"https://github.com/ivangabriele/dockfish","commit_stats":{"total_commits":22,"total_committers":2,"mean_commits":11.0,"dds":0.2272727272727273,"last_synced_commit":"893ba9e1af3f35171dd2ca49009365bc1b96cee0"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Fdockfish","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Fdockfish/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Fdockfish/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivangabriele%2Fdockfish/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivangabriele","download_url":"https://codeload.github.com/ivangabriele/dockfish/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243792343,"owners_count":20348626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","azure","chess","chess-engine","cloud","docker","google-cloud","server","socket","sockets","stockfish","uci","vps","websocket","websockets"],"created_at":"2024-10-05T19:23:28.097Z","updated_at":"2025-03-15T21:31:02.144Z","avatar_url":"https://github.com/ivangabriele.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DockFish - Stockfish Server Docker Image\n\n[![img-docker]][link-docker]\n[![img-github-actions]][link-github-actions]\n\nServer/Cloud-ready Stockfish Docker image based on [slim Node Debian][link-docker-node] image including:\n\n- [Stockfish Engine][link-stockfish]\n- A simple [Node.js script](https://github.com/ivangabriele/dockfish/blob/main/server/index.mjs)\n  to communicate with Stockfish Engine via UCI commands through WebSockets\n\nThis image is intented for people who want to setup their own Stockfish Server using own server or cloud instance.\n\n[Docker Hub prebuilt images][link-docker] are automatically updated on a daily basis.\n\nYou have to communicate with this server via WebSockets.  \nYou can send 2 event types: `auth:authenticate` and `uci:command`.  \nYou can receive 3 event types: `auth:authenticated`, `auth:unauthenticated` and `uci:response`.  \nAll sent and received events look like that: `{ type: string }` or `{ type: string, payload: string }`.\n\n[Check the client example][link-example] to understand how that works.\n\n---\n\n- [Example](#example)\n- [Supported tags and respective `Dockerfile` links](#supported-tags-and-respective-dockerfile-links)\n- [Docker Environment Variables](#docker-environment-variables)\n  - [`API_TOKEN`](#api_token)\n  - [`PORT`](#port)\n- [Docker Arguments](#docker-arguments)\n  - [`ARCH`](#arch)\n- [Sanity Check](#sanity-check)\n- [Contribute](#contribute)\n  - [Prerequisites](#prerequisites)\n  - [Build](#build)\n  - [Run](#run)\n\n---\n\n## Example\n\nYou can check a very simple implementation example in [examples/simple][link-example] using this Docker image.\nYou'll find a `README.md` there explaining how to it works and how to run it locally.\n\n## Supported tags and respective `Dockerfile` links\n\n- [`15`](https://github.com/ivangabriele/dockfish/blob/main/dockerfiles/15.Dockerfile)\n\n## Docker Environment Variables\n\n### `API_TOKEN`\n\nIf you set the `API_TOKEN`, sent socket events will need to be authenticated using this token.\nOtherwise anybody can listen and emit to your server.\n\nUndefined by default.\n\n### `PORT`\n\n**REQUIRED**\n\nThis is the server exposed port to emit and listen socket events.\n\n## Docker Arguments\n\n**⚠️ The arguments can ONLY be used if you build your image DIRECTLY from the\n[`./dockerfiles` directory](https://github.com/ivangabriele/dockfish/tree/main/dockerfiles)**\nand not via the Docker Hub images that are prebuilt using the default values declared below.\n\n### `ARCH`\n\nArchitecture target while building:\n\n**Default value:** `x86-64-bmi2`\n\n- `apple-silicon`: Apple silicon ARM64\n- `armv7-neon`: ARMv7 32-bit with popcnt and neon\n- `armv7`: ARMv7 32-bit\n- `armv8`: ARMv8 64-bit with popcnt and neon\n- `e2k`: Elbrus 2000\n- `general-32`: unspecified 32-bit\n- `general-64`: unspecified 64-bit\n- `ppc-32`: PPC 32-bit\n- `ppc-64`: PPC 64-bit\n- `riscv64`: RISC-V 64-bit\n- `x86-32-sse2`: x86 32-bit with sse2 support\n- `x86-32-sse41-popcnt`: x86 32-bit with sse41 and popcnt support\n- `x86-32`: x86 32-bit generic (with mmx and sse support)\n- `x86-64-avx2`: x86 64-bit with avx2 support\n- `x86-64-avx512`: x86 64-bit with avx512 support\n- `x86-64-avxvnni`: x86 64-bit with avxvnni support\n- `x86-64-bmi2`: x86 64-bit with bmi2 support\n- `x86-64-modern`: common modern CPU, currently x86-64-sse41-popcnt\n- `x86-64-sse3-popcnt`: x86 64-bit with sse3 and popcnt support\n- `x86-64-sse41-popcnt`: x86 64-bit with sse41 and popcnt support\n- `x86-64-ssse3`: x86 64-bit with ssse3 support\n- `x86-64-vnni256`: x86 64-bit with vnni support 256bit wide\n- `x86-64-vnni512`: x86 64-bit with vnni support 512bit wide\n- `x86-64`: x86 64-bit generic (with sse2 support)\n\n## Sanity Check\n\nOnce you have deployed Dockfish either locally or remotely, you can check if the server is running by\nvisiting the `/check` path.\n\nYou should normally see a plain text body stating: \"Dockfish is up and running.\".\n\n## Contribute\n\n`X` is Stockfish version.  \n\u003c!-- `Y` is the architecture tag (`x86-64-avx2`).   --\u003e\n\n### Prerequisites\n\n- Docker ([Desktop](https://docs.docker.com/desktop/) or [Engine](https://docs.docker.com/engine/install/))\n- Make (installation depends on your OS)\n\n### Build\n\n```sh\nmake build-X\n```\n\nExample: `make build-15`.\n\n### Run\n\n```sh\nmake run-X\n```\n\nExample: `make run-15`.\n\n---\n\n[img-docker]: https://img.shields.io/docker/pulls/ivangabriele/dockfish?style=for-the-badge\n[img-github-actions]:\n  https://img.shields.io/github/actions/workflow/status/ivangabriele/dockfish/main.yml?branch=main\u0026label=Build\u0026style=for-the-badge\n\n[link-docker-node]: https://hub.docker.com/_/node\n[link-docker]: https://hub.docker.com/r/ivangabriele/dockfish\n[link-example]: https://github.com/ivangabriele/dockfish/tree/main/examples/simple\n[link-github-actions]: https://github.com/ivangabriele/dockfish/actions/workflows/main.yml?query=branch%3Amain\n[link-stockfish]: https://github.com/official-stockfish/Stockfish#readme\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangabriele%2Fdockfish","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivangabriele%2Fdockfish","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivangabriele%2Fdockfish/lists"}