65 lines
1.5 KiB
Markdown
65 lines
1.5 KiB
Markdown
# Docker Compose 部署說明
|
||
|
||
## 服務說明
|
||
|
||
### Redis
|
||
- 端口:6379
|
||
- 用途:配對佇列、使用者狀態、房間成員管理
|
||
|
||
### Centrifugo
|
||
- HTTP API 端口:8000
|
||
- WebSocket 端口:8001
|
||
- 用途:即時訊息推送
|
||
- 配置文件:`centrifugo.json`
|
||
|
||
### Cassandra
|
||
- 端口:9042
|
||
- 用途:聊天歷史訊息儲存
|
||
|
||
## 配置說明
|
||
|
||
### Centrifugo 配置
|
||
|
||
1. **更新 `centrifugo.json`**:
|
||
- `token_hmac_secret_key`:必須與 `etc/chat-api.yaml` 中的 `JWT.CentrifugoSecret` 或 `JWT.Secret` 相同
|
||
- `api_key`:必須與 `etc/chat-api.yaml` 中的 `Centrifugo.APIKey` 相同
|
||
|
||
2. **範例配置**:
|
||
```json
|
||
{
|
||
"token_hmac_secret_key": "your-secret-key-change-in-production",
|
||
"api_key": "api-key"
|
||
}
|
||
```
|
||
|
||
3. **對應的 `etc/chat-api.yaml`**:
|
||
```yaml
|
||
Centrifugo:
|
||
APIURL: http://localhost:8000/api
|
||
APIKey: "api-key"
|
||
|
||
JWT:
|
||
Secret: "your-secret-key-change-in-production"
|
||
CentrifugoSecret: "" # 留空則使用 Secret
|
||
```
|
||
|
||
## 啟動服務
|
||
|
||
```bash
|
||
cd deployment
|
||
docker-compose up -d
|
||
```
|
||
|
||
## 驗證服務
|
||
|
||
- Redis: `redis-cli ping`
|
||
- Centrifugo: `curl http://localhost:8000/health`
|
||
- Cassandra: `docker exec -it cassandra cqlsh`
|
||
|
||
## 注意事項
|
||
|
||
1. **生產環境**:請務必修改所有預設密碼和 secret key
|
||
2. **Centrifugo Redis**:目前配置使用 Redis 作為 Centrifugo 的後端,確保 Redis 先啟動
|
||
3. **網路配置**:如果應用程序也在 Docker 中運行,請使用服務名稱(如 `centrifugo:8000`)而不是 `localhost`
|
||
|