# 設定

本頁列出 Go 服務讀取的環境變數、儲存目錄結構與 Docker Compose 預設值。

## 環境變數

| 變數 | 預設值 | 讀取處 | 說明 |
|---|---|---|---|
| `GO_ENV` | — | `configs.ModeDev()` | `development` 時視為開發模式 |
| `PORT` | `8080` | `configs.GetPort()` | Go 服務監聽埠 |
| `DOMAIN` | — | `configs.GetDomain()` | 非開發模式下，上傳回應 `src` 使用 `https://{DOMAIN}` |

`GetDomain()` 只影響上傳回應中的 `src`，不影響路由或快取。

## Docker Compose 預設值

`docker-compose.yaml` 為 `golang` 服務設定 `GO_ENV: development` 與 `DOMAIN: "joball.tw"`。因為 `GO_ENV` 為 `development`，`DOMAIN` 實際不會生效，上傳回應的 `src` 會是 `http://localhost:8080/...`。正式環境應移除 `GO_ENV` 並把 `DOMAIN` 改為實際對外網域。

## 儲存目錄

所有路徑以工作目錄（`os.Getwd()`）為根：

| 路徑 | 函式 | 用途 |
|---|---|---|
| `storage/image/upload/` | `GetUploadPath()` | 原始上傳檔 |
| `storage/image/cache/` | `GetCachePath()` | 轉檔快取，結構對應 `upload/` |
| `storage/image/upload/.trash/` | `GetTrashPath()` | 回收桶，依日期分資料夾 |
| `internal/assets/image/404-{light,dark}.svg` | `Get404SVG()` | 讀圖失敗時的佔位圖 |

Docker Compose 把主機的 `./image` 掛載到容器的 `storage/image`，備份或搬遷時只需處理這個目錄。
