feat: add kaneo & tencentdb-agent-memory

This commit is contained in:
Sun-ZhenXing
2026-08-10 15:05:43 +08:00
parent 73ce855b35
commit 00c0d6772d
14 changed files with 517 additions and 30 deletions
+3 -1
View File
@@ -102,6 +102,7 @@ These services require building custom Docker images from source.
| [Jenkins](./src/jenkins) | 2.541-lts | | [Jenkins](./src/jenkins) | 2.541-lts |
| [JODConverter](./src/jodconverter) | latest | | [JODConverter](./src/jodconverter) | latest |
| [Kestra](./src/kestra) | latest-full | | [Kestra](./src/kestra) | latest-full |
| [Kaneo](./src/kaneo) | 2.16.2 |
| [Kibana](./src/kibana) | 8.16.1 | | [Kibana](./src/kibana) | 8.16.1 |
| [Kodbox](./src/kodbox) | 1.62 | | [Kodbox](./src/kodbox) | 1.62 |
| [Kong](./src/kong) | 3.8.0 | | [Kong](./src/kong) | 3.8.0 |
@@ -184,13 +185,14 @@ These services require building custom Docker images from source.
| [SearXNG](./src/searxng) | 2025.1.20-1ce14ef99 | | [SearXNG](./src/searxng) | 2025.1.20-1ce14ef99 |
| [Selenium](./src/selenium) | 144.0-20260120 | | [Selenium](./src/selenium) | 144.0-20260120 |
| [Shannon](./apps/shannon) | v0.3.1 | | [Shannon](./apps/shannon) | v0.3.1 |
| [SigNoz](./src/signoz) | v0.132.2 | | [SigNoz](./src/signoz) | v0.136.1 |
| [Sim](./apps/sim) | latest | | [Sim](./apps/sim) | latest |
| [Skyvern](./apps/skyvern) | v1.0.31 | | [Skyvern](./apps/skyvern) | v1.0.31 |
| [Stable Diffusion WebUI](./apps/stable-diffusion-webui-docker) | latest | | [Stable Diffusion WebUI](./apps/stable-diffusion-webui-docker) | latest |
| [Stirling-PDF](./apps/stirling-pdf) | latest | | [Stirling-PDF](./apps/stirling-pdf) | latest |
| [Sub2API](./src/sub2api) | 0.1.124 | | [Sub2API](./src/sub2api) | 0.1.124 |
| [Temporal](./src/temporal) | 1.24.2 | | [Temporal](./src/temporal) | 1.24.2 |
| [TencentDB Agent Memory](./src/tencentdb-agent-memory) | 1.0.0 |
| [TiDB](./src/tidb) | v8.5.0 | | [TiDB](./src/tidb) | v8.5.0 |
| [TiKV](./src/tikv) | v8.5.0 | | [TiKV](./src/tikv) | v8.5.0 |
| [Trigger.dev](./src/trigger-dev) | v4.2.0 | | [Trigger.dev](./src/trigger-dev) | v4.2.0 |
+3 -1
View File
@@ -102,6 +102,7 @@ docker compose exec redis redis-cli ping
| [Jenkins](./src/jenkins) | 2.541-lts | | [Jenkins](./src/jenkins) | 2.541-lts |
| [JODConverter](./src/jodconverter) | latest | | [JODConverter](./src/jodconverter) | latest |
| [Kestra](./src/kestra) | latest-full | | [Kestra](./src/kestra) | latest-full |
| [Kaneo](./src/kaneo) | 2.16.2 |
| [Kibana](./src/kibana) | 8.16.1 | | [Kibana](./src/kibana) | 8.16.1 |
| [Kodbox](./src/kodbox) | 1.62 | | [Kodbox](./src/kodbox) | 1.62 |
| [Kong](./src/kong) | 3.8.0 | | [Kong](./src/kong) | 3.8.0 |
@@ -184,13 +185,14 @@ docker compose exec redis redis-cli ping
| [SearXNG](./src/searxng) | 2025.1.20-1ce14ef99 | | [SearXNG](./src/searxng) | 2025.1.20-1ce14ef99 |
| [Selenium](./src/selenium) | 144.0-20260120 | | [Selenium](./src/selenium) | 144.0-20260120 |
| [Shannon](./apps/shannon) | v0.3.1 | | [Shannon](./apps/shannon) | v0.3.1 |
| [SigNoz](./src/signoz) | v0.132.2 | | [SigNoz](./src/signoz) | v0.136.1 |
| [Sim](./apps/sim) | latest | | [Sim](./apps/sim) | latest |
| [Skyvern](./apps/skyvern) | v1.0.31 | | [Skyvern](./apps/skyvern) | v1.0.31 |
| [Stable Diffusion WebUI](./apps/stable-diffusion-webui-docker) | latest | | [Stable Diffusion WebUI](./apps/stable-diffusion-webui-docker) | latest |
| [Stirling-PDF](./apps/stirling-pdf) | latest | | [Stirling-PDF](./apps/stirling-pdf) | latest |
| [Sub2API](./src/sub2api) | 0.1.124 | | [Sub2API](./src/sub2api) | 0.1.124 |
| [Temporal](./src/temporal) | 1.24.2 | | [Temporal](./src/temporal) | 1.24.2 |
| [TencentDB Agent Memory](./src/tencentdb-agent-memory) | 1.0.0 |
| [TiDB](./src/tidb) | v8.5.0 | | [TiDB](./src/tidb) | v8.5.0 |
| [TiKV](./src/tikv) | v8.5.0 | | [TiKV](./src/tikv) | v8.5.0 |
| [Trigger.dev](./src/trigger-dev) | v4.2.0 | | [Trigger.dev](./src/trigger-dev) | v4.2.0 |
+40
View File
@@ -0,0 +1,40 @@
# Kaneo image version (GitHub Container Registry: ghcr.io/usekaneo/kaneo)
KANEO_VERSION=2.16.2
# PostgreSQL image version
POSTGRES_VERSION=16.14-alpine
# Timezone
TZ=UTC
# Host port mapping for the Kaneo web interface
KANEO_PORT_OVERRIDE=5173
# Public URL clients use to reach Kaneo (used for links, OAuth callbacks, etc.)
KANEO_CLIENT_URL=http://localhost:5173
# Required: secret used to sign session cookies (min 32 characters).
# Generate one with: openssl rand -hex 32
# If unset or changed, all user sessions are invalidated on restart.
AUTH_SECRET=
# PostgreSQL database name
POSTGRES_DB=kaneo
# PostgreSQL user
POSTGRES_USER=kaneo
# PostgreSQL password (change this in production!)
POSTGRES_PASSWORD=kaneo123
# Resource limits and reservations for the Kaneo service
KANEO_CPU_LIMIT=1.0
KANEO_MEMORY_LIMIT=1G
KANEO_CPU_RESERVATION=0.1
KANEO_MEMORY_RESERVATION=256M
# Resource limits and reservations for the PostgreSQL service
POSTGRES_CPU_LIMIT=1.0
POSTGRES_MEMORY_LIMIT=1G
POSTGRES_CPU_RESERVATION=0.1
POSTGRES_MEMORY_RESERVATION=256M
+67
View File
@@ -0,0 +1,67 @@
# Kaneo
[English](./README.md) | [中文](./README.zh.md)
This service deploys [Kaneo](https://kaneo.app), an open-source kanban and project management platform. Kaneo offers workspaces, projects, customizable workflows, labels, and time tracking, plus integrations with GitHub, Gitea, Slack, Discord, and Telegram. It supports SSO (OIDC) and ships a built-in MCP server at `/api/mcp`.
## Services
- `kaneo`: The Kaneo application server (web UI + API).
- `postgres`: PostgreSQL database storing all Kaneo data.
## Quick Start
1. Create a `.env` file from the example:
```bash
cp .env.example .env
```
2. Edit `.env` and set the required values:
```env
AUTH_SECRET=your-32-char-minimum-random-secret
POSTGRES_PASSWORD=your-secure-db-password
```
Generate a secret with `openssl rand -hex 32`. See [Security Notes](#security-notes) for why `AUTH_SECRET` matters.
3. Start the services:
```bash
docker compose up -d
```
4. Open `http://localhost:5173` in your browser.
5. The first user to register becomes the workspace owner. Registration is open by default; once you have your account, lock it down by adding `DISABLE_REGISTRATION=true` to the `kaneo` service environment (or set the equivalent app setting).
## Environment Variables
| Variable Name | Description | Default Value |
| -------------------- | ------------------------------------ | ---------------------- |
| KANEO_VERSION | Kaneo image version | `2.16.2` |
| POSTGRES_VERSION | PostgreSQL image version | `16.14-alpine` |
| KANEO_PORT_OVERRIDE | Host port for the Kaneo web interface | `5173` |
| KANEO_CLIENT_URL | Public URL clients use to reach Kaneo | `http://localhost:5173` |
| AUTH_SECRET | Session signing secret (required, min 32 chars) | *(none)* |
| POSTGRES_DB | PostgreSQL database name | `kaneo` |
| POSTGRES_USER | PostgreSQL user | `kaneo` |
| POSTGRES_PASSWORD | PostgreSQL password | `kaneo123` |
| KANEO_CPU_LIMIT | Kaneo CPU limit | `1.0` |
| KANEO_MEMORY_LIMIT | Kaneo memory limit | `1G` |
| POSTGRES_CPU_LIMIT | PostgreSQL CPU limit | `1.0` |
| POSTGRES_MEMORY_LIMIT| PostgreSQL memory limit | `1G` |
## Storage
All application data is stored in the `postgres_data` named volume, managed by the `postgres` service.
Uploads attached to descriptions and comments are kept inside the container's ephemeral filesystem by default. For persistent uploads, configure S3-compatible object storage (e.g., MinIO) in the Kaneo settings — the app runs fine without it, but uploads will be lost on container recreation.
## Security Notes
- **Open registration**: registration is enabled by default, so anyone who can reach the app can create an account. Register your account first, then disable registration (e.g., `DISABLE_REGISTRATION=true`).
- **AUTH_SECRET**: required and must be at least 32 characters. If it is unset or changes, all user sessions are invalidated on restart. Generate with `openssl rand -hex 32`.
- **POSTGRES_PASSWORD**: change the default (`kaneo123`) before exposing the service beyond localhost.
- **Image source**: the image is pulled from GitHub Container Registry (`ghcr.io/usekaneo/kaneo`) and pinned to version `2.16.2`. The health check probes `http://127.0.0.1:5173/api/health`.
+67
View File
@@ -0,0 +1,67 @@
# Kaneo
[English](./README.md) | [中文](./README.zh.md)
此服务部署 [Kaneo](https://kaneo.app),一个开源的看板与项目管理平台。Kaneo 提供工作区、项目、可定制工作流、标签和工时统计,并支持 GitHub、Gitea、Slack、Discord 和 Telegram 集成。它还支持 SSO(OIDC),并内置了位于 `/api/mcp` 的 MCP 服务器。
## 服务
- `kaneo`: Kaneo 应用服务器(Web 界面 + API)。
- `postgres`: 存储所有 Kaneo 数据的 PostgreSQL 数据库。
## 快速开始
1. 从示例文件创建 `.env` 文件:
```bash
cp .env.example .env
```
2. 编辑 `.env` 并设置必需值:
```env
AUTH_SECRET=your-32-char-minimum-random-secret
POSTGRES_PASSWORD=your-secure-db-password
```
使用 `openssl rand -hex 32` 生成密钥。关于 `AUTH_SECRET` 的重要性,请参阅[安全提示](#安全提示)。
3. 启动服务:
```bash
docker compose up -d
```
4. 在浏览器中打开 `http://localhost:5173`
5. 第一个注册的用户将成为工作区所有者。注册默认开放;创建账户后,请在 `kaneo` 服务的环境变量中添加 `DISABLE_REGISTRATION=true`(或设置对应的应用选项)以关闭注册。
## 环境变量
| 变量名 | 描述 | 默认值 |
| -------------------- | -------------------------------- | ----------------------- |
| KANEO_VERSION | Kaneo 镜像版本 | `2.16.2` |
| POSTGRES_VERSION | PostgreSQL 镜像版本 | `16.14-alpine` |
| KANEO_PORT_OVERRIDE | Kaneo Web 界面的主机端口 | `5173` |
| KANEO_CLIENT_URL | 客户端访问 Kaneo 的公开 URL | `http://localhost:5173` |
| AUTH_SECRET | 会话签名密钥(必需,至少 32 个字符) | *(无)* |
| POSTGRES_DB | PostgreSQL 数据库名 | `kaneo` |
| POSTGRES_USER | PostgreSQL 用户名 | `kaneo` |
| POSTGRES_PASSWORD | PostgreSQL 密码 | `kaneo123` |
| KANEO_CPU_LIMIT | Kaneo CPU 限制 | `1.0` |
| KANEO_MEMORY_LIMIT | Kaneo 内存限制 | `1G` |
| POSTGRES_CPU_LIMIT | PostgreSQL CPU 限制 | `1.0` |
| POSTGRES_MEMORY_LIMIT| PostgreSQL 内存限制 | `1G` |
## 存储
所有应用数据都存储在由 `postgres` 服务管理的 `postgres_data` 命名卷中。
默认情况下,附加到描述和评论中的上传文件保存在容器内部的临时文件系统中。如需持久化上传文件,请在 Kaneo 设置中配置 S3 兼容的对象存储(例如 MinIO)——应用不配置也可以正常运行,但容器重建后上传文件将会丢失。
## 安全提示
- **开放注册**: 注册默认开放,任何能够访问应用的人都可以创建账户。请先注册您的账户,然后关闭注册(例如设置 `DISABLE_REGISTRATION=true`)。
- **AUTH_SECRET**: 必填项,且至少需要 32 个字符。如果未设置或发生更改,所有用户会话将在重启后失效。请使用 `openssl rand -hex 32` 生成。
- **POSTGRES_PASSWORD**: 在将服务暴露到 localhost 之外之前,请更改默认密码(`kaneo123`)。
- **镜像来源**: 镜像从 GitHub Container Registry`ghcr.io/usekaneo/kaneo`)拉取,并固定为版本 `2.16.2`。健康检查探测 `http://127.0.0.1:5173/api/health`
+69
View File
@@ -0,0 +1,69 @@
x-defaults: &defaults
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 100m
max-file: '3'
services:
kaneo:
<<: *defaults
image: ${GHCR_IO_REGISTRY:-ghcr.io}/usekaneo/kaneo:${KANEO_VERSION:-2.16.2}
ports:
- '${KANEO_PORT_OVERRIDE:-5173}:5173'
environment:
- TZ=${TZ:-UTC}
- KANEO_CLIENT_URL=${KANEO_CLIENT_URL:-http://localhost:5173}
# Required: AUTH_SECRET must be set (min 32 chars). Generate with: openssl rand -hex 32
- AUTH_SECRET=${AUTH_SECRET:-}
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- POSTGRES_DB=${POSTGRES_DB:-kaneo}
- POSTGRES_USER=${POSTGRES_USER:-kaneo}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-kaneo123}
depends_on:
postgres:
condition: service_healthy
healthcheck:
test: [CMD, wget, --no-verbose, --tries=1, --spider, 'http://127.0.0.1:5173/api/health']
interval: 30s
timeout: 5s
retries: 3
start_period: 60s
deploy:
resources:
limits:
cpus: ${KANEO_CPU_LIMIT:-1.0}
memory: ${KANEO_MEMORY_LIMIT:-1G}
reservations:
cpus: ${KANEO_CPU_RESERVATION:-0.1}
memory: ${KANEO_MEMORY_RESERVATION:-256M}
postgres:
<<: *defaults
image: ${GLOBAL_REGISTRY:-}postgres:${POSTGRES_VERSION:-16.14-alpine}
environment:
- TZ=${TZ:-UTC}
- POSTGRES_DB=${POSTGRES_DB:-kaneo}
- POSTGRES_USER=${POSTGRES_USER:-kaneo}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-kaneo123}
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: [CMD-SHELL, 'pg_isready -U ${POSTGRES_USER:-kaneo} -d ${POSTGRES_DB:-kaneo}']
interval: 10s
timeout: 5s
retries: 5
start_period: 10s
deploy:
resources:
limits:
cpus: ${POSTGRES_CPU_LIMIT:-1.0}
memory: ${POSTGRES_MEMORY_LIMIT:-1G}
reservations:
cpus: ${POSTGRES_CPU_RESERVATION:-0.1}
memory: ${POSTGRES_MEMORY_RESERVATION:-256M}
volumes:
postgres_data:
+4 -4
View File
@@ -13,16 +13,16 @@ TZ=UTC
SIGNOZ_IMAGE_NAME=signoz/signoz SIGNOZ_IMAGE_NAME=signoz/signoz
# SigNoz all-in-one backend + frontend + alertmanager version # SigNoz all-in-one backend + frontend + alertmanager version
SIGNOZ_VERSION=v0.132.2 SIGNOZ_VERSION=v0.136.1
# SigNoz OTel Collector version (also used for migration jobs) # SigNoz OTel Collector version (also used for migration jobs)
SIGNOZ_OTEL_COLLECTOR_VERSION=v0.144.5 SIGNOZ_OTEL_COLLECTOR_VERSION=v0.144.7
# ClickHouse version # ClickHouse version
SIGNOZ_CLICKHOUSE_VERSION=26.4.4 SIGNOZ_CLICKHOUSE_VERSION=26.4.5
# ZooKeeper version # ZooKeeper version
SIGNOZ_ZOOKEEPER_VERSION=3.7.1 SIGNOZ_ZOOKEEPER_VERSION=3.9.3
# ============================================ # ============================================
# Security Configuration # Security Configuration
+9 -9
View File
@@ -17,12 +17,12 @@ SigNoz is an open-source observability platform that provides monitoring and tro
| Service | Image | Description | | Service | Image | Description |
| -------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------ | | -------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------ |
| `signoz` | `${SIGNOZ_IMAGE_NAME:-signoz/signoz}:${SIGNOZ_VERSION:-v0.132.2}` | All-in-one backend, frontend UI, and alert manager | | `signoz` | `${SIGNOZ_IMAGE_NAME:-signoz/signoz}:${SIGNOZ_VERSION:-v0.136.1}` | All-in-one backend, frontend UI, and alert manager |
| `otel-collector` | signoz/signoz-otel-collector:v0.144.5 | Receives, processes, and exports telemetry data | | `otel-collector` | signoz/signoz-otel-collector:v0.144.7 | Receives, processes, and exports telemetry data |
| `clickhouse` | clickhouse/clickhouse-server:26.4.4 | Time-series database for traces, metrics, and logs | | `clickhouse` | clickhouse/clickhouse-server:26.4.5 | Time-series database for traces, metrics, and logs |
| `zookeeper-1` | signoz/zookeeper:3.7.1 | ZooKeeper for ClickHouse replication metadata | | `zookeeper-1` | signoz/zookeeper:3.9.3 | ZooKeeper for ClickHouse replication metadata |
| `init-clickhouse` | clickhouse/clickhouse-server:26.4.4 | One-shot init that downloads the histogramQuantile UDF | | `init-clickhouse` | clickhouse/clickhouse-server:26.4.5 | One-shot init that downloads the histogramQuantile UDF |
| `signoz-telemetrystore-migrator` | signoz/signoz-otel-collector:v0.144.5 | One-shot schema migration for ClickHouse | | `signoz-telemetrystore-migrator` | signoz/signoz-otel-collector:v0.144.7 | One-shot schema migration for ClickHouse |
## Quick Start ## Quick Start
@@ -62,9 +62,9 @@ SigNoz is an open-source observability platform that provides monitoring and tro
| `SIGNOZ_OTEL_GRPC_PORT_OVERRIDE` | `4317` | OTLP gRPC receiver host port | | `SIGNOZ_OTEL_GRPC_PORT_OVERRIDE` | `4317` | OTLP gRPC receiver host port |
| `SIGNOZ_OTEL_HTTP_PORT_OVERRIDE` | `4318` | OTLP HTTP receiver host port | | `SIGNOZ_OTEL_HTTP_PORT_OVERRIDE` | `4318` | OTLP HTTP receiver host port |
| `SIGNOZ_IMAGE_NAME` | `signoz/signoz` | SigNoz image repository/name | | `SIGNOZ_IMAGE_NAME` | `signoz/signoz` | SigNoz image repository/name |
| `SIGNOZ_VERSION` | `v0.132.2` | SigNoz image version | | `SIGNOZ_VERSION` | `v0.136.1` | SigNoz image version |
| `SIGNOZ_OTEL_COLLECTOR_VERSION` | `v0.144.5` | OTel Collector image version | | `SIGNOZ_OTEL_COLLECTOR_VERSION` | `v0.144.7` | OTel Collector image version |
| `SIGNOZ_CLICKHOUSE_VERSION` | `26.4.4` | ClickHouse image version | | `SIGNOZ_CLICKHOUSE_VERSION` | `26.4.5` | ClickHouse image version |
| `TZ` | `UTC` | Timezone | | `TZ` | `UTC` | Timezone |
See `.env.example` for the complete list including resource limits. See `.env.example` for the complete list including resource limits.
+9 -9
View File
@@ -17,12 +17,12 @@ SigNoz 是一个开源的可观测性平台,为分布式应用程序提供监
| 服务 | 镜像 | 描述 | | 服务 | 镜像 | 描述 |
| -------------------------------- | ----------------------------------------------------------------- | ---------------------------------------- | | -------------------------------- | ----------------------------------------------------------------- | ---------------------------------------- |
| `signoz` | `${SIGNOZ_IMAGE_NAME:-signoz/signoz}:${SIGNOZ_VERSION:-v0.132.2}` | 后端、前端 UI 和告警管理器的合体镜像 | | `signoz` | `${SIGNOZ_IMAGE_NAME:-signoz/signoz}:${SIGNOZ_VERSION:-v0.136.1}` | 后端、前端 UI 和告警管理器的合体镜像 |
| `otel-collector` | signoz/signoz-otel-collector:v0.144.5 | 接收、处理和导出遥测数据 | | `otel-collector` | signoz/signoz-otel-collector:v0.144.7 | 接收、处理和导出遥测数据 |
| `clickhouse` | clickhouse/clickhouse-server:26.4.4 | 存储追踪、指标和日志的时序数据库 | | `clickhouse` | clickhouse/clickhouse-server:26.4.5 | 存储追踪、指标和日志的时序数据库 |
| `zookeeper-1` | signoz/zookeeper:3.7.1 | ZooKeeper,用于 ClickHouse 副本元数据 | | `zookeeper-1` | signoz/zookeeper:3.9.3 | ZooKeeper,用于 ClickHouse 副本元数据 |
| `init-clickhouse` | clickhouse/clickhouse-server:26.4.4 | 一次性初始化,下载 histogramQuantile UDF | | `init-clickhouse` | clickhouse/clickhouse-server:26.4.5 | 一次性初始化,下载 histogramQuantile UDF |
| `signoz-telemetrystore-migrator` | signoz/signoz-otel-collector:v0.144.5 | 一次性 ClickHouse Schema 迁移 | | `signoz-telemetrystore-migrator` | signoz/signoz-otel-collector:v0.144.7 | 一次性 ClickHouse Schema 迁移 |
## 快速开始 ## 快速开始
@@ -62,9 +62,9 @@ SigNoz 是一个开源的可观测性平台,为分布式应用程序提供监
| `SIGNOZ_OTEL_GRPC_PORT_OVERRIDE` | `4317` | OTLP gRPC 接收器宿主机端口 | | `SIGNOZ_OTEL_GRPC_PORT_OVERRIDE` | `4317` | OTLP gRPC 接收器宿主机端口 |
| `SIGNOZ_OTEL_HTTP_PORT_OVERRIDE` | `4318` | OTLP HTTP 接收器宿主机端口 | | `SIGNOZ_OTEL_HTTP_PORT_OVERRIDE` | `4318` | OTLP HTTP 接收器宿主机端口 |
| `SIGNOZ_IMAGE_NAME` | `signoz/signoz` | SigNoz 镜像仓库名或镜像名 | | `SIGNOZ_IMAGE_NAME` | `signoz/signoz` | SigNoz 镜像仓库名或镜像名 |
| `SIGNOZ_VERSION` | `v0.132.2` | SigNoz 镜像版本 | | `SIGNOZ_VERSION` | `v0.136.1` | SigNoz 镜像版本 |
| `SIGNOZ_OTEL_COLLECTOR_VERSION` | `v0.144.5` | OTel Collector 镜像版本 | | `SIGNOZ_OTEL_COLLECTOR_VERSION` | `v0.144.7` | OTel Collector 镜像版本 |
| `SIGNOZ_CLICKHOUSE_VERSION` | `26.4.4` | ClickHouse 镜像版本 | | `SIGNOZ_CLICKHOUSE_VERSION` | `26.4.5` | ClickHouse 镜像版本 |
| `TZ` | `UTC` | 时区 | | `TZ` | `UTC` | 时区 |
完整变量列表(含资源限制)请查看 `.env.example` 完整变量列表(含资源限制)请查看 `.env.example`
+6 -6
View File
@@ -8,7 +8,7 @@ x-defaults: &defaults
x-clickhouse-defaults: &clickhouse-defaults x-clickhouse-defaults: &clickhouse-defaults
<<: *defaults <<: *defaults
image: ${GLOBAL_REGISTRY:-}clickhouse/clickhouse-server:${SIGNOZ_CLICKHOUSE_VERSION:-26.4.4} image: ${GLOBAL_REGISTRY:-}clickhouse/clickhouse-server:${SIGNOZ_CLICKHOUSE_VERSION:-26.4.5}
depends_on: depends_on:
init-clickhouse: init-clickhouse:
condition: service_completed_successfully condition: service_completed_successfully
@@ -34,7 +34,7 @@ x-db-depend: &db-depend
services: services:
# One-shot init: downloads histogramQuantile UDF binary into the shared volume # One-shot init: downloads histogramQuantile UDF binary into the shared volume
init-clickhouse: init-clickhouse:
image: ${GLOBAL_REGISTRY:-}clickhouse/clickhouse-server:${SIGNOZ_CLICKHOUSE_VERSION:-26.4.4} image: ${GLOBAL_REGISTRY:-}clickhouse/clickhouse-server:${SIGNOZ_CLICKHOUSE_VERSION:-26.4.5}
restart: on-failure restart: on-failure
logging: logging:
driver: json-file driver: json-file
@@ -65,7 +65,7 @@ services:
# ZooKeeper for ClickHouse replication metadata # ZooKeeper for ClickHouse replication metadata
zookeeper-1: zookeeper-1:
<<: *defaults <<: *defaults
image: ${GLOBAL_REGISTRY:-}signoz/zookeeper:${SIGNOZ_ZOOKEEPER_VERSION:-3.7.1} image: ${GLOBAL_REGISTRY:-}signoz/zookeeper:${SIGNOZ_ZOOKEEPER_VERSION:-3.9.3}
user: root user: root
environment: environment:
- TZ=${TZ:-UTC} - TZ=${TZ:-UTC}
@@ -116,7 +116,7 @@ services:
# One-shot migration: bootstraps and runs schema migrations # One-shot migration: bootstraps and runs schema migrations
signoz-telemetrystore-migrator: signoz-telemetrystore-migrator:
<<: *db-depend <<: *db-depend
image: ${GLOBAL_REGISTRY:-}signoz/signoz-otel-collector:${SIGNOZ_OTEL_COLLECTOR_VERSION:-v0.144.5} image: ${GLOBAL_REGISTRY:-}signoz/signoz-otel-collector:${SIGNOZ_OTEL_COLLECTOR_VERSION:-v0.144.7}
restart: on-failure restart: on-failure
environment: environment:
- TZ=${TZ:-UTC} - TZ=${TZ:-UTC}
@@ -140,7 +140,7 @@ services:
# SigNoz all-in-one backend + frontend + alertmanager # SigNoz all-in-one backend + frontend + alertmanager
signoz: signoz:
<<: *db-depend <<: *db-depend
image: ${GLOBAL_REGISTRY:-}${SIGNOZ_IMAGE_NAME:-signoz/signoz}:${SIGNOZ_VERSION:-v0.132.2} image: ${GLOBAL_REGISTRY:-}${SIGNOZ_IMAGE_NAME:-signoz/signoz}:${SIGNOZ_VERSION:-v0.136.1}
ports: ports:
- '${SIGNOZ_PORT_OVERRIDE:-8080}:8080' - '${SIGNOZ_PORT_OVERRIDE:-8080}:8080'
volumes: volumes:
@@ -169,7 +169,7 @@ services:
# OTel Collector for receiving telemetry data # OTel Collector for receiving telemetry data
otel-collector: otel-collector:
<<: *db-depend <<: *db-depend
image: ${GLOBAL_REGISTRY:-}signoz/signoz-otel-collector:${SIGNOZ_OTEL_COLLECTOR_VERSION:-v0.144.5} image: ${GLOBAL_REGISTRY:-}signoz/signoz-otel-collector:${SIGNOZ_OTEL_COLLECTOR_VERSION:-v0.144.7}
entrypoint: [/bin/sh] entrypoint: [/bin/sh]
command: command:
- -c - -c
+63
View File
@@ -0,0 +1,63 @@
# Global registry prefix for all images (optional)
GLOBAL_REGISTRY=
# ------------------------------------------------------------------
# Versions
# ------------------------------------------------------------------
# TencentDB Agent Memory image version
TDAI_MEMORY_VERSION=1.0.0
# ------------------------------------------------------------------
# Timezone
# ------------------------------------------------------------------
# Timezone (e.g., UTC, Asia/Shanghai, America/New_York)
TZ=UTC
# ------------------------------------------------------------------
# Ports
# ------------------------------------------------------------------
# Host port mapping (maps to the gateway port 8420 in the container)
TDAI_MEMORY_PORT_OVERRIDE=8420
# ------------------------------------------------------------------
# LLM configuration
# ------------------------------------------------------------------
# REQUIRED - no default. API key for the external OpenAI-compatible
# LLM provider (e.g., OpenAI, DeepSeek, Tencent Cloud). The service
# contains no model itself and will not start working without this.
TDAI_LLM_API_KEY=
# Base URL of the OpenAI-compatible LLM API
# e.g. https://api.deepseek.com/v1 or https://api.lkeap.cloud.tencent.com/v1
TDAI_LLM_BASE_URL=https://api.openai.com/v1
# LLM model name to use
TDAI_LLM_MODEL=gpt-4o
# Maximum number of tokens per LLM request
TDAI_LLM_MAX_TOKENS=4096
# ------------------------------------------------------------------
# Security
# ------------------------------------------------------------------
# Optional Bearer auth token for the gateway API. Leave empty for open
# access - set a random long string when the gateway is exposed to a
# network. /health is always open regardless of this setting.
TDAI_GATEWAY_API_KEY=
# ------------------------------------------------------------------
# Resources
# ------------------------------------------------------------------
# CPU limits
TDAI_MEMORY_CPU_LIMIT=1.0
TDAI_MEMORY_CPU_RESERVATION=0.1
# Memory limits
TDAI_MEMORY_LIMIT=1G
TDAI_MEMORY_RESERVATION=256M
+67
View File
@@ -0,0 +1,67 @@
# TencentDB Agent Memory
[English](./README.md) | [中文](./README.zh.md)
This service deploys TencentDB Agent Memory, a layered long-term memory system for AI agents built by Tencent Cloud. It gives agents persistent, structured memory across four abstraction levels — conversation → atomic facts → scenes → persona — plus symbolic short-term memory via context offloading. Data persists to an embedded SQLite + sqlite-vec database and local Markdown files.
The service contains no LLM itself: it consumes an external OpenAI-compatible LLM API, so an API key is required.
## Services
- `tencentdb-agent-memory`: The memory Gateway (port 8420), running in standalone mode with an embedded SQLite database. No external database or Redis is required.
## Quick Start
```bash
cp .env.example .env
# Set TDAI_LLM_API_KEY in .env (required - the service has no model of its own)
docker compose up -d
```
The gateway is an API service, not a web UI. Verify it is running:
```bash
curl http://localhost:8420/health
```
Expected response: `{"status":"ok",...}`.
## Environment Variables
| Variable Name | Description | Default Value |
| -------------------------- | --------------------------------------------------------------------------- | ------------------------------- |
| `GLOBAL_REGISTRY` | Global registry prefix for all images | `""` |
| `TDAI_MEMORY_VERSION` | Image version | `1.0.0` |
| `TDAI_LLM_API_KEY` | LLM API key (required, no default; any OpenAI-compatible provider) | `""` |
| `TDAI_LLM_BASE_URL` | Base URL of the OpenAI-compatible LLM API | `https://api.openai.com/v1` |
| `TDAI_LLM_MODEL` | LLM model name | `gpt-4o` |
| `TDAI_LLM_MAX_TOKENS` | Maximum tokens per LLM request | `4096` |
| `TDAI_GATEWAY_API_KEY` | Optional Bearer auth token for the gateway API (empty = open access) | `""` |
| `TDAI_MEMORY_PORT_OVERRIDE`| Host port mapping (maps to gateway port 8420 in the container) | `8420` |
| `TZ` | Timezone | `UTC` |
| `TDAI_MEMORY_CPU_LIMIT` | CPU limit | `1.00` |
| `TDAI_MEMORY_CPU_RESERVATION` | CPU reservation | `0.10` |
| `TDAI_MEMORY_LIMIT` | Memory limit | `1G` |
| `TDAI_MEMORY_RESERVATION` | Memory reservation | `256M` |
Set `TDAI_LLM_BASE_URL` to your provider, e.g. `https://api.deepseek.com/v1` or `https://api.lkeap.cloud.tencent.com/v1`.
Please modify the `.env` file as needed for your use case.
## Storage
- `tdai_memory_data`: A named volume mounted at `/data/tdai-memory` holding the embedded database and Markdown files: `vectors.db`, `conversations/`, `records/`, `scene_blocks/`, and `persona.md`.
## Security Notes
- `TDAI_LLM_API_KEY` is required — the service has no bundled model and cannot function without an LLM API key.
- The gateway API is open by default (no auth). Set `TDAI_GATEWAY_API_KEY` to a random long string when the gateway is exposed to a network. The `/health` endpoint is always open.
- Check the project license before redistribution: the default branch `README.docker.md` states a proprietary Tencent Cloud license while the main branch is MIT.
## Integration
TencentDB Agent Memory is designed for integration with agent frameworks, e.g. the OpenClaw plugin and the Hermes provider.
## License
This service folder is provided under the repository's license. TencentDB Agent Memory itself — verify its license before redistribution (see Security Notes).
+67
View File
@@ -0,0 +1,67 @@
# TencentDB Agent Memory
[English](./README.md) | [中文](./README.zh.md)
此服务用于部署腾讯云开源的 TencentDB Agent Memory,一个为 AI 智能体设计的分层长期记忆系统。它为智能体提供跨四个抽象层级的持久化、结构化记忆——对话 → 原子事实 → 场景 → 人设(Persona)——并通过上下文卸载(Context Offloading)提供符号化短期记忆。数据持久化到内置的 SQLite + sqlite-vec 数据库以及本地 Markdown 文件。
该服务本身不包含任何 LLM:它需要调用外部 OpenAI 兼容的 LLM API,因此必须提供 API 密钥。
## 服务
- `tencentdb-agent-memory`:记忆网关(Memory Gateway,端口 8420),以 standalone 模式运行,使用内置 SQLite 数据库,无需外部数据库或 Redis。
## 快速开始
```bash
cp .env.example .env
# 在 .env 中设置 TDAI_LLM_API_KEY(必填——该服务自身不包含模型)
docker compose up -d
```
网关是 API 服务,而不是 Web 界面。通过以下命令验证其运行状态:
```bash
curl http://localhost:8420/health
```
预期响应:`{"status":"ok",...}`
## 环境变量
| 变量名 | 说明 | 默认值 |
| ----------------------------- | ---------------------------------------------------------------- | --------------------------------- |
| `GLOBAL_REGISTRY` | 全局镜像仓库前缀 | `""` |
| `TDAI_MEMORY_VERSION` | 镜像版本 | `1.0.0` |
| `TDAI_LLM_API_KEY` | LLM API 密钥(必填,无默认值;任意 OpenAI 兼容的提供商均可) | `""` |
| `TDAI_LLM_BASE_URL` | OpenAI 兼容 LLM API 的基础 URL | `https://api.openai.com/v1` |
| `TDAI_LLM_MODEL` | LLM 模型名称 | `gpt-4o` |
| `TDAI_LLM_MAX_TOKENS` | 每次 LLM 请求的最大 token 数 | `4096` |
| `TDAI_GATEWAY_API_KEY` | 网关 API 的可选 Bearer 认证令牌(留空表示开放访问) | `""` |
| `TDAI_MEMORY_PORT_OVERRIDE` | 主机端口映射(映射到容器内网关端口 8420) | `8420` |
| `TZ` | 时区 | `UTC` |
| `TDAI_MEMORY_CPU_LIMIT` | CPU 限制 | `1.00` |
| `TDAI_MEMORY_CPU_RESERVATION` | CPU 预留 | `0.10` |
| `TDAI_MEMORY_LIMIT` | 内存限制 | `1G` |
| `TDAI_MEMORY_RESERVATION` | 内存预留 | `256M` |
请将 `TDAI_LLM_BASE_URL` 设置为您的提供商地址,例如 `https://api.deepseek.com/v1``https://api.lkeap.cloud.tencent.com/v1`
请根据实际需求修改 `.env` 文件。
## 存储
- `tdai_memory_data`:挂载到 `/data/tdai-memory` 的命名卷,存储内置数据库和 Markdown 文件:`vectors.db``conversations/``records/``scene_blocks/``persona.md`
## 安全提示
- `TDAI_LLM_API_KEY` 为必填项——该服务没有内置模型,没有 LLM API 密钥将无法工作。
- 网关 API 默认开放(无认证)。当网关暴露到网络时,请将 `TDAI_GATEWAY_API_KEY` 设置为随机长字符串。`/health` 端点始终开放。
- 再分发前请核查项目许可证:默认分支的 `README.docker.md` 声明为腾讯云专有许可证,而 main 分支为 MIT 许可证。
## 集成
TencentDB Agent Memory 专为与智能体框架集成而设计,例如 OpenClaw 插件和 Hermes provider。
## 许可证
本服务目录遵循仓库的许可证。TencentDB Agent Memory 本身——再分发前请核查其许可证(参见安全提示)。
@@ -0,0 +1,43 @@
x-defaults: &defaults
restart: unless-stopped
logging:
driver: json-file
options:
max-size: 100m
max-file: '3'
services:
tencentdb-agent-memory:
<<: *defaults
image: ${GLOBAL_REGISTRY:-}agentmemory/memory-core:${TDAI_MEMORY_VERSION:-1.0.0}
ports:
- '${TDAI_MEMORY_PORT_OVERRIDE:-8420}:8420'
volumes:
- tdai_memory_data:/data/tdai-memory
environment:
- TZ=${TZ:-UTC}
- TDAI_DEPLOY_MODE=standalone
- TDAI_GATEWAY_PORT=8420
- TDAI_LLM_API_KEY=${TDAI_LLM_API_KEY:-}
- TDAI_LLM_BASE_URL=${TDAI_LLM_BASE_URL:-https://api.openai.com/v1}
- TDAI_LLM_MODEL=${TDAI_LLM_MODEL:-gpt-4o}
- TDAI_LLM_MAX_TOKENS=${TDAI_LLM_MAX_TOKENS:-4096}
- TDAI_DATA_DIR=/data/tdai-memory
- TDAI_GATEWAY_API_KEY=${TDAI_GATEWAY_API_KEY:-}
healthcheck:
test: [CMD, curl, -fsS, 'http://127.0.0.1:8420/health']
interval: 30s
timeout: 5s
retries: 3
start_period: 15s
deploy:
resources:
limits:
cpus: ${TDAI_MEMORY_CPU_LIMIT:-1.0}
memory: ${TDAI_MEMORY_LIMIT:-1G}
reservations:
cpus: ${TDAI_MEMORY_CPU_RESERVATION:-0.1}
memory: ${TDAI_MEMORY_RESERVATION:-256M}
volumes:
tdai_memory_data: