Docker 配置 Zotero 的 DeepL自定义翻译源

  由于各种原因,在国内注册 DeepL 的免费计划都十分困难,需要使用国外信用卡认证之后才可获取 API 。本项目可让用户在不注册账号的前提下,使用 DeepL 作为翻译服务。

  教程大多部署在本地 Docker 容器内,使得每次都需打开 Docker 客户端开启翻译源容器,不仅占用本地电脑内存资源,也使得操作复杂。因此,本教程将该翻译源服务部署在云服务器端,方便快捷使用 DeepL 翻译服务。

  简介:

  zu1k 通过逆向 DeepL 客户端使用的协议,实现免费的 DeepL API。

准备工作

  1. 一台服务器,并获取该服务器公网 IP 。

  2. Zotero 软件安装 Zotero PDF Translate 插件。

一、安装 Docker

在 Ubuntu 上安装 Docker 。首先启用 Docker 软件源,导入 GPG key,并且安装软件包。

  1. 更新系统软件包索引:

    1
    sudo apt-get update
  2. 安装必须的依赖软件来添加一个新的 HTTPS 软件源:

    1
    sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
  3. 使用下面的 curl 导入源仓库的 GPG key:

    1
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
  4. 将 Docker APT 软件源添加到 Ubuntu 系统:

    1
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  5. 现在 Docker 软件源已被启用,继续安装软件源中任何可用的 Docker 版本:

    • 想要安装 Docker 最新版本,运行下面的命令。如果想安装指定版本,跳过这个步骤,并跳到下一步。

      1
      sudo apt-get install -y docker-ce docker-ce-cli containerd.io
    • 若想要安装指定版本,首先列出 Docker 软件源中所有可用的版本:

      1
      sudo apt-get list -a docker-ce
    • 可用的 Docker 版本将会在第二列显示。例如,在官方 Docker 软件源中有个 Docker 版本可用:

      1
      docker-ce/focal 5:19.03.9~3-0~ubuntu-focal amd64
    • 通过在软件包名后面添加版本=<VERSION>来安装指定版本:

      1
      sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io
  6. 验证 Docker 的状态:

    1
    sudo systemctl status docker

    输出将会显示以下信息:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ● docker.service - Docker Application Container Engine
    Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
    Active: active (running) since Sat 2024-04-20 03:14:50 EDT; 37min ago
    TriggeredBy: ● docker.socket
    Docs: https://docs.docker.com
    Main PID: 134876 (dockerd)
    Tasks: 25
    Memory: 47.7M
    CGroup: /system.slice/docker.service
    ├─134876 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
    ├─137446 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8080 -container-ip 172.17.0.2 -container-port 80
    └─137451 /usr/bin/docker-proxy -proto tcp -host-ip :: -host-port 8080 -container-ip 172.17.0.2 -container-port 80
    ······
  7. 当一个新的 Docker 发布时,可以选择升级 Docker 软件包或者组织 Docker 自动更新:

    • 更新升级 Docker 软件包:

      1
      sudo apt-get update && sudo apt-get upgrade
    • 阻止 Docker 自动更新,锁定当前版本:

      1
      sudo apt-mark hold docker-ce

二、拉取镜像

在终端执行 zu1k 的备份镜像:

1
docker pull kanikig/deepl-bk

或使用另一个 zu1k 备份镜像:

1
docker pull missuo/deeplx-bk

三、部署 DeepL 服务

根据不同的硬件架构使用不同的命令进行网络端口映射,其中 8080 是服务运行的端口,可以修改为其他数值,镜像也可使用另一个备份镜像:

  • Mac (Intel) 和 Windows :

    1
    docker run -itd -p 8080:80 --name dyx kanikig/deepl-bk
  • Mac (M1/M2) 和 Linux :

    1
    docker run --platform linux/amd64 -p 8080:80 --name dyx -itd kanikig/deepl-bk

Docker 常用指令:

  • 启动容器:

    1
    docker start dyx
  • 查看 Docker 所有的容器,包括未运行的容器。-p 则是静默模式,只显示容器编号。

    1
    docker ps -a

四、配置 Zotero

打开 Zotero - 选项 - 翻译 - 翻译引擎 - DeepL自定义,在密钥中输入以下链接。如果按照上完进行配置:

  • 服务器部署,则密钥为 公网 IP + Port :

    1
    http://47.24.12.25:8080/translate
  • 在本地部署,则密钥为 本地 IP + Port:

    1
    http://127.0.0.1:8080/translate

五、卸载 Docker

在卸载 Docker 之前,最好移除所有的 容器、镜像、卷和网络

  1. 运行下面的命令停止所有正在运行的容器,并且移除所有的 Docker 对象:

    1
    2
    docker container stop $(docker container ls -aq)
    docker system prune -a --volumes
  2. 使用 apt 卸载 Docker 软件包:

    1
    2
    sudo apt purge docker-ce
    sudo apt autoremove
发布于

2024-04-20

更新于

2024-09-26

许可协议

评论

:D 一言句子获取中...