OpenProgram Docs

多实例与 Profile#

这页说明如何在同一台机器上并行运行多个互不干扰的 OpenProgram 实例——常见场景是一个稳定实例日常用,一个开发实例改代码。

profile:隔离状态目录#

默认所有状态(config / sessions / logs / memory)都在 ~/.openprogram/。指定 profile 后改存 ~/.openprogram-<name>/,两个实例互不共享任何数据:

openprogram --profile dev            # CLI 全局参数
OPENPROGRAM_PROFILE=dev openprogram  # 或环境变量,二者等价(两者都设时以参数为准)

--profile 是全局参数,放在子命令前,对所有子命令生效:openprogram --profile dev sessions listopenprogram --profile dev restart 等。

端口:每个实例一个#

每个实例只监听一个端口(API、WebSocket 和 web UI 同端口),默认 18100。改端口有三种方式:

# 1. 持久化到该 profile 的配置(推荐,之后启动不用再带参数)
openprogram --profile dev ports --port 18200

# 2. 环境变量,覆盖本次运行
OPENPROGRAM_WEB_PORT=18200 openprogram web

# 3. 命令行参数,只对这一次 `openprogram web` 生效
openprogram web --port 18200

ports 的设置写进当前 profile 的 config,所以每个 profile 记住自己的端口。

示例:稳定 + 开发双实例#

稳定实例用默认 profile 和默认端口,开发实例用 dev profile 和 18200:

# 稳定实例(日常使用)
openprogram web                        # http://localhost:18100

# 开发实例:先把端口写进 dev profile(一次性)
openprogram --profile dev ports --port 18200

# 之后每次这样启动
openprogram --profile dev web          # http://localhost:18200

两个实例各有自己的会话、配置、日志和后台 worker;openprogram status 看的是默认实例,openprogram --profile dev status 看开发实例。

Last updated · 2026-08-13