Skip to content

msgmate-io/open-chat-go

Repository files navigation

Open Chat Go

10th generation of Open Chat, written in Go. Without federation for now; would love to add it again though.

TL;DR

  • Production Docker: docker build -f Dockerfile -t open-chat:latest .
  • Go Linux Binary: wget -O open-chat "https://github.com/msgmate-io/open-chat-go/releases/latest/download/open-chat-linux-amd64"
  • Python Client: pip install git+https://github.com/msgmate-io/open-chat-go-python-client.git

Development

docker compose build
# frontend + backend ( sqite + hot-reload )
docker compose up
# or design system
docker compose --profile storybook up

Bake in your own go-tools

  • Tool dependencies are declared in backend/tooldeps.json.
  • During backend builds, backend/full_build.sh runs go run ./scripts/tooldepsgen to:
    • sync dependencies into backend/go.mod
    • generate backend/api/msgmate/externaltools/imports_gen.go with side-effect imports
  • External packages should register tools in init() using the SDK at clients/go_tool_interface/

Production

docker compose -f docker-compose.pro.yaml build
# backend ( postgres + frontend static html + js )
docker compose -f docker-compose.pro.yaml up -d

Releases

We release all versions always ( after admin confirmation ):

  • PR branches: open-chat-pr-alpha-release-<version-number>-<commit>
  • Staging main are tagged as open-chat-staging-<version-number> ( open-chat-pre-release:latest )
  • Production production are released as open-chat-<version-number> ( open-chat:latest )

About

go rewrite of the open-chat api backend

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors