群晖相关

群晖 Docker 部署 MobaXterm Keygen:自动拉取更新,一次部署长期省心

2026-08-07 31 次阅读 1476 字 · 4 分钟

群晖 Docker 部署 MobaXterm Keygen:自动拉取更新,一次部署长期省心



> 在线生成网站:👉 https://mobaxterm.freet.cc/(简体中文界面,打开即用)



MobaXterm 是 Windows 上非常好用的终端工具。本文把开源的 MobaXterm Keygen 项目(zarfadev/MobaXterm-Keygen)用 Docker 部署到群晖,做成一个随时可用的本地网页生成器,并且项目每次更新都会自动拉取最新版本,部署一次、长期省心。

一、方案原理



  • web 容器(nginx):托管生成器网页,端口默认 8088;

  • updater 容器(alpine/git):启动时把项目代码拉进 site-data 卷,之后每隔一段时间自动 fetch + reset 一次,项目一更新就立即生效;

  • 生成器是纯静态站,无需重新构建,拉完即用。


  • 二、准备两个文件



    在群晖 File Station 创建目录 /volume1/docker/mobaxterm-keygen,放入下面两个文件。

    compose.yaml



    services:
      web:
        image: nginx:alpine
        container_name: mobaxterm-keygen-web
        restart: unless-stopped
        ports:
          - "${PORT:-8088}:80"
        volumes:
          - site-data:/usr/share/nginx/html:ro
    
      updater:
        image: alpine/git:latest
        container_name: mobaxterm-keygen-updater
        restart: unless-stopped
        entrypoint: /bin/sh
        command: /updater.sh
        environment:
          TZ: Asia/Shanghai
          REPO_URL: https://github.com/zarfadev/MobaXterm-Keygen.git
          BRANCH: main
          INTERVAL: "3600"
        volumes:
          - site-data:/site
          - ./updater.sh:/updater.sh:ro
    
    volumes:
      site-data:
    


    updater.sh



    #!/bin/sh
    
    REPO_URL="${REPO_URL:-https://github.com/zarfadev/MobaXterm-Keygen.git}"
    BRANCH="${BRANCH:-main}"
    INTERVAL="${INTERVAL:-3600}"
    
    git config --global --add safe.directory /site 2>/dev/null || true
    git config --global --add safe.directory '*' 2>/dev/null || true
    
    echo "[updater] starting (interval=${INTERVAL}s)"
    
    while true; do
      if [ ! -d /site/.git ]; then
        echo "[updater] initializing git repo in /site ..."
        git init -q /site
      fi
      if ! git -C /site remote get-url origin >/dev/null 2>&1; then
        echo "[updater] adding origin $REPO_URL"
        git -C /site remote add origin "$REPO_URL"
      fi
      echo "[updater] fetching $BRANCH ..."
      if git -C /site fetch --depth 1 origin "$BRANCH" && git -C /site reset --hard "origin/$BRANCH"; then
        echo "[updater] synced at $(date)"
      else
        echo "[updater] sync failed, will retry in ${INTERVAL}s"
      fi
      sleep "$INTERVAL"
    done
    


    > 提示:updater.sh 必须是 LF 换行(用 File Station 上传时保持原样即可,不要在 Windows 记事本里编辑保存)。

    三、部署(Container Manager)



  • 打开群晖 Container Manager → 项目 → 新增;

  • 项目名称填 mobaxterm-keygen,路径选 /volume1/docker/mobaxterm-keygen;

  • 系统自动识别 compose.yaml,直接下一步 → 应用;

  • 等待自动拉取 nginx 和 alpine/git 镜像并启动;

  • 首次启动后 updater 会自动从 GitHub 拉取最新代码到 site-data 卷,稍等几秒;

  • 浏览器打开 http://群晖IP:8088(本文示例 http://192.168.1.100:8088),看到生成器界面即部署成功。


  • 四、自动更新说明



  • updater 默认每 3600 秒(1 小时)检查一次更新;

  • 修改检查间隔:在 compose 的 environment 里改 INTERVAL(如 300 = 5 分钟);

  • 修改访问端口:改 PORT(或直接改 8088 那行);

  • 更新日志:docker logs -f mobaxterm-keygen-updater,每行 synced 代表一次拉取成功。


  • 五、日常维护



    cd /volume1/docker/mobaxterm-keygen
    docker compose up -d            # 启动 / 修改配置后重建
    docker compose logs -f updater  # 查看自动更新日志
    docker compose down             # 停止(数据保留)
    


  • 两个容器都设置了 restart: unless-stopped,群晖重启后自动恢复;

  • 不要使用 docker compose down -v:-v 会删除 site-data 卷,下次启动会重新拉取(虽然不丢数据,但没必要);

  • 若群晖网络无法直连 GitHub,可把 REPO_URL 换成可用的镜像源或代理。


  • 六、离线单文件版(可选)



    如果需要在完全无外网的环境使用,也可以用项目生成的单文件版本(MobaXterm-Keygen-local.html),双击即可打开。注意它是快照,不会自动更新;常驻使用建议以本文的 Docker 方案为准。

    七、文件下载



  • 📦 MobaXterm-Keygen-docker.zip(含 compose.yaml、updater.sh、README)


> 中文版说明:本部署包已内置简体中文界面(zh/ 覆盖层),部署后打开即为中文;updater 每次拉取上游更新后会自动应用中文版。

结语



这套方案全程使用群晖自带能力(Container Manager),无需额外安装面板。部署完成后,生成器网页本地可用,项目更新自动拉取,适合长期自用。

评论(0)

7 + 7 =
← 返回首页