尧图精选

Nextcloud AIO 集成 LibreTranslate 机器翻译:社区容器安装、occ 参数配置与弃用迁移指南

🕒 发布时间:2026/10/2 2:05:48 📁 来源:尧图网络
云原生运维后端容器编排【免费下载链接】all-in-one The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.项目地址https://gitcode.com/GitHub_Trending/al/all-in-one点击查看免费下载LibreTranslate 是一个开源的、可自托管的机器翻译引擎而本仓库Nextcloud AIO通过community-containers/libretranslate社区容器将其一键打包进 AIO 技术栈自动完成镜像编排、Nextcloud 应用安装与网络对接。本文将以该容器的 readme.md 与 libretranslate.json 为骨架结合 AIO 的容器定义解析源码完整讲解它的安装方式、默认翻译语言配置、数据持久化机制以及官方的弃用说明与向 translate2 迁移的替代路径。[!WARNING] 该容器与配套应用已进入弃用deprecated状态。官方建议改用 translate2 应用先在 AIO 界面启用 Docker-Socket-Proxy再访问https://your-nc-domain.com/settings/apps/tools安装并启用Local Machine Translation应用。下文会同时给出旧方案的完整操作供存量用户维护与新方案的迁移步骤。一、LibreTranslate 社区容器概述社区容器Community Containers是 AIO 提供的一种扩展机制任何第三方维护者都可以通过一个 JSON 定义 一个 readme的方式把额外功能容器挂载进 AIO 的编排体系而无需修改 AIO 主程序。LibreTranslate 容器就是其中的典型范例正如 community-containers/readme.md 中所描述的它属于 AI Language 分组充当 Nextcloud 的机器翻译引擎。它的核心价值在于自动编排容器由 AIO 主容器mastercontainer统一创建、启动、更新与备份无需手动管理docker run参数自动配置 Nextcloud 应用通过nextcloud_exec_commands机制容器启动后自动安装并启用integration_libretranslate应用并把主机与端口写入应用配置数据持久化翻译模型与数据库存放在独立的 Docker volume 中随 AIO 备份体系一起纳入管理。二、容器定义文件逐字段解读libretranslate.json是 AIO 编排该容器的唯一事实来源位于 community-containers/libretranslate/libretranslate.json。完整的定义如下{ aio_services_v1: [ { container_name: nextcloud-aio-libretranslate, display_name: LibreTranslate (deprecated), documentation: https://github.com/nextcloud/all-in-one/tree/main/community-containers/libretranslate, image: ghcr.io/szaimen/aio-libretranslate, image_tag: v1, internal_port: 5000, restart: unless-stopped, environment: [ TZ%TIMEZONE% ], volumes: [ { source: nextcloud_aio_libretranslate_db, destination: /app/db, writeable: true }, { source: nextcloud_aio_libretranslate_models, destination: /home/libretranslate/.local, writeable: true } ], nextcloud_exec_commands: [ php /var/www/html/occ app:install integration_libretranslate, php /var/www/html/occ app:enable integration_libretranslate, php /var/www/html/occ config:app:set integration_libretranslate host --valuehttp://nextcloud-aio-libretranslate, php /var/www/html/occ config:app:set integration_libretranslate port --value5000 ] } ] }逐字段含义如下字段值说明container_namenextcloud-aio-libretranslate容器名须符合 schema 中^nextcloud-aio-[a-z0-9-]$的命名规则见 php/containers-schema.jsondisplay_nameLibreTranslate (deprecated)在 AIO 界面中显示的名称明确标注了弃用状态image/image_tagghcr.io/szaimen/aio-libretranslate/v1镜像来源与固定标签该容器由社区维护者 szaimen 维护internal_port5000容器内部监听端口供同网络内的 Nextcloud 应用通过容器名访问restartunless-stopped重启策略schema 目前仅允许unless-stoppedenvironmentTZ%TIMEZONE%时区环境变量%TIMEZONE%是 AIO 占位符运行时会被替换为实例的实际时区设置volumes两个卷持久化翻译数据库/app/db与模型文件/home/libretranslate/.local均设置为可写nextcloud_exec_commands4 条 occ 命令由 AIO 注入 Nextcloud 容器内执行完成应用安装、启用与连接配置关于nextcloud_exec_commandsphp/containers-schema.json 明确限制其内容只能是php /var/www/html/occ ...、echo ...、touch ...或mkdir ...形式的命令这从机制上保证了社区容器只能在 Nextcloud 容器内执行受控的管理操作。三、AIO 是如何加载并执行这些定义的源码佐证理解社区容器的编排机制有助于判断容器行为是否符合预期。从源码看整个过程分三步1. 定义合并与解析php/src/ContainerDefinitionFetcher.php 的GetDefinition()方法在读取主php/containers.json后会遍历ConfigurationManager中已启用的社区容器列表逐一读取community-containers/名称/名称.json并通过array_merge_recursive合并进统一的服务定义随后每个条目被解析为Container对象其中nextcloud_exec_commands会被原样挂载到容器对象上第 331-334 行。2. 环境变量注入php/src/Docker/DockerActionManager.php 在创建 Nextcloud 容器时第 282-284 行会调用GetAllNextcloudExecCommands()它递归收集nextcloud-aio-nextcloud及其依赖容器的所有 exec 命令拼装成NEXTCLOUD_EXEC_COMMANDS环境变量注入 Nextcloud 容器。这就是为什么 LibreTranslate 只需声明 4 条 occ 命令Nextcloud 容器启动后就会自动执行它们。3. 容器内执行Containers/nextcloud/run-exec-commands.sh 是实际执行者它会先等待 Apache 容器就绪通过nc -z探测$APACHE_HOST:$APACHE_PORT然后把NEXTCLOUD_EXEC_COMMANDS内容写入临时脚本并执行。由此保证翻译应用只会在 Nextcloud 完全可用之后才被安装与启用。同时由于 LibreTranslate 容器的internal_port为5000且与 Nextcloud 同处nextcloud-aio网络Nextcloud 内安装的integration_libretranslate应用便可通过http://nextcloud-aio-libretranslate:5000直接调用翻译服务无需暴露任何宿主机端口——这是 AIO 社区容器零端口映射设计的一个典型体现。四、在 AIO 界面中安装与启用自 AIO v11 起社区容器的管理已全部集成到 AIO 网页界面它是界面中最后一个版块需要向下滚动才能看到。安装 LibreTranslate或其他社区容器的操作路径打开 AIO 管理界面滚动到最下方的Community Containers区域找到LibreTranslate (deprecated)条目并启用点击启动 / 更新容器等待主容器完成编排观察 Nextcloud 容器日志确认integration_libretranslate应用安装成功。⚠️ 官方在 community-containers/readme.md 中特别提醒添加任何社区容器前务必先阅读对应容器的文档。部分容器之间互不兼容不做功课直接启用可能破坏整个 AIO 栈的启动。同时所有社区容器均由社区维护其更新与安全性不保证持续跟进使用前请自行评估风险。五、配置默认翻译语言occ 命令容器与应用首次启动完成后LibreTranslate 应用默认的翻译方向源语言 / 目标语言可能需要按实际使用场景调整。原文档给出了两条occ命令通过 Nextcloud 容器内的命令行直接改写应用配置# 将下面的 en 与 de 替换为你需要的语言代码 sudo docker exec --user www-data nextcloud-aio-nextcloud php occ config:app:set integration_libretranslate from_lang --valueen sudo docker exec --user www-data nextcloud-aio-nextcloud php occ config:app:set integration_libretranslate to_lang --valuede参数说明from_lang默认源语言代码示例中的en表示英语to_lang默认目标语言代码示例中的de表示德语语言代码遵循 LibreTranslate 支持的 ISO 639-1 格式可按需替换如zh、fr、es等--user www-data确保以 Nextcloud 的 Web 运行用户身份执行避免文件权限问题命令会写入 Nextcloud 的应用配置立即生效无需重启容器。若需为同一应用在运行时动态切换语言也可直接在 Nextcloud 文件菜单的翻译入口中选择occ命令设置的只是默认值。六、数据持久化与备份该容器声明了两个可写数据卷卷名挂载点用途nextcloud_aio_libretranslate_db/app/db翻译历史 / 使用数据库nextcloud_aio_libretranslate_models/home/libretranslate/.local已下载的翻译模型文件这两类数据尤其是模型文件体积可能较大都被持久化在命名卷中与 AIO 的备份体系集成升级镜像或重启容器时不会丢失。删除容器后如需彻底清理可参考下一节的移除流程。七、移除容器与数据清理当不再需要该翻译容器时可以在 AIO 界面中将其从技术栈移除。移除后宿主机上可能残留数据官方建议按以下顺序清理# 1. 删除容器将 container1 替换为实际容器名 sudo docker rm nextcloud-aio-libretranslate # 2. 清理不再使用的镜像 sudo docker image prune -a # 3. 查看残留的命名卷 sudo docker volume ls # 4. 删除匹配的卷将 volume-id 替换为实际卷名 sudo docker volume rm nextcloud_aio_libretranslate_db sudo docker volume rm nextcloud_aio_libretranslate_models提示如果没有服务器的 CLI 访问权限也可以借助container-management社区容器通过 Web 会话执行上述 docker 命令详见 community-containers/readme.md。八、弃用说明与迁移到 translate2原文档明确给出警告LibreTranslate 容器及其配套应用已被弃用官方推荐的替代方案是 translate2 应用。迁移步骤在 AIO 界面中启用Docker-Socket-Proxy它是 AIO 的内置容器位于 Containers/docker-socket-proxy作用是安全地暴露 Docker API 供受信任的容器访问访问https://your-nc-domain.com/settings/apps/tools将域名替换为你的 Nextcloud 实例地址在应用列表中找到并安装Local Machine Translation应用并启用该应用同样基于本地翻译引擎功能上覆盖 LibreTranslate 提供的机器翻译场景。完成迁移并验证翻译功能正常后即可按上一节流程将 LibreTranslate 社区容器从技术栈中移除以保持栈内组件精简、减少维护面。九、总结LibreTranslate 社区容器是理解 Nextcloud AIO 扩展机制的绝佳范例一份 JSON 定义即完成了镜像编排、卷持久化、occ 应用安装与网络对接的全过程其nextcloud_exec_commands机制定义解析 → 环境变量注入 → 容器内执行在 ContainerDefinitionFetcher.php、DockerActionManager.php 与 run-exec-commands.sh 中均有清晰实现可循。对于仍在维护旧实例的读者本文给出的occ语言配置与数据清理命令可直接投入生产对于新部署请直接采用官方推荐的 translate2 迁移路径避免引入已弃用组件。赞分享云原生运维后端容器编排【免费下载链接】all-in-one The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.项目地址https://gitcode.com/GitHub_Trending/al/all-in-one点击查看免费下载相关推荐Nextcloud AIO 社区容器 SMB-server 完整部署与配置指南Nextcloud AIO 社区容器 SMB server 完整部署与配置指南 本指南以 Nextcloud AIOAll in One官方仓库中的 SMB云原生运维后端容器编排Nextcloud AIO 人脸识别Facerecognition社区容器部署与配置指南Nextcloud AIO 人脸识别Facerecognition社区容器部署与配置指南 人脸识别社区容器Facerecognition为 Nextcl云原生运维后端容器编排AVA Node 参数传递机制全解析--node-arguments、nodeArguments 配置与 filterNodeArgumentsForWorkerThreads 过滤实践AVA Node 参数传递机制全解析 node arguments 、 nodeArguments 配置与 filterNodeArgumentsForWor云原生运维后端容器编排上一篇gogcli gog gmail trash 命令实战批量将 Gmail 邮件移入回收站的完整机制与源码剖析下一篇三步搞定B站视频下载这个Python工具让你永久保存任何想看的视频创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联 返回资讯列表 →