绿联云 NAS 安装 OpenClaw 简明指南

绿联云 NAS 安装 OpenClaw 简明指南

本文记录在绿联云 NAS(UGOS Pro)上通过 Docker Compose 部署 OpenClaw,并接入 OpenAI 兼容模型接口的过程。

1. 准备目录

bash 复制代码
sudo mkdir -p \
  /volume1/docker/openclaw/data \
  /volume1/docker/openclaw/auth-profile-secrets \
  /volume1/AIWorkspace/openclaw

2. 创建 Docker Compose

/volume1/docker/openclaw/docker-compose.yml 中写入:

yaml 复制代码
services:
  openclaw-gateway:
    # OpenClaw 官方容器镜像。
    # 初次测试可以使用 latest;稳定运行后建议固定具体版本号,避免自动更新造成兼容问题。
    image: ghcr.io/openclaw/openclaw:latest

    # 固定容器名称,方便在绿联云管理界面中查找。
    container_name: openclaw

    # NAS 或 Docker 重启后自动启动;手动停止后不会自动拉起。
    restart: unless-stopped

    # 使用轻量 init 进程,正确回收子进程,建议保留。
    init: true

    ports:
      # NAS 端口:容器端口。
      # 局域网通过 http://NAS_IP:18789 访问。
      - "18789:18789"

    environment:
      # 容器内 node 用户的主目录。
      HOME: /home/node
      OPENCLAW_HOME: /home/node

      # 时区,可根据实际所在地修改。
      TZ: Asia/Shanghai

      # 改善容器终端输出兼容性。
      TERM: xterm-256color

      # OpenClaw 状态、配置和工作区路径。
      OPENCLAW_STATE_DIR: /home/node/.openclaw
      OPENCLAW_CONFIG_DIR: /home/node/.openclaw
      OPENCLAW_CONFIG_PATH: /home/node/.openclaw/openclaw.json
      OPENCLAW_WORKSPACE_DIR: /home/node/.openclaw/workspace

      # 网关访问令牌。
      # 请在绿联云项目环境变量或同目录 .env 文件中设置,不能留空。
      OPENCLAW_GATEWAY_TOKEN: "${OPENCLAW_GATEWAY_TOKEN}"

      # Docker 桥接网络通常无法正确传递 Bonjour/mDNS,NAS 环境建议关闭。
      OPENCLAW_DISABLE_BONJOUR: "1"

    volumes:
      # OpenClaw 配置、状态、身份信息和会话数据。
      - /volume1/docker/openclaw/data:/home/node/.openclaw
      # OAuth/API 身份资料的本地加密密钥,建议单独持久化并妥善备份。
      - /volume1/docker/openclaw/auth_profile_secrets:/home/node/.config/openclaw
      # Agent 工作区。这个独立挂载会覆盖上面 data 目录中的 workspace 子目录。
      - /volume1/docker/openclaw/workspace:/home/node/.openclaw/workspace



    command:
      # 使用官方当前 Docker Compose 的启动入口。
      - node
      - dist/index.js
      - gateway

      # Docker 端口映射要求监听容器所有网络接口。
      - --bind
      - lan

      # 网关在容器内部监听的端口。
      - --port
      - "18789"

    # 如果需要让容器访问 NAS 上运行的 Ollama 或 LM Studio,可保留此项。
    # 容器内可使用 http://host.docker.internal:11434 访问 NAS 的 Ollama。
    extra_hosts:
      - "host.docker.internal:host-gateway"

    # 定期检测网关是否正常。
    healthcheck:
      test:
        - CMD
        - node
        - -e
        - "fetch('http://127.0.0.1:18789/healthz').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 20s

    # 禁止进程获得额外权限。
    security_opt:
      - no-new-privileges:true

    # 移除网关不需要的网络能力。
    cap_drop:
      - NET_RAW
      - NET_ADMIN

    # 控制 Docker 日志大小,避免长期运行占满 NAS 空间。
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

3. 设置网关令牌

/volume1/docker/openclaw/.env 中写入:

dotenv 复制代码
OPENCLAW_GATEWAY_TOKEN=请替换为高强度随机令牌

可使用以下命令生成:

bash 复制代码
openssl rand -hex 32

不要公开网关令牌或模型 API Key。

4. 首次初始化

进入项目目录:

bash 复制代码
cd /volume1/docker/openclaw

使用管理员权限运行初始化向导:

bash 复制代码
sudo docker compose run --rm --no-deps \
  --entrypoint node \
  openclaw-gateway \
  dist/index.js onboard \
  --mode local \
  --no-install-daemon

自定义 OpenAI 兼容模型的填写示例:

text 复制代码
Model/auth provider: More... → Custom Provider
Endpoint ID: 9route
API Base URL: http://模型服务IP:端口/v1
Endpoint compatibility: OpenAI-compatible
API type: openai-completions
Model ID: text
Model alias: 9route-text(可选)

首次部署时,Hooks 可以选择 Skip for now。选择 Hatch in Terminal 后发送一条测试消息,确认模型可以正常响应,再使用 /exit 退出。

5. 启动并检查

bash 复制代码
sudo docker compose up -d openclaw-gateway
sudo docker compose ps

正常状态应显示:

text 复制代码
Up (...) (healthy)

健康检查:

bash 复制代码
curl http://127.0.0.1:18789/healthz

6. Windows 11 本地端口映射

OpenClaw 控制面板需要 HTTPS 或浏览器的 localhost 安全上下文。家庭可信局域网中,可以让 Windows 将本机端口转发到 NAS。

以管理员身份打开 PowerShell:

powershell 复制代码
Set-Service iphlpsvc -StartupType Automatic
Start-Service iphlpsvc

netsh interface portproxy add v4tov4 `
  listenaddress=127.0.0.1 `
  listenport=18789 `
  connectaddress=NAS局域网IP `
  connectport=18789

查看并测试:

powershell 复制代码
netsh interface portproxy show all
Test-NetConnection 127.0.0.1 -Port 18789

浏览器打开:

text 复制代码
http://127.0.0.1:18789

仪表盘连接参数:

text 复制代码
WebSocket URL: ws://127.0.0.1:18789
网关令牌: .env 中的实际 OPENCLAW_GATEWAY_TOKEN
密码: 留空

不再需要映射时删除:

powershell 复制代码
netsh interface portproxy delete v4tov4 `
  listenaddress=127.0.0.1 `
  listenport=18789

7. 安全建议

  • 不要把 NAS 的 18789 端口映射到公网。
  • Windows 端口映射只解决浏览器安全上下文,电脑到 NAS 之间仍是普通 HTTP,仅适合可信局域网。
  • 远程访问建议使用 SSH 隧道、Tailscale Serve 或带有效证书的 HTTPS 反向代理。
  • 定期备份 /volume1/docker/openclaw/data、工作区和认证密钥目录。
  • 稳定运行后建议固定 OpenClaw 镜像版本,不长期追踪 latest
相关推荐
AC赳赳老秦1 天前
文旅市场公开数据分析:基于 OpenClaw 采集景区客流与门票公示数据,生成区域文旅热度监测报告
java·c语言·python·php·symfony·deepseek·openclaw
AC赳赳老秦1 天前
环保监测公开数据应用:OpenClaw 抓取空气与水质公开监测数据,开展区域环境质量趋势分析
大数据·数据库·人工智能·python·php·deepseek·openclaw
Blockbuater_drug1 天前
MCP Server 接入实战: 9种平台配置差异与凭证安全
claude·cursor·mcp·openclaw·hermes agent·dsh·agent 配置
2601_962298931 天前
阿里云计算巢部署 OpenClaw 保姆级图文攻略|Slack集成+千问Qwen3.6-Plus配置+新手避坑教程
阿里云·新手教程·openclaw·slack集成·千问qwen3.6-plus
AC赳赳老秦2 天前
农产品公开数据应用:OpenClaw 抓取农产品价格、产销公开数据,实现农产品行情动态监测
java·c语言·javascript·python·php·deepseek·openclaw
小手智联老徐3 天前
OpenClaw 2026.9.1:从日更到月更,一个开源项目走向成熟
ai 编程·openclaw
AC赳赳老秦3 天前
电力能源公开数据采集实操:用 OpenClaw 合规抓取电网电价与发电量数据,生成区域能源供需分析报告
大数据·数据库·人工智能·python·php·deepseek·openclaw
海兰6 天前
【部署】升级现有的 OpenClaw 到最新版(v2026.8.2)
人工智能·openclaw
梦077 天前
实操手册-OpenClaw长任务超时无响应的解决
经验分享·openclaw
宇文仲竹13 天前
Docker 一键部署 SearXNG 私有搜索引擎 (给 openclaw 用代替 web_search)
openclaw