convertor/docs/advanced-usage.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

277 lines
5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 進階用法
## 硬體加速
### NVIDIA GPU (CUDA/NVENC)
#### 1. 安裝 NVIDIA Container Toolkit
```bash
# Ubuntu/Debian
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
```
#### 2. Docker Compose 配置
```yaml
services:
convertx:
image: convertx/convertx-cn:latest
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
environment:
- FFMPEG_ARGS=-hwaccel cuda -hwaccel_output_format cuda
- FFMPEG_OUTPUT_ARGS=-c:v h264_nvenc -preset fast
```
---
### Intel Quick Sync Video (QSV)
```yaml
services:
convertx:
image: convertx/convertx-cn:latest
devices:
- /dev/dri:/dev/dri
environment:
- FFMPEG_ARGS=-hwaccel qsv
- FFMPEG_OUTPUT_ARGS=-c:v h264_qsv -preset faster
```
---
### AMD VAAPI
```yaml
services:
convertx:
image: convertx/convertx-cn:latest
devices:
- /dev/dri:/dev/dri
environment:
- FFMPEG_ARGS=-hwaccel vaapi -hwaccel_device /dev/dri/renderD128
- FFMPEG_OUTPUT_ARGS=-c:v h264_vaapi
```
---
## 反向代理
### Nginx
```nginx
server {
listen 80;
server_name convert.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
server_name convert.example.com;
ssl_certificate /etc/nginx/ssl/cert.pem;
ssl_certificate_key /etc/nginx/ssl/key.pem;
client_max_body_size 0; # 無檔案大小限制
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_cache_bypass $http_upgrade;
# 長時間連線支援(大檔案轉換)
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
}
```
### Caddy
```
convert.example.com {
reverse_proxy localhost:3000 {
header_up X-Real-IP {remote_host}
header_up X-Forwarded-Proto {scheme}
}
request_body {
max_size 0 # 無限制
}
}
```
### Traefik
參考 [docker.md](docker.md#使用-traefik-反向代理) 中的 Traefik 配置。
---
## 子路徑部署
如果需要在子路徑部署(如 `https://example.com/convertx`
### 1. 設定環境變數
```yaml
environment:
- WEBROOT=/convertx
```
### 2. Nginx 配置
```nginx
location /convertx/ {
proxy_pass http://localhost:3000/;
# ... 其他 proxy 設定
}
```
### 3. Caddy 配置
```
example.com {
handle_path /convertx/* {
reverse_proxy localhost:3000
}
}
```
---
## 限制同時轉換數
防止伺服器過載:
```yaml
environment:
- MAX_CONVERT_PROCESS=4 # 最多同時 4 個轉換任務
```
---
## 匿名模式
允許不登入即可使用:
```yaml
environment:
- ALLOW_UNAUTHENTICATED=true
- HIDE_HISTORY=true # 建議同時隱藏歷史
- AUTO_DELETE_EVERY_N_HOURS=1 # 快速清理
```
---
## 高可用部署
### 多容器部署
ConvertX-CN 支援多容器部署,但需注意:
1. **共享儲存**:所有容器需存取相同的 `/app/data` 目錄
2. **資料庫鎖定**SQLite 在高併發下可能有問題
3. **JWT Secret**:所有容器需使用相同的 `JWT_SECRET`
```yaml
services:
convertx-1:
image: convertx/convertx-cn:latest
volumes:
- shared-data:/app/data
environment:
- JWT_SECRET=${JWT_SECRET}
convertx-2:
image: convertx/convertx-cn:latest
volumes:
- shared-data:/app/data
environment:
- JWT_SECRET=${JWT_SECRET}
nginx:
image: nginx:alpine
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
volumes:
shared-data:
driver: local
driver_opts:
type: nfs
o: addr=nfs-server,rw
device: ":/path/to/shared/data"
```
---
## 效能調優
### 記憶體限制
```yaml
deploy:
resources:
limits:
memory: 8G
reservations:
memory: 2G
```
### CPU 限制
```yaml
deploy:
resources:
limits:
cpus: '4'
reservations:
cpus: '1'
```
---
## 日誌管理
### 查看日誌
```bash
docker logs convertx-cn
docker logs -f convertx-cn # 即時追蹤
docker logs --tail 100 convertx-cn # 最後 100 行
```
### 日誌輪轉
```yaml
services:
convertx:
# ...
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
```