1
0
Fork 0
mirror of https://github.com/imjasonh/chessh synced 2026-07-07 00:33:53 +00:00
No description
Find a file
Jason Hall 64ac7b921b improve production deployment reliability
Add rolling update policy for zero-downtime deployments and increase
load balancer timeout for long-lived SSH sessions.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-23 19:47:38 -04:00
docs deploy directly to GCE 2025-09-23 16:42:49 -04:00
iac improve production deployment reliability 2025-09-23 19:47:38 -04:00
.gitignore host it using ssh proxy 2025-09-13 13:51:48 -04:00
chess.go improve board rendering 2025-09-16 14:37:48 -05:00
CLAUDE.md drop dns stuff 2025-09-23 17:01:49 -04:00
go.mod deploy directly to GCE 2025-09-23 16:42:49 -04:00
go.sum simplify UI 2025-09-16 15:23:50 -05:00
LICENSE multiplayer, add readme, claude and license 2025-09-12 20:17:39 -04:00
main.go deploy directly to GCE 2025-09-23 16:42:49 -04:00
multiplayer.go multiplayer, add readme, claude and license 2025-09-12 20:17:39 -04:00
README.md deploy directly to GCE 2025-09-23 16:42:49 -04:00
screenshot.png update readme 2025-09-16 15:05:31 -05:00

CheSSH

A multiplayer chess game playable via SSH.

Important

It's pronounced like "chess-ess-aych", or "chesh" in your best Sean Connery impression.

Play the game

ssh chessh.app.imjasonh.com

Screenshot of CheSSH gameplay

You may need to wait for another player to play against, or join from another terminal if you want to play with yourself.

Players are automatically matched when they connect to the SSH server.

When an opponent disconnects, you win!

Running locally

go run ./ --local

then

ssh localhost -p 2222

Deploying

cd iac/
terraform init
terraform apply

This will create:

  • A container image containing the app's code
  • GCE VM instances running the app container
  • TCP Load Balancer for direct SSH access on port 22
  • Health checks and auto-healing for high availability
  • DNS records pointing to the load balancer
  • SSH host key management via Secret Manager