設定

最後更新

本頁列出環境變數、程序管理設定與儲存目錄配置。

環境變數(app/.env)

變數 必要 .env 值 說明
NODE_PORT 是 8080 Express 監聽埠;須與 Nginx proxy_pass 的埠號一致
NODE_ENV 否 production development 時上傳回應的 src 使用 http://localhost:8080/c/img,否則使用 https://${DOMAIN}/c/img
DOMAIN NODE_ENV 非 development 時 — 組成上傳回應 src 的對外網域

.env 由 dotenv 載入,不覆蓋已存在的環境變數;docker-compose.yaml 設定 NODE_ENV: development,因此容器內以 compose 的值為準。正式環境請改 compose 的 environment 區塊並設定 DOMAIN。

程序管理

項目 設定 位置
啟動 pm2-runtime 以 ./node_modules/.bin/ts-node -r tsconfig-paths/register 執行 app.ts app/app.json
PM2 日誌 storage/logs/out.log、storage/logs/err.log app/app.json
Cluster CPU 數大於 1 時,主程序 fork max(CPU 數, 4) - 1 個 worker,worker 退出時立即補位;主程序本身不監聽 app/app.ts
單核 CPU 數為 1 時不 fork,由同一程序監聽 app/app.ts
結束訊號 SIGINT/SIGTERM/SIGHUP 時終止所有 worker 後結束 app/app.ts
路徑別名 @middlewares、@router、@src app/tsconfig.json

儲存目錄

容器內路徑 主機掛載(Docker Compose) 用途
storage/image/upload/ ./image/upload/ 原始上傳檔
storage/image/cache/ ./image/cache/ 轉檔快取檔
storage/image/upload/.trash/ ./image/upload/.trash/ 刪除項目
storage/logs/ ./logs/nodejs/ req.log(每 3 天輪替)與 PM2 日誌
storage/static/ 不掛載(隨程式碼) 404-light.svg、404-dark.svg

Nginx 日誌掛載於 ./logs/nginx/。

相關頁面

EN