LibreTranslate 开源机器翻译 API 快速自托管实战:3 种方式覆盖 Windows/Linux/macOS 从入门到生产

发布时间:2026/8/24 16:39:09
LibreTranslate 开源机器翻译 API 快速自托管实战:3 种方式覆盖 Windows/Linux/macOS 从入门到生产 LibreTranslate 开源机器翻译 API 快速自托管实战3 种方式覆盖 Windows/Linux/macOS 从入门到生产【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate依赖商业翻译 API 按字符计费、文本还离不开本地而自托管机器翻译正是团队想要“完全可控”的翻译服务时最常见的解法。LibreTranslate 是一款自托管、可离线运行、无使用限制的开源机器翻译 API基于 Python/Flask 提供标准 HTTP 接口并自带 Web 界面Windows、Linux、macOS 三个平台都能跑。本文不按操作系统分章而是沿着部署任务流组织——先做选型、再快速落地、然后按需定制参数、最后做生产加固与故障排查各操作系统的差异只在对应步骤内说明每个关键配置都附一句“为什么这么配”。选型决策一张表定下路径与硬件门槛先根据用途确定走哪条部署路径硬件规格三平台要求一致但各平台可用的部署方式不同。部署方式平台支持硬件门槛最低 / 推荐适用场景官方脚本 DockerWindows / macOS / Linux4 核 / 8GB / 20GB8 核 / 16GB / SSD 更佳个人尝鲜、快速体验Docker ComposemacOS / LinuxUbuntu 20.04、CentOS 8同上小团队长期挂在内网跑源码安装macOS / LinuxWindows 官方仅支持 Docker同上需要自定义缓存、GPU 或二次开发端口方面默认监听 5000/TCP客户端需能访问服务器IP:5000或自定义端口安装阶段需要外网下载依赖和语言模型。用 Docker 三步快速落地这是覆盖平台最广、后续升级最省事的路径核心就三件事装好 Docker、跑启动脚本、验证可用。各平台安装 DockerWindows管理员 PowerShellwinget install Docker.DockerDesktop装完后等任务栏图标动画停止即代表服务就绪macOSbrew install --cask docker然后open -a Docker启动LinuxUbuntu/Debiansudo apt update sudo apt install -y docker.io docker-composeCentOS/RHELsudo yum install -y docker docker-compose sudo systemctl enable --now docker验证docker --version与docker-compose --version都能输出版本号即可用官方脚本一键启动克隆仓库并进入目录git clone https://gitcode.com/GitHub_Trending/li/LibreTranslate cd LibreTranslate直接运行仓库自带的启动脚本Windows 为run.batmacOS/Linux 为 run.sh# Windows默认 5000 端口 .\run.bat# macOS / Linux ./run.sh --port 5000可选加--api-keys启用 API 密钥认证脚本会自动挂载lt-db卷把密钥库持久化可选透传额外参数如./run.sh --load-only en,fr,es只加载需要的语言脚本启动时会自动挂载lt-local卷到/home/libretranslate/.local把语言模型存进 Docker 卷里——这样下次启动不用重新下载模型能省掉最耗时的冷启动环节。手动 docker run 做更细的参数控制脚本只是docker run的封装需要更细控制时直接下命令# 基础启动 docker run -it --rm -p 5000:5000 libretranslate/libretranslate # 持久化 API 密钥数据 docker run -it --rm -p 5000:5000 -v lt-db:/app/db libretranslate/libretranslate # 限制仅加载特定语言模型减少内存占用 docker run -it --rm -p 5000:5000 libretranslate/libretranslate --load-only en,fr,es验证部署与调用翻译接口浏览器能打开界面、curl 能拿到译文就说明服务已可用。打开http://localhost:5000出现 Web 界面即部署成功用接口做二次验证# 语言检测 curl -X POST http://localhost:5000/detect -d qHello world # 文本翻译 curl -X POST http://localhost:5000/translate \ -d qHello -d sourceen -d targetes⚠️ 如果启动时启用了--api-keys请求必须携带有效密钥否则返回{error: Invalid API key}——排查时先确认这一点再怀疑服务本身用参数定制端口、限额与语言模型所有配置都可以用命令行参数或LT_前缀的环境变量设置两者等价环境变量更适合写进 Docker 或 systemd 配置。分组环境变量命令行参数默认值调整目的网络LT_HOST--host127.0.0.1对外提供服务时改为0.0.0.0网络LT_PORT--port5000端口被占用时换端口限额LT_REQ_LIMIT--req-limit-1不限限制每分钟请求数防滥用限额LT_CHAR_LIMIT--char-limit-1不限控制单次请求字符上限防大文本打满内存认证LT_API_KEYS--api-keysfalse多用户场景开启密钥校验模型LT_LOAD_ONLY--load-only加载全部只装需要的语言省内存、加快启动并发LT_THREADS--threads4提升并发处理能力两种写法示例# 命令行参数方式 libretranslate --host 0.0.0.0 --port 8080 --req-limit 200 # 环境变量方式 export LT_HOST0.0.0.0 export LT_PORT8080 libretranslateLinux 与 macOS 源码部署深度定制的入口源码部署比 Docker 多装一层 Python 环境换来的是可以改代码、接自己的缓存组件、跑 GPU 模型。安装环境依赖# Ubuntu / Debian sudo apt update sudo apt install -y python3 python3-pip python3-venv git # CentOS / RHEL sudo yum install -y python3 python3-pip git # macOS brew install python git安装项目并下载语言模型克隆仓库并创建虚拟环境git clone https://gitcode.com/GitHub_Trending/li/LibreTranslate cd LibreTranslate python3 -m venv venv source venv/bin/activate安装依赖pip install -e .可选跑测试套件就装pip install -e .[test]会额外带入 pytest 等开发工具下载语言模型python scripts/install_models.py对应 scripts/install_models.py启动服务# 开发模式 python main.py --debug # 生产模式使用 waitress 服务器 libretranslate --host 0.0.0.0 --port 5000 --threads 4可选systemd 注册开机自启生产机上建议注册成系统服务进程挂了自动拉起sudo tee /etc/systemd/system/libretranslate.service EOF [Unit] DescriptionLibreTranslate Service Afternetwork.target [Service] User$USER WorkingDirectory$(pwd) ExecStart$(pwd)/venv/bin/libretranslate --host 0.0.0.0 --port 5000 Restartalways [Install] WantedBymulti-user.target EOF sudo systemctl daemon-reload sudo systemctl enable --now libretranslate sudo systemctl status libretranslate生产化加固限额、密钥、缓存与 HTTPS 四件事服务要长期对外跑之前把下面四件事做完可以挡掉绝大多数滥用和安全问题。请求限速与字符限额--req-limit 100 --char-limit 5000表示每分钟最多 100 次请求、单次最多 5000 字符——目的不是性能而是防匿名滥用拖垮服务。Docker Compose 里写成LT_REQ_LIMIT100、LT_CHAR_LIMIT5000两个环境变量即可。API 密钥认证# 生成密钥 ltmanage keys add mykey # 启动时启用认证 libretranslate --api-keysDocker 场景下在容器内生成docker exec -it libretranslate ltmanage keys add mykey。仓库自带的 docker-compose.yml 里预留了注释块取消注释LT_API_KEYStrue、LT_API_KEYS_DB_PATH/app/db/api_keys.db以及libretranslate_api_keys:/app/db卷即可持久化密钥库。用 Redis 共享翻译缓存多实例或重复文本较多的场景加上--shared-storage redis://localhost:6379相同译文只算一次明显减轻重复翻译负载。Nginx 反代 HTTPS对公网暴露时不要裸奔 HTTP用反向代理终结 TLSserver { listen 443 ssl; server_name translate.example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://localhost:5000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }可选GPU 加速机器带 NVIDIA 显卡且已装 CUDA 时改用仓库中的 docker-compose.cuda.yml 启动官方称翻译速度可提升 3-5 倍⚠️ 前提是驱动与 CUDA 环境就绪否则容器起不来。常见故障排查遇到问题先对照下表定位绝大多数故障都在这三类里。看到什么先排查什么怎么处理端口被占用5000是否已被其他服务使用关掉占用进程或用--port换端口镜像拉取失败网络 / 镜像仓库访问受限检查网络配置国内镜像源先docker pull libretranslate/libretranslate再运行模型下载慢国际带宽差设置export http_proxy...或手动下载模型放到~/.local/share/argos-translate首次翻译特别慢模型首次加载是同步行为属正常现象长期方案是 GPU 加速或减少--load-only数量内存占用过高同时加载的语言模型过多--load-only只留必需语言机器内存建议至少 8GBAPI 返回Invalid API key密钥错误、缺失或未启用认证核对密钥与请求头或确认启动参数是否需要--api-keys下一步行动与命令速查按顺序做一条命令都不会多按选型表确定部署方式完成「三步快速落地」并打开http://localhost:5000验证用/detect和/translate各发一条请求确认接口返回正常加上--req-limit、--char-limit再决定要不要开--api-keys在 Compose 配置里挂上模型卷和密钥卷避免重启丢数据可选Nginx 反代 HTTPS、接入 Redis 缓存、按机型评估 GPU 加速日常运维速查任务Docker 方式源码方式启动服务docker-compose up -dlibretranslate停止服务docker-compose downCtrlC或systemctl stop libretranslate查看日志docker-compose logs -fjournalctl -u libretranslate -f升级版本docker-compose pullgit pull pip install -e .生成 API 密钥docker exec -it libretranslate ltmanage keys add mykeyltmanage keys add mykey延伸阅读仓库内 docker-compose.yml 的注释行覆盖了 API 密钥持久化与模型卷的完整写法scripts/healthcheck.py 是 Compose 健康检查所用的探测脚本排障时可直接复用到其他编排工具里。【免费下载链接】LibreTranslateFree and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup.项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考