convertor/docs/docker.md
Your Name 5c68308c36 feat: 擴展 i18n 支援 65 種語言 + 完整文件系統
🌐 國際化 (i18n)
- 從 5 種語言擴展到 65 種語言支援
- 新增:歐洲語系 (de, fr, es, it, pt, ru, nl, pl, tr, uk, cs, sv, da, fi, no, el, hu, ro, bg, hr, sk, sl, lt, lv, et, is, ga, cy, mt, mk, sq, ca, eu, gl, sr)
- 新增:中東語系 (ar, he, fa)
- 新增:南亞語系 (hi, bn, ta, te, mr, gu, kn, ml, ne, si)
- 新增:東南亞語系 (th, vi, id, ms, fil, my, km, lo)
- 新增:非洲語系 (af, sw, am, zu)
- 完整翻譯所有 UI 文字

📖 文件系統
- 重構 README.md 為入口型首頁
- 新增 docs/getting-started.md - 快速入門指南
- 新增 docs/docker.md - Docker 部署指南
- 新增 docs/environment-variables.md - 環境變數說明
- 新增 docs/url-id-and-storage.md - 儲存結構說明
- 新增 docs/advanced-usage.md - 進階使用指南
- 更新 docs/i18n.md - 65 種語言清單

 建構驗證
- TypeScript 編譯通過
- Docker 建構通過
2026-01-20 11:30:21 +08:00

3.7 KiB
Raw Blame History

Docker 配置指南

Docker Image

ConvertX-CN 提供預建的 Docker Image包含所有轉換依賴。

可用 Tag

Tag 說明
convertx/convertx-cn:latest 最新穩定版
convertx/convertx-cn:v0.1.3 指定版本號
convertx/convertx-cn:v0.1.3-FULL 完整版(與 latest 相同)

Image 大小

由於內建完整依賴LibreOffice、TexLive、FFmpeg 等Image 約 4-6 GB


Docker Run

基本啟動命令:

docker run -d \
  --name convertx-cn \
  -p 3000:3000 \
  -v ./data:/app/data \
  -e TZ=Asia/Taipei \
  -e ACCOUNT_REGISTRATION=true \
  convertx/convertx-cn:latest

參數說明

參數 說明
-d 背景執行
--name convertx-cn 容器名稱
-p 3000:3000 連接埠映射
-v ./data:/app/data 資料持久化
-e TZ=Asia/Taipei 時區設定

Docker Compose

基本配置

services:
  convertx:
    image: convertx/convertx-cn:latest
    container_name: convertx-cn
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./data:/app/data
    environment:
      - TZ=Asia/Taipei
      - JWT_SECRET=your-very-long-random-secret-key
      - ACCOUNT_REGISTRATION=true

生產環境配置

services:
  convertx:
    image: convertx/convertx-cn:latest
    container_name: convertx-cn
    restart: unless-stopped
    ports:
      - "3000:3000"
    volumes:
      - ./data:/app/data
    environment:
      - TZ=Asia/Taipei
      - JWT_SECRET=${JWT_SECRET}
      - ACCOUNT_REGISTRATION=false
      - HTTP_ALLOWED=false
      - AUTO_DELETE_EVERY_N_HOURS=24
    deploy:
      resources:
        limits:
          memory: 4G
        reservations:
          memory: 2G

使用 Traefik 反向代理

services:
  convertx:
    image: convertx/convertx-cn:latest
    container_name: convertx-cn
    restart: unless-stopped
    volumes:
      - ./data:/app/data
    environment:
      - TZ=Asia/Taipei
      - JWT_SECRET=${JWT_SECRET}
      - ACCOUNT_REGISTRATION=false
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.convertx.rule=Host(`convert.example.com`)"
      - "traefik.http.routers.convertx.entrypoints=websecure"
      - "traefik.http.routers.convertx.tls.certresolver=letsencrypt"
      - "traefik.http.services.convertx.loadbalancer.server.port=3000"
    networks:
      - traefik

networks:
  traefik:
    external: true

資料持久化

Volume 結構

./data/
├── uploads/     # 上傳的原始檔案
├── output/      # 轉換後的檔案
└── convertx.db  # SQLite 資料庫

備份

# 備份資料
docker cp convertx-cn:/app/data ./backup-$(date +%Y%m%d)

# 還原資料
docker cp ./backup-20240101/. convertx-cn:/app/data/

更新

Docker Compose

docker compose pull
docker compose up -d

Docker Run

docker pull convertx/convertx-cn:latest
docker stop convertx-cn
docker rm convertx-cn
docker run -d ... # 使用原本的參數

健康檢查

ConvertX-CN 提供健康檢查端點:

curl http://localhost:3000/healthcheck

可在 Docker Compose 中配置:

services:
  convertx:
    # ...
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/healthcheck"]
      interval: 30s
      timeout: 10s
      retries: 3

故障排除

記憶體不足

如果遇到 OOM記憶體不足請增加容器記憶體限制

deploy:
  resources:
    limits:
      memory: 8G

連接埠衝突

如果 3000 埠被占用,可更改映射:

-p 8080:3000  # 使用 8080 埠

權限問題

確保 data 目錄有正確權限:

chmod -R 777 ./data