# 設定

HakoRun 全部以環境變數設定；`Makefile` 會載入專案根目錄的 `.env`。

## 建立設定檔

```bash
cp .env.example .env
```

未設定或無法解析為數字的變數一律使用預設值（`internal/utils/getEnv.go`）。

## 伺服器與執行

| 變數 | 預設 | 說明 |
|------|------|------|
| `HTTP_PORT` | `8080` | HTTP 監聽埠 |
| `CODE_MAX_SIZE` | `262144`（256 KiB） | `/run` 與 `/run-now` 請求 body 位元組上限 |
| `TIMEOUT_SCRIPT` | `30` | 腳本逾時秒數；實際截止時間再加 5 秒 |
| `MAX_CPUS` | `1` | `hakorun.slice` 的 CPU 核數，寫成 `CPUQuota = N × 100%`（僅 Linux） |
| `MAX_MEMORY` | `128M` | `hakorun.slice` 的 `MemoryMax`，systemd 單位格式（僅 Linux） |

## Redis（僅 `-tags redis`）

| 變數 | 預設 | 說明 |
|------|------|------|
| `REDIS_HOST` | `localhost` | 主機 |
| `REDIS_PORT` | `6379` | 埠號 |
| `REDIS_PASSWORD` | 空 | 密碼 |
| `REDIS_DB` | `0` | 資料庫編號 |
| `REDIS_TIMEOUT_SECONDS` | `5` | 連線、讀寫與連線池逾時秒數 |

預設 ToriiDB 建置不讀取任何 `REDIS_*` 變數。

## 相關頁面

- [資源上限](/zh/resource-limits)
- [儲存後端](/zh/storage)
