Docker Compose
basedb 以单个镜像 eodia/basedb 发布,支持 amd64 和 arm64。仓库中的 docker-compose.yml 将它与 PostgreSQL 组合在一起。所有配置都通过 .env 文件完成(参见环境变量)。
镜像包含 basedb 的三个进程,并通过同一个端口 3000 提供服务:
| 路径 | 进程 |
|---|---|
/api/*、/auth/*、/healthz | REST API、登录、后台任务 |
/mcp | MCP 服务器,供智能体使用 |
其余所有路径——/、/f/…、/v/… | 界面 |
启动时,API 最先启动:在空数据库上,它会应用目录(catalog)并创建第一个管理员;之后再启动时,这两步都不会产生任何作用。API 一旦响应,MCP 服务器就会启动。如果任一进程停止,整个容器都会停止,并由重启策略整体重新启动。
镜像以 node 用户在 Node 22 上运行,声明了健康检查(/healthz)和一个卷 /data,用于存放文件和图片字段的文件。
| 标签 | 内容 |
|---|---|
latest | 最新发布的版本 |
0.7 | 最新的 0.7.x 版本 |
0.7.1 | 恰好是这个版本 |
| 服务 | 镜像 | 端口(在 127.0.0.1 上) | 卷 |
|---|---|---|---|
db | postgres:16-alpine | 5432 | db-data |
basedb | eodia/basedb | 3000 | files → /data |
proxy(可选) | caddy:2-alpine | 80、443 | caddy-data、caddy-config |
docker compose up -d # 下载镜像并启动docker compose logs -f basedb # 跟踪 basedb 日志(首次启动时会显示管理员密码)docker compose ps # 查看服务状态与健康状况docker compose restart basedb # 重启 basedbdocker compose down # 停止(卷会保留)在仓库的克隆目录中运行 docker compose up -d --build,会从源代码构建镜像,而不是下载镜像。
位于网关之后,路径之下
Section titled “位于网关之后,路径之下”当 basedb 发布在某个路径下——例如 https://passerelle.example.com/basedb/,而不是在某个域名的
根路径下——时,请指定这个路径:
BASEDB_PUBLIC_URL=https://passerelle.example.com/basedb# 或者,在没有公开地址的情况下:BASEDB_BASE_PATH=/basedb此后一切都会置于 /basedb 之下:界面、/basedb/api、/basedb/mcp、分享链接以及邮件中的链接。
网关可以在转发请求时保留路径,也可以去掉路径:这两种方式 basedb 都能接受。
BASEDB_BASE_PATH=/ 会强制使用根路径。
镜像对所有地址都是同一个:路径会在容器启动时写入界面,更改路径只需重启即可生效。
BASEDB_PORT=3100POSTGRES_PORT=5433使用现有的 PostgreSQL 数据库
Section titled “使用现有的 PostgreSQL 数据库”设置 DATABASE_URL:basedb 会连接到该数据库,而不是 db 容器(该容器仍会启动,但不会被使用——如果您愿意,可以在 docker-compose.override.yml 文件中将其移除)。需要 PostgreSQL 16 或更高版本、该数据库的所有者角色,以及可用的 pg_trgm 和 unaccent 扩展。此时只需镜像本身即可——参见安装。
basedb 是 AI 原生软件工作室 Eodia 出品的自由软件。