# 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`