# 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 密碼
- [ ] 配置目錄路徑
- [ ] 確認日誌級別
