https://github.com/zeljkovranjes/terminal-chat-system
A unified chat platform that lives in the terminal, utilizing gRPC, REST, and OAuth2 to connect and secure conversations.
https://github.com/zeljkovranjes/terminal-chat-system
chat grpc oauth2 oauth2-discord rest-api rust simple
Last synced: 2 months ago
JSON representation
A unified chat platform that lives in the terminal, utilizing gRPC, REST, and OAuth2 to connect and secure conversations.
- Host: GitHub
- URL: https://github.com/zeljkovranjes/terminal-chat-system
- Owner: zeljkovranjes
- License: apache-2.0
- Created: 2023-04-02T16:07:50.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2023-06-04T01:56:59.000Z (about 3 years ago)
- Last Synced: 2025-06-22T04:28:18.665Z (12 months ago)
- Topics: chat, grpc, oauth2, oauth2-discord, rest-api, rust, simple
- Language: Rust
- Homepage: https://www.youtube.com/watch?v=gq852Cxr980
- Size: 182 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ChatNexus
Video Preview
https://www.youtube.com/watch?v=gq852Cxr980
Just another centralized chat system.
Authentication is done through Discord's OAuth2 API. The chat messages are transmitted through gRPC. The status of everything is kept up to date with Redis.
Nice and simple. I think.
## Getting started
The only external dependency you need is Redis.
1. Install [Redis](https://redis.io/download/)
### Configuring env
```
REDIS_HOST = ""
REDIS_USERNAME = ""
REDIS_PASSWORD = ""
REDIS_PORT = ""
REDIS_DATABASE = ""
OAUTH2_ENDPOINT = "https://discord.com/api/v10"
OAUTH2_AUTHORIZE = "https://discord.com/oauth2/authorize"
OAUTH2_TOKEN = "https://discord.com/api/oauth2/token"
OAUTH2_SCOPES = "identify"
OAUTH2_CLIENT_ID = ""
OAUTH2_CLIENT_SECRET = ""
OAUTH2_REDIRECT_URI = ""
WEB_SECRET_KEY = "RANDOM VALUE HERE."
```
### Running the servers and client
```bash
git clone https://github.com/chomnr/ChatNexus.git
cd chatnexus
cargo build
# Running the chat server.
cd chatnexus-chat
cargo run
# Running the web server.
cd chatnexus-web
cargo run
# Running the client.
cd chatnexus-client
cargo run
```