- Add separate momentry_playground binary with distinct configuration - Production (momentry): Port 3002, Redis prefix 'momentry:' - Development (momentry_playground): Port 3003, Redis prefix 'momentry_dev:' - Add SERVER_PORT and REDIS_KEY_PREFIX config via environment variables - Replace all hardcoded Redis key prefixes with configurable values - Create .env.development for playground environment settings - Update .env with production defaults - Add dotenv dependency for environment file loading Configuration isolation allows running both binaries simultaneously without port conflicts or Redis key collisions.
106 lines
2.5 KiB
Markdown
106 lines
2.5 KiB
Markdown
# Momentry Core 配置管理
|
|
|
|
## 目錄結構
|
|
|
|
```
|
|
momentry_core_0.1/
|
|
├── .env.example # 配置模板(已納入版本控制)
|
|
├── .env # 本地配置(已從版本控制排除)
|
|
├── .env.local # 本地覆蓋配置(已從版本控制排除)
|
|
├── config/
|
|
│ └── README.md # 本文件
|
|
└── src/core/config.rs # 配置代碼
|
|
```
|
|
|
|
## 配置加載順序
|
|
|
|
1. `.env` - 默認本地配置
|
|
2. `.env.local` - 本地覆蓋(最高優先級)
|
|
|
|
## 環境變數列表
|
|
|
|
### 數據庫配置
|
|
|
|
| 變數 | 說明 | 默認值 |
|
|
|------|------|--------|
|
|
| `DATABASE_URL` | PostgreSQL 連接字串 | `postgres://accusys@localhost:5432/momentry` |
|
|
|
|
### Redis 配置
|
|
|
|
| 變數 | 說明 | 默認值 |
|
|
|------|------|--------|
|
|
| `REDIS_URL` | Redis 連接字串 | `redis://:accusys@localhost:6379` |
|
|
| `REDIS_PASSWORD` | Redis 密碼 | `accusys` |
|
|
|
|
### 存儲路徑
|
|
|
|
| 變數 | 說明 | 默認值 |
|
|
|------|------|--------|
|
|
| `MOMENTRY_OUTPUT_DIR` | 輸出目錄 | `/Users/accusys/momentry/output` |
|
|
| `MOMENTRY_BACKUP_DIR` | 備份目錄 | `/Users/accusys/momentry/backup/momentry` |
|
|
| `MOMENTRY_SCRIPTS_DIR` | 腳本目錄 | `/Users/accusys/momentry_core_0.1/scripts` |
|
|
| `MOMENTRY_PYTHON_PATH` | Python 路徑 | `/opt/homebrew/bin/python3.11` |
|
|
|
|
### 處理器超時(秒)
|
|
|
|
| 變數 | 說明 | 默認值 |
|
|
|------|------|--------|
|
|
| `MOMENTRY_ASR_TIMEOUT` | ASR 處理超時 | `3600` |
|
|
| `MOMENTRY_CUT_TIMEOUT` | CUT 處理超時 | `3600` |
|
|
| `MOMENTRY_DEFAULT_TIMEOUT` | 默認超時 | `7200` |
|
|
|
|
### 日誌
|
|
|
|
| 變數 | 說明 | 默認值 |
|
|
|------|------|--------|
|
|
| `RUST_LOG` | 日誌級別 | `info` |
|
|
| `MOMENTRY_LOG_LEVEL` | 日誌級別(備選) | `info` |
|
|
|
|
## 使用方式
|
|
|
|
### 1. 首次設置
|
|
|
|
```bash
|
|
# 複製模板
|
|
cp .env.example .env
|
|
|
|
# 編輯配置
|
|
nano .env
|
|
```
|
|
|
|
### 2. 本地覆蓋
|
|
|
|
創建 `.env.local` 設置僅本地適用的配置:
|
|
|
|
```bash
|
|
# .env.local 示例
|
|
DATABASE_URL=postgres://local:password@localhost:5432/momentry_dev
|
|
MOMENTRY_LOG_LEVEL=debug
|
|
```
|
|
|
|
### 3. 運行應用
|
|
|
|
```bash
|
|
# 加載配置並運行
|
|
source .env && cargo run
|
|
|
|
# 或使用 direnv
|
|
direnv allow
|
|
```
|
|
|
|
## 版本控制策略
|
|
|
|
| 文件 | 版本控制 | 說明 |
|
|
|------|---------|------|
|
|
| `.env.example` | ✅ 追蹤 | 模板,包含所有選項 |
|
|
| `.env` | ❌ 忽略 | 本地敏感配置 |
|
|
| `.env.local` | ❌ 忽略 | 本地覆蓋配置 |
|
|
|
|
## 部署檢查清單
|
|
|
|
- [ ] 複製 `.env.example` 到 `.env`
|
|
- [ ] 設置數據庫連接
|
|
- [ ] 設置 Redis 密碼
|
|
- [ ] 配置目錄路徑
|
|
- [ ] 確認日誌級別
|