多用户部署方案

团队共用一个 OpenClaw —— 权限隔离很重要

团队共用一个 OpenClaw

自己用的话一个容器就够了,但如果是团队用,问题就来了:谁用了多少 Token?怎么防止张三看到李四的对话?一个人跑大模型把 CPU 吃满了怎么办?

多用户部署的核心就三个字:隔离。账号隔离、数据隔离、资源隔离,缺一不可。

四步搞定多用户

1

用户管理

给每个人创建独立账号,设置强密码或对接 SSO(企业内部的统一登录系统)。别让大家共用一个账号,出了问题都分不清是谁干的。

2

权限配置

不同角色给不同权限。管理员可以改配置、看所有人的用量;普通用户只能用自己的会话。按需分配,最小权限原则。

3

资源隔离

给每个用户或用户组设置资源上限 —— CPU、内存、Token 用量。防止一个人跑疯了影响所有人。

4

审计日志

记录谁在什么时候做了什么操作。出了安全问题能追溯,用量统计也能出报表。合规要求高的企业这个是必须的。

方案对比

单实例多用户

一个 OpenClaw 容器,多个用户账号

  • 部署简单,资源利用率高
  • 通过应用层做用户隔离
  • 适合小团队(10 人以内)
  • 一个容器挂了所有人都用不了
VS
每人独立容器

每个用户跑自己的容器

  • 完全隔离,互不影响
  • 资源消耗大(每个容器都要占内存)
  • 用 Traefik 或 Nginx 做路由
  • 适合对隔离性要求高的场景

多用户容器编排(Traefik 方案)

用 Traefik 做反向代理和路由,每个用户一个独立容器,通过子域名或路径区分:

docker-compose.yml — Traefik + 多用户
services:
  traefik:
    image: traefik:v2.10
    container_name: traefik
    restart: always
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"  # Traefik Dashboard
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik.yml:/etc/traefik/traefik.yml
      - ./certs:/certs
    networks:
      - openclaw-net

  # 用户 A
  openclaw-alice:
    image: openclaw/openclaw:latest
    container_name: openclaw-alice
    restart: always
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.alice.rule=Host(`alice.openclaw.example.com`)"
      - "traefik.http.services.alice.loadbalancer.server.port=3000"
    volumes:
      - ./users/alice/data:/app/data
      - ./users/alice/config:/app/config
    deploy:
      resources:
        limits:
          cpus: "2.0"
          memory: 2G
    networks:
      - openclaw-net

  # 用户 B
  openclaw-bob:
    image: openclaw/openclaw:latest
    container_name: openclaw-bob
    restart: always
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.bob.rule=Host(`bob.openclaw.example.com`)"
      - "traefik.http.services.bob.loadbalancer.server.port=3000"
    volumes:
      - ./users/bob/data:/app/data
      - ./users/bob/config:/app/config
    deploy:
      resources:
        limits:
          cpus: "2.0"
          memory: 2G
    networks:
      - openclaw-net

networks:
  openclaw-net:
    driver: bridge
💡 企业级多用户推荐用 K8s Namespace 隔离。每个用户或团队一个 Namespace,用 ResourceQuota 控制资源上限,NetworkPolicy 控制网络隔离。比 Docker Compose 管理起来方便得多,尤其是用户数超过 10 个的时候。详见 K8s 部署教程

用户管理脚本

快速添加新用户的脚本,自动创建目录和容器:

添加新用户
#!/bin/bash
# 添加新用户脚本
USERNAME=$1

if [ -z "$USERNAME" ]; then
  echo "Usage: ./add_user.sh "
  exit 1
fi

# 创建用户数据目录
mkdir -p "./users/$USERNAME/data"
mkdir -p "./users/$USERNAME/config"

# 生成用户配置
echo "User $USERNAME created"
echo "Access URL: https://$USERNAME.openclaw.example.com"

# 重新部署(Traefik 会自动发现新容器)
docker compose up -d
嫌自己搭多用户太麻烦?MOLILI 企业版自带多用户管理、权限控制、用量统计、审计日志,开箱即用,省得自己折腾。 了解 MOLILI →
这篇教程对你有帮助吗?