# 設定

本頁列出 CLI 與 API Server 讀取的所有環境變數與 `.env` 載入規則。

## 載入規則

CLI 與 API Server 啟動時都會以 `godotenv.Load()` 讀取**當前工作目錄**的 `.env`。讀不到只會記錄 warning，系統環境變數仍然有效。

```bash
cp .env.expample .env
```

## CLI 變數

| 變數 | 必填 | 說明 |
|---|---|---|
| `PODRUN_SERVER` | 是 | 遠端主機 Hostname 或 IP |
| `PODRUN_USERNAME` | 是 | 遠端 SSH 使用者 |
| `PODRUN_PASSWORD` | 是 | 遠端 SSH 密碼，交給 `sshpass -p` |

缺任何一個時，`CheckENV()` 回傳 `missing required environment: <變數清單>` 並中止。SSH 位址組成 `$PODRUN_USERNAME@$PODRUN_SERVER`。

## API Server 變數

| 變數 | 必填 | 預設值 | 說明 |
|---|---|---|---|
| `DB_PATH` | 否 | 容器內：`/data/database.db`；其他：`~/.podrun/database.db` | SQLite 檔案路徑 |
| `ALLOW_EMAILS` | 否 | — | 列於 `.env.expample`，對應的使用者管理程式碼目前已停用 |

## 固定值

下列值寫在程式碼中，無法透過設定變更：

| 項目 | 值 |
|---|---|
| 遠端根目錄 | `/home/podrun` |
| API Server 監聽 | `:8080` |
| CLI 回報位址 | `http://localhost:8080` |
| Schema 檔 | `sql/create.sql`（相對於工作目錄） |
| SSH 連線測試逾時 | `ConnectTimeout=3` |

## 範例

```dotenv
PODRUN_SERVER=192.168.1.100
PODRUN_USERNAME=podrun
PODRUN_PASSWORD=yourpassword

DB_PATH=/var/lib/podrun/database.db
```
