# app-instance 单体 app instance:一个 Docker 容器内运行前端、后端和 Nginx。这个目录只提供干净的应用实例,不再负责用户注册登录、实例编排、注册表或反向代理路由。 ## 关键文件 - `Dockerfile`: 统一镜像构建入口 - `entrypoint.sh`: 容器内启动前端、后端、Nginx - `run-standalone.sh`: 从 `.env` 读取参数,构建并运行单体容器 - `.env.example`: 可复制的部署参数模板 ## Keycloak SSO 当前登录交给 Keycloak: - issuer: `https://keycloak.bwgdi.com/realms/beaver` - client_id: `beaver-agnet` - flow: Authorization Code + PKCE S256 - password grant: disabled - client secret: none 应用需要在 Keycloak client 中配置: - `redirect_uri`: `http://:/auth/callback` - `post_logout_redirect_uri`: `http://:/logout/callback` - `web_origin`: `http://:` 默认单机部署示例: ```text redirect_uri: http://172.19.0.245:18080/auth/callback post_logout_redirect_uri: http://172.19.0.245:18080/logout/callback web_origin: http://172.19.0.245:18080 ``` ## 部署 ```bash cp .env.example .env ./run-standalone.sh --build --replace ``` 脚本会输出当前需要填到 Keycloak 的 `redirect_uri`、`post_logout_redirect_uri` 和 `web_origin`。 ## 数据目录 默认数据目录: ```text runtime/standalone/beaver-home/ ``` 容器内挂载到: ```text /root/.beaver/ ``` 并设置: ```text BEAVER_CONFIG_PATH=/root/.beaver/config.json BEAVER_WORKSPACE=/root/.beaver/workspace ``` 模型 provider、API key、workspace 数据都在这个目录下维护。