feat: v0.1.9 - 全頁拖曳上傳 + i18n 修正 + 文件更新
✨ Features: - 全頁拖曳上傳:檔案可拖曳到頁面任何位置上傳 - 原本的上傳框視覺效果保持不變 🌍 i18n: - 刪除任務的 confirm/alert 訊息改用 i18n - 隨語言切換即時更新顯示內容 📚 Documentation: - README 新增「如何更新 ConvertX-CN 版本」章節 - 新增 deployment.md(Reverse Proxy、HTTPS) - 新增 Docker Compose 範例分層 - 更新 environment-variables.md
This commit is contained in:
parent
a0eccf0437
commit
a45a049fe2
14 changed files with 1475 additions and 167 deletions
200
compose.yaml
200
compose.yaml
|
|
@ -1,50 +1,194 @@
|
|||
# ==============================================================================
|
||||
# ConvertX-CN 部署範例(docker-compose.yml / compose.yaml)
|
||||
# ConvertX-CN Docker Compose 教學版範例
|
||||
#
|
||||
# 📚 這份範例的設計理念:
|
||||
# - 刻意保留完整註解,讓第一次用 Docker 的人也能成功部署
|
||||
# - 每個設定都有說明其用途與風險
|
||||
# - 如果你是 Docker 老手,可以自行精簡
|
||||
#
|
||||
# 🎉 這是完整版 image,已內建所有轉換依賴:
|
||||
# - LibreOffice (headless)
|
||||
# - TexLive(CJK + 阿拉伯/希伯來語)
|
||||
# - LibreOffice (headless) - 文件轉換
|
||||
# - TexLive Full - LaTeX 完整版(含 CJK、阿拉伯、希伯來語支援)
|
||||
# - Tesseract OCR + 中日韓英德法語言包
|
||||
# - CJK 字型(Noto CJK、標楷體)
|
||||
# - Pandoc、FFmpeg、ImageMagick、OpenCV 等所有轉換器
|
||||
# - CJK 字型(Noto CJK、標楷體、微軟核心字型)
|
||||
# - Pandoc、FFmpeg、ImageMagick、Calibre 等所有轉換器
|
||||
#
|
||||
# ✅ 使用者不需要自己寫 Dockerfile
|
||||
# ✅ 直接 docker compose up -d 即可使用
|
||||
#
|
||||
# ⚠️ 遠端部署注意事項:
|
||||
# 若透過 Nginx/Traefik 等 reverse proxy 存取,請設定:
|
||||
# - HTTP_ALLOWED=true(若 proxy 處理 HTTPS)
|
||||
# - 或 TRUST_PROXY=true(讓應用正確判斷 HTTPS)
|
||||
# ⚠️ 部署前必做:
|
||||
# 1. 先建立 data 資料夾(見 README.md 步驟 2)
|
||||
# 2. 修改 JWT_SECRET 為你自己的隨機字串
|
||||
# ==============================================================================
|
||||
|
||||
services:
|
||||
convertx:
|
||||
# =========================================================================
|
||||
# 映像檔設定
|
||||
# =========================================================================
|
||||
# convertx-cn 是完整版,已內建所有轉換工具
|
||||
# ⚠️ 首次下載約 4-6 GB,請耐心等待
|
||||
image: convertx/convertx-cn:latest
|
||||
|
||||
# 容器名稱,方便識別與管理
|
||||
container_name: convertx-cn
|
||||
|
||||
# 重啟策略:
|
||||
# - unless-stopped:除非手動停止,否則自動重啟(推薦)
|
||||
# - always:永遠自動重啟
|
||||
# - no:不自動重啟
|
||||
restart: unless-stopped
|
||||
|
||||
# =========================================================================
|
||||
# 連接埠設定
|
||||
# =========================================================================
|
||||
# 格式:「主機埠號:容器埠號」
|
||||
#
|
||||
# 範例:
|
||||
# - "3000:3000" → http://localhost:3000
|
||||
# - "8080:3000" → http://localhost:8080
|
||||
# - "80:3000" → http://localhost(需要 root 權限)
|
||||
#
|
||||
# 💡 若 3000 埠被佔用,改第一個數字即可
|
||||
ports:
|
||||
- "3000:3000"
|
||||
|
||||
# =========================================================================
|
||||
# 資料儲存設定(⚠️ 非常重要)
|
||||
# =========================================================================
|
||||
# 格式:「主機路徑:容器路徑」
|
||||
#
|
||||
# ./data 是你主機上的實體資料夾(相對於 docker-compose.yml 的位置)
|
||||
# /app/data 是容器內的路徑
|
||||
#
|
||||
# 這裡存放:
|
||||
# 📁 上傳的檔案
|
||||
# 📁 轉換後的結果
|
||||
# 📁 使用者帳號資料(SQLite 資料庫)
|
||||
#
|
||||
# 🚨 重要提醒:
|
||||
# 1. 請務必先建立 data 資料夾再啟動容器!
|
||||
# 若資料夾不存在,Docker 可能會建立「匿名 volume」,
|
||||
# 這會導致容器刪除後資料全部遺失,且難以找回。
|
||||
#
|
||||
# 2. 如果你想用 Docker named volume 取代本地資料夾:
|
||||
# - convertx_data:/app/data
|
||||
# 但資料會存在 Docker 內部,較難直接存取與備份。
|
||||
#
|
||||
# 3. 建議定期備份 data 資料夾!
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
|
||||
# =========================================================================
|
||||
# 環境變數設定
|
||||
# =========================================================================
|
||||
environment:
|
||||
# === 帳號設定 ===
|
||||
- ACCOUNT_REGISTRATION=false # 是否允許註冊新帳號(首次帳號不受此限制)
|
||||
- JWT_SECRET=請更換為一個長且隨機的字串 # 若不設定則使用 randomUUID()
|
||||
|
||||
# === 安全設定 ===
|
||||
- HTTP_ALLOWED=false # 是否允許非 HTTPS 連線(僅本地測試時設為 true)
|
||||
- TRUST_PROXY=false # 透過 reverse proxy 時設為 true(正確判斷 HTTPS)
|
||||
- ALLOW_UNAUTHENTICATED=false # 是否允許未登入使用(僅本地測試時設為 true)
|
||||
|
||||
# === 檔案管理 ===
|
||||
- AUTO_DELETE_EVERY_N_HOURS=24 # 自動刪除超過 N 小時的檔案(0 = 停用)
|
||||
|
||||
# === 時區設定 ===
|
||||
# -----------------------------------------------------------------------
|
||||
# 時區設定
|
||||
# -----------------------------------------------------------------------
|
||||
# 影響檔案時間戳記與日期顯示格式
|
||||
# 常用值:Asia/Taipei, Asia/Shanghai, America/New_York, Europe/London
|
||||
- TZ=Asia/Taipei
|
||||
|
||||
# === 可選設定 ===
|
||||
# - WEBROOT=/convertx # 子路徑部署(例如 example.com/convertx/)
|
||||
# - HIDE_HISTORY=true # 隱藏歷史紀錄頁面
|
||||
# - LANGUAGE=zh-TW # 日期格式語言
|
||||
# - FFMPEG_ARGS=-hwaccel vaapi # FFmpeg 硬體加速參數
|
||||
# - MAX_CONVERT_PROCESS=4 # 最大同時轉換數(0 = 無限制)
|
||||
# -----------------------------------------------------------------------
|
||||
# JWT 密鑰(🔐 強烈建議設定)
|
||||
# -----------------------------------------------------------------------
|
||||
# 用於使用者登入驗證的加密金鑰
|
||||
#
|
||||
# ⚠️ 若不設定會怎樣?
|
||||
# 系統會使用 randomUUID() 產生臨時金鑰,
|
||||
# 但每次容器重啟後金鑰會改變,導致:
|
||||
# → 所有使用者的登入狀態失效
|
||||
# → 所有人都需要重新登入
|
||||
#
|
||||
# ✅ 正確做法:
|
||||
# 設定一個長且隨機的字串(建議 32 字元以上)
|
||||
# 可以用 openssl rand -hex 32 產生
|
||||
#
|
||||
# 🚨 請務必將下面的值改成你自己的!
|
||||
- JWT_SECRET=請改成你自己的長隨機字串-至少32個字元-不要用這個預設值
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# 帳號註冊設定
|
||||
# -----------------------------------------------------------------------
|
||||
# true = 允許任何人註冊新帳號
|
||||
# false = 關閉註冊功能
|
||||
#
|
||||
# 💡 注意:首次註冊的帳號不受此限制
|
||||
# 即使設為 false,仍可註冊第一個帳號(管理員)
|
||||
#
|
||||
# 📌 建議:
|
||||
# - 首次部署時設為 true,註冊好帳號後改為 false
|
||||
# - 或者直接設為 false,只用第一個註冊的帳號
|
||||
- ACCOUNT_REGISTRATION=true
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# HTTP 存取設定(🔒 安全性相關)
|
||||
# -----------------------------------------------------------------------
|
||||
# true = 允許非 HTTPS 連線
|
||||
# false = 必須 HTTPS 連線(Cookie 設定 Secure 屬性)
|
||||
#
|
||||
# ⚠️ 這個設定影響登入功能是否正常運作!
|
||||
#
|
||||
# 📌 設定指南:
|
||||
# 🏠 本地測試(http://localhost) → true
|
||||
# 🌐 遠端部署且有 HTTPS → false
|
||||
# 🌐 遠端部署但沒有 HTTPS(不建議) → true(但不安全)
|
||||
#
|
||||
# 🚨 常見問題:
|
||||
# 若設為 false 但實際用 HTTP 存取,
|
||||
# 會導致「登入後又被導回登入頁」的問題
|
||||
- HTTP_ALLOWED=true
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Reverse Proxy 信任設定
|
||||
# -----------------------------------------------------------------------
|
||||
# 若你透過 Nginx / Traefik / Cloudflare / Caddy 等存取,設為 true
|
||||
#
|
||||
# 作用:讓應用程式信任 X-Forwarded-Proto 等 header,
|
||||
# 正確判斷連線是否為 HTTPS
|
||||
#
|
||||
# 📌 設定指南:
|
||||
# 直接存取容器(無 proxy) → false
|
||||
# 透過 reverse proxy 存取 → true
|
||||
- TRUST_PROXY=false
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# 未登入存取設定
|
||||
# -----------------------------------------------------------------------
|
||||
# true = 允許未登入的訪客使用轉換功能
|
||||
# false = 必須登入才能使用
|
||||
#
|
||||
# ⚠️ 設為 true 的風險:
|
||||
# - 任何人都可以使用你的服務器資源
|
||||
# - 可能被濫用(大量轉換、儲存空間耗盡)
|
||||
#
|
||||
# 📌 建議:除非你明確要提供公開服務,否則設為 false
|
||||
- ALLOW_UNAUTHENTICATED=false
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# 自動清理設定
|
||||
# -----------------------------------------------------------------------
|
||||
# 自動刪除超過 N 小時的轉換檔案
|
||||
# 設為 0 = 停用自動刪除
|
||||
#
|
||||
# 💡 建議設定適當的值,避免磁碟空間被轉換檔案塞滿
|
||||
- AUTO_DELETE_EVERY_N_HOURS=24
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# 進階設定(可選,需要時取消註解)
|
||||
# -----------------------------------------------------------------------
|
||||
# 子路徑部署(例如 https://example.com/convertx/)
|
||||
# - WEBROOT=/convertx
|
||||
|
||||
# 隱藏歷史紀錄頁面
|
||||
# - HIDE_HISTORY=true
|
||||
|
||||
# 日期格式語言(影響時間顯示格式)
|
||||
# - LANGUAGE=zh-TW
|
||||
|
||||
# FFmpeg 硬體加速參數
|
||||
# - FFMPEG_ARGS=-hwaccel vaapi
|
||||
|
||||
# 最大同時轉換數(0 = 無限制)
|
||||
# - MAX_CONVERT_PROCESS=4
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue