You are on page 1of 6

Product Solutions Open Source Pricing Search Sign in Sign up

Terkwood / BUGOUT Public Notifications Fork 7 Star 64

Code Issues 37 Pull requests 40 Actions Security Insights

unstable 51 branches 48 tags Code About

AI-driven, Multiplayer Go/Weiqi/Baduk


406 commits for the web

admin go.terkwood.farm

rust redis board-game


botlink
distributed-systems microservices
browser
multiplayer baduk weiqi igo

core-model goban artificial-intelligence boardgame

gateway multiplayer-game go-game alphago

alphazero redis-streams
kafka-reference-impl
distributed-monolith katago

micro-changelog
Readme
micro-color-chooser
MIT license
micro-game-lobby Code of conduct

micro-judge 64 stars

4 watching
micro-sync
7 forks
move-model

redis-conn-pool
Releases 47
redis_streams
🧹 Browser clean-up Latest
reverse-proxy on May 14, 2021

tinybrain + 46 releases

undo

.gitignore Packages

No packages published
BUGOUT.jpeg

CHANGELOG.md

Languages
CODE_OF_CONDUCT.md

CONTRIBUTING.md Rust 49.5% JavaScript 23.5%


Kotlin 21.0% CSS 2.6%
LICENSE
Shell 1.6% Dockerfile 1.0%

PRIVACY.md Other 0.8%

README.md

architecture.excalidraw

architecture.png

build-cloud.sh

build-micro.sh

compose.sh

docker-compose.yml

old-changelog.md

README.md

BUGOUT
Play Go against your friends, over the web!
Or play against KataGo AI on a power-efficient dev board!

Want to play right now? Click here: go.terkwood.farm

Design

Allows play against AI using KataGo, running on an NVIDIA Jetson Nano and consuming a mere
5W of power.
Backend powered by Redis.
Uses a descendant of Sabaki for the web UI.
A public-facing websocket gateway communicates with the browser.

STOP! Potential developers, please read carefully.

BUGOUT is not suitable for playing KataGo on your workstation.

The production version of BUGOUT relies on an instance of KataGo hosted on an NVIDIA Jetson
Nano, compiled with ARM architecture. KataGo is spawned by the tinybrain process.

These services run in my home, and connect remotely to an AWS-hosted instance serving the rest of
the system. This requires a websocket connection, and a valid SSL certificate.

If your goal is to play KataGo on your home computer...


...then we suggest trying out KaTrain, which works flawlessly. It has a lovely UI, it will download and
set up KataGo for you, and it will save your valuable time.

Why isn't BUGOUT better?

Mainly because we designed this system with the goal of being playable over the web. For this
purpose, it functions well enough.
In our context, the build of KataGo itself probably isn't reproducible. At least, getting it set up to run
in the current production system was a bit of a pain point.

Are you still interested in trying to run this system locally?

If so, don't say we didn't warn you!

Building the distributed monolith (everything but KataGo)


BUGOUT uses docker to host multiple images, including a reverse-proxy for web traffic, and a redis
instance. You need to create directory which will be used for volume mounting these instances.
Inside the reverse-proxy directory, you'll need a Caddyfile , which this script will also create. This
script uses sudo, so please, review it before running it!

sh admin/setup-local-dev.sh

BUGOUT relies on docker-compose to run most of its services. It will invoke some buildkit-related
options, so please use the included script to start the system.

sh compose.sh up

If you're hacking BUGOUT, you will want to host the web application on your local machine. You
need to install npm. Then:

cd browser
npm install
npm run build
npm run start

Building KataGo
The tinybrain utility currently does not use docker-compose. This utility wraps KataGo AI and allows
it to communicate with the rest of the backend services. We run it using a systemd script.
We have some poorly written notes about building KataGo, but they are specific to NVIDIA Jetson
Nano + ARM. You're on your own if you want to get everything hooked up via x86_64.

We don't currently have a path for you to connect KataGo + tinybrain to the rest of your system,
locally.

© 2022 GitHub, Inc. Terms Privacy Security Status Docs Contact GitHub Pricing API Training Blog About

PDFmyURL.com - convert URLs, web pages or even full websites to PDF online. Easy API for developers!

You might also like