Rustで書かれた軽量かつシンプルなオープンソースのチャット機能を提供するWeb APIです。
WebSocketを使用し、リアルタイムチャットを実現します。最小限の機能で動作し、拡張が容易です。
- 軽量で高速なチャット機能
- WebSocketを使用したリアルタイム通信
- シンプルなAPI設計
- JWTを使用した認証
以下のソフトウェアが必要です:
- リポジトリをクローンします:
git clone https://github.com/nakaryo716/chat-app-server cd chat-app-server
- SSL証明書の作成を行います:
./nginx/ssl/README.md
を参照し、OpenSSLを使用して証明書を作成します。 - Dockerコンテナを立ち上げます:
docker compose up
- nginx, app, dbコンテナが起動し、APIが使用可能になります。デフォルトではhttps://localhost:1443でアクセス可能です。
変更したい場合(https://localhost:443)は```compose.yaml```の```port```を変更してください。
portcontainer name: port ------------------------ nginx : 1443, 180 app : 8080 db : 15432
このAPIとnextjsを使った実際のアプリケーションは以下のリポジトリから取得し、実行することができます。
最初にAPI側のコンテナを起動してください
chat-appリポジトリのclone
git clone https://github.com/nakaryo716/chat-app
cd chat-app
dockerコンテナの起動
docker compose up
クライアントアプリの起動の仕方についてはREADME.mdを参照してください。
Method: POST
URL: https://localhost:1443/user
Request Body:
{
"userName": "your user name",
"userMail": "[email protected]",
"userPass": "youruserpass"
}
Method: POST
URL: https://localhost:1443/login
Request Body:
{
"userMail": "[email protected]",
"userPass": "youruserpass"
}
CookieにJWTが保存される
Method: GET
URL: https://localhost:1443/user
Auth: JWTが有効である必要がある
Method: DELETE
URL: https://localhost:1443/user
Auth: JWTが有効である必要がある
Request Body:
{
"userMail": "[email protected]",
"userPass": "youruserpass"
}
Method: POST
URL: https://localhost:1443/room
Auth: JWTが有効である必要がある
Request Body:
{
"roomName": "room name",
}
Method: GET
URL: https://localhost:1443/room
Auth: JWTが有効である必要がある
Method: GET
URL: https://localhost:1443/room/:id
Auth: JWTが有効である必要がある
Method: DELETE
URL: https://localhost:1443/room/:id
Auth: JWTが有効である必要がある
Method: GET
URL: wss://localhost:1443/chat/:id
Auth: JWTが有効である必要がある
This project is licensed under the MIT License - see the LICENSE file for details.