All Projects → ribice → Goch

ribice / Goch

Licence: mit
Self hosted live chat server written in Go

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Labels

Projects that are alternatives of or similar to Goch

Roomler
Roomler - Multi-party Video Conferencing & Team Collaboration Tool using WebRTC (Janus Gateway)
Stars: ✭ 160 (+20.3%)
Mutual labels:  redis, chat
Miaou
A chat server with OAuth2 authentication, persistent and searchable history, video and audio, markdown formatting, private and public rooms, stars, votes, embedded games, and many other features
Stars: ✭ 486 (+265.41%)
Mutual labels:  redis, chat
Saea
SAEA.Socket is a high-performance IOCP framework TCP based on dotnet standard 2.0; Src contains its application test scenarios, such as websocket,rpc, redis driver, MVC WebAPI, lightweight message server, ultra large file transmission, etc. SAEA.Socket是一个高性能IOCP框架的 TCP,基于dotnet standard 2.0;Src中含有其应用测试场景,例如websocket、rpc、redis驱动、MVC WebAPI、轻量级消息服务器、超大文件传输等
Stars: ✭ 318 (+139.1%)
Mutual labels:  redis, chat
Django Channels React Multiplayer
turn based strategy game using django channels, redux, and react hooks
Stars: ✭ 52 (-60.9%)
Mutual labels:  redis, chat
Groupbutler
This bot can help you in managing your group with rules, anti-flood, description, custom triggers, and much more!
Stars: ✭ 399 (+200%)
Mutual labels:  redis, chat
Chat.io
A Real Time Chat Application built using Node.js, Express, Mongoose, Socket.io, Passport, & Redis.
Stars: ✭ 1,325 (+896.24%)
Mutual labels:  redis, chat
Csredis
.NET Core or .NET Framework 4.0+ client for Redis and Redis Sentinel (2.8) and Cluster. Includes both synchronous and asynchronous clients.
Stars: ✭ 1,714 (+1188.72%)
Mutual labels:  redis
Ng Chat
💬 A simple facebook/linkedin lookalike chat module for Angular applications.
Stars: ✭ 131 (-1.5%)
Mutual labels:  chat
Async Redis
First class async & promise support for redis.
Stars: ✭ 128 (-3.76%)
Mutual labels:  redis
Db Tutorial
💾 db-tutorial 是一个数据库教程。
Stars: ✭ 128 (-3.76%)
Mutual labels:  redis
Jiiiiiin Security
一个前后端分离的内管基础项目
Stars: ✭ 132 (-0.75%)
Mutual labels:  redis
Scredis
Non-blocking, ultra-fast Scala Redis client built on top of Akka IO.
Stars: ✭ 131 (-1.5%)
Mutual labels:  redis
Chat Ui Kit React
Build your own chat UI with React components in few minutes. Chat UI Kit from chatscope is an open source UI toolkit for developing web chat applications.
Stars: ✭ 131 (-1.5%)
Mutual labels:  chat
Hanu
Golang Framework for writing Slack bots
Stars: ✭ 128 (-3.76%)
Mutual labels:  chat
Overlord
Overlord是哔哩哔哩基于Go语言编写的memcache和redis&cluster的代理及集群管理功能,致力于提供自动化高可用的缓存服务解决方案。
Stars: ✭ 1,884 (+1316.54%)
Mutual labels:  redis
Spring Boot Quick
🌿 基于springboot的快速学习示例,整合自己遇到的开源框架,如:rabbitmq(延迟队列)、Kafka、jpa、redies、oauth2、swagger、jsp、docker、spring-batch、异常处理、日志输出、多模块开发、多环境打包、缓存cache、爬虫、jwt、GraphQL、dubbo、zookeeper和Async等等📌
Stars: ✭ 1,819 (+1267.67%)
Mutual labels:  redis
Vagrant Elastic Stack
Giving the Elastic Stack a try in Vagrant
Stars: ✭ 131 (-1.5%)
Mutual labels:  redis
Light Push
轻量级推送服务和实时在线监控平台,同时用于开发即时通信系统,基于node的socket.io,支持web、android、ios客户端,支持移动端离线推送,可进行分布式部署
Stars: ✭ 128 (-3.76%)
Mutual labels:  redis
Ardb
A redis protocol compatible nosql, it support multiple storage engines as backend like Google's LevelDB, Facebook's RocksDB, OpenLDAP's LMDB, PerconaFT, WiredTiger, ForestDB.
Stars: ✭ 1,707 (+1183.46%)
Mutual labels:  redis
Zhttp
基于swoole的异步轻量级web框架,内部封装协程异步非阻塞全套mysql、redis、mongo、memcached连接池,可以轻松start、reload、stop,加入数据库的查询模块,框架已经封装好近乎同步写法,底层异步调用
Stars: ✭ 131 (-1.5%)
Mutual labels:  redis

goch

Build Status codecov Go Report Card Maintainability

goch is a self-hosted live-chat server written in Go.

It allows you to run a live-chat software on your own infrastructure.

You can create multiple private and public chatrooms where two or more users can be at the same time.

For communication, it uses RESTful endpoints, Websockets, NATS Streaming, and Redis.

Goch is a fork of Gossip, with many added features and fixes.

Getting started

To run goch locally, you need docker, docker-compose and go installed and set on your path. After downloading/cloning the project, run ./up which compiles the binary and runs docker-compose with goch, NATS Streaming, and Redis. If there were no errors, goch should be running on localhost (port 8080).

How it works

In order for the server to run, ADMIN_USERNAME and ADMIN_PASSWORD env variables have to be set. In the repository, they are set to admin and pass respectively, but you should obviously change those for security reasons.

Once the server is running, the following routes are available:

  • POST /admin/channels: Creates a new channel. You have to provide a unique name for a channel (usually an ID), and the response includes channel's secret which will be used for connecting to channel later on. This endpoint should be invoked server-side with provided admin credentials. The response should be saved in order to connect to the channel later on.

  • POST /register: Register a user in a channel. In order to register for the channel, a UID, DisplayName, ChannelSecret, and ChannelName needs to be provided. Optionally user secret needs to be provided, but if not the server will generate and return one.

  • GET /connect: Connects to a chat and returns a WebSocket connection, along with chat history. Channel, UID, and Secret need to be provided. Optionally LastSeq is provided which will return chat history only after LastSeq (UNIX timestamp).

The remaining routes are only used as 'helpers':

  • GET /channels/{name}?secret=$SECRET: Returns list of members in a channel. Channel name has to be provided as URL param and channel secret as a query param.

  • GET /admin/channels: Returns list of all available channels.

  • GET /admin/channels/{name}/user/{uid}: Returns list of unread messages on a chat for a user.

License

goch is licensed under the MIT license. Check the LICENSE file for details.

Author

Emir Ribic

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].