Docker
官方 Paseo Docker 镜像运行 daemon,并在同一个 HTTP 源上提供内置的浏览器界面。它适用于服务器、开发机、NAS 设备、家庭实验室主机,以及其他你希望在没有桌面应用的情况下运行 Paseo 的地方。
Docker 镜像跟随 Paseo 稳定版的发布节奏。ghcr.io/getpaseo/paseo:latest 指向最新的稳定版,而不是任意的 main 构建。
docker run -d --name paseo \
-p 6767:6767 \
-e PASEO_PASSWORD=change-me \
-v "$PWD/paseo-home:/home/paseo" \
-v "$PWD:/workspace" \
ghcr.io/getpaseo/paseo:latest
然后打开:
http://localhost:6767
如果设置了 PASEO_PASSWORD,在网页界面、移动应用或 CLI 中添加直连 daemon 时,请使用相同的密码。
镜像包含什么
该镜像:
- 安装 Paseo daemon 和 CLI
- 提供内置的网页界面
- 在容器内监听
0.0.0.0:6767 - 把 daemon 状态保存在
/home/paseo/.paseo下 - 以非 root 的
paseo用户运行 daemon 和启动的 Agent
该镜像不包含 Claude Code、Codex、OpenCode、Copilot、Pi 或 Muse Code 等 Agent CLI。请用一个小的子镜像添加你使用的 Agent。
在宿主机上运行 CLI 命令时需要显式指定容器,例如 paseo project ls --host 127.0.0.1:6767。如果不指定端点,CLI 会查找本地 home 的 supervisor。容器的环境变量设置属于部署层面的覆盖;重启 worker 会保留它们。完整替换 supervisor 由你的容器管理器负责。
Docker Compose
services:
paseo:
image: ghcr.io/getpaseo/paseo:latest
container_name: paseo
restart: unless-stopped
ports:
- "6767:6767"
environment:
PASEO_PASSWORD: "change-me"
# PASEO_HOSTNAMES: "paseo.example.com,.lan"
volumes:
- ./paseo-home:/home/paseo
- ./workspace:/workspace
启动:
docker compose up -d
安装 Agent CLI
为你想使用的 Provider 创建一个子镜像:
FROM ghcr.io/getpaseo/paseo:latest
USER root
RUN npm install -g @openai/codex @anthropic-ai/claude-code opencode-ai
构建:
docker build -t paseo-with-agents .
然后在 Compose 中使用 image: paseo-with-agents。
保持子镜像的用户为 root。基础镜像的入口点只在首次运行配置挂载卷时使用 root,之后会以非 root 的 paseo 用户运行 daemon 和启动的 Agent。
你可以通过传入 Provider 环境变量来认证 Agent,也可以在容器内运行 Provider 的登录流程:
docker exec -it --user paseo paseo codex
docker exec -it --user paseo paseo claude
Agent 凭据会持久保存在 /home/paseo 中。
挂载卷
大多数部署需要挂载两个路径:
| 挂载点 | 用途 |
|---|---|
/home/paseo | Paseo 状态,以及 .codex、.claude 等 Agent 配置和凭据 |
/workspace | Paseo 和启动的 Agent 可以读写的代码 |
在 Linux 上,内置的 paseo 用户的 uid/gid 是 1000:1000。请让挂载的目录对该用户可写,或者使用 Docker 的 --user / Compose 的 user: 选项运行容器。
反向代理
把普通 HTTP 流量和 WebSocket 升级请求转发到容器。
Caddy:
paseo.example.com {
reverse_proxy 127.0.0.1:6767
}
Nginx:
server {
listen 443 ssl;
server_name paseo.example.com;
location / {
proxy_pass http://127.0.0.1:6767;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
如果你通过 DNS 名称访问 Paseo,请允许该主机名:
environment:
PASEO_HOSTNAMES: "paseo.example.com,.lan"
IP 和 localhost 默认是允许的。
安全
对于任何发布的端口或可通过网络访问的部署,请设置 PASEO_PASSWORD。在 localhost 之外通过浏览器访问时,请在反向代理上使用 HTTPS。
静态网页界面在 daemon 源上是公开的。配置密码后,daemon API 和 WebSocket 受密码认证保护。
Agent 可以访问你挂载到 /workspace 的任何内容,以及你放在 /home/paseo 中的任何凭据。请把这些挂载限制在 Agent 应该能使用的范围内。
完整的 daemon 信任模型见安全。
故障排查
- 界面能加载但无法连接:如果设置了
PASEO_PASSWORD,请使用相同的密码添加直连。 - 403 Host not allowed:把
PASEO_HOSTNAMES设置为你使用的 DNS 名称。 - Provider 不可用:在子镜像中安装该 Agent CLI,或确保二进制文件在
PATH中。 /workspace中的权限错误:让挂载的目录对 uid/gid1000:1000可写,或以宿主机的 uid/gid 运行容器。- 日志:运行
docker logs paseo,或在容器内查看/home/paseo/.paseo/daemon.log。
赞助商
Cloud coding agents
- 成为赞助商