feat: add OpenViking DeerFlow Mattermost OpenFang and Paperclip services

This commit is contained in:
Sun-ZhenXing
2026-03-28 23:40:06 +08:00
parent fbd0c9b7f4
commit 441b8a74f5
23 changed files with 1356 additions and 4 deletions
+33
View File
@@ -0,0 +1,33 @@
# Image configuration
OPENVIKING_VERSION=main
# Network configuration
OPENVIKING_PORT_OVERRIDE=1933
OPENVIKING_ROOT_API_KEY=openviking-dev-root-key
# Embedding model configuration
OPENVIKING_EMBEDDING_PROVIDER=openai
OPENVIKING_EMBEDDING_API_BASE=https://api.openai.com/v1
OPENVIKING_EMBEDDING_API_KEY=
OPENVIKING_EMBEDDING_MODEL=text-embedding-3-small
OPENVIKING_EMBEDDING_DIMENSION=1536
# Vision / multimodal model configuration
OPENVIKING_VLM_PROVIDER=openai
OPENVIKING_VLM_API_BASE=https://api.openai.com/v1
OPENVIKING_VLM_API_KEY=
OPENVIKING_VLM_MODEL=gpt-4o-mini
# Logging
OPENVIKING_LOG_LEVEL=INFO
OPENVIKING_LOG_MAX_SIZE=100m
OPENVIKING_LOG_MAX_FILE=3
# Resources
OPENVIKING_CPU_LIMIT=2.00
OPENVIKING_MEMORY_LIMIT=2G
OPENVIKING_CPU_RESERVATION=0.50
OPENVIKING_MEMORY_RESERVATION=512M
# Timezone
TZ=UTC
+65
View File
@@ -0,0 +1,65 @@
# OpenViking
[中文文档](README.zh.md)
OpenViking is an agent-native context database from Volcengine. This Compose setup runs the official container image and bootstraps a minimal ov.conf from environment variables so the service can start with a single command.
## Quick Start
1. Copy the example environment file:
```bash
cp .env.example .env
```
2. Edit `.env` and set at least:
- `OPENVIKING_ROOT_API_KEY`
- `OPENVIKING_EMBEDDING_API_KEY`
- `OPENVIKING_VLM_API_KEY`
3. Start the service:
```bash
docker compose up -d
```
4. Verify health:
```bash
curl http://localhost:1933/health
```
## Default Ports
| Service | Port | Description |
| ---------- | ---- | ---------------------------- |
| OpenViking | 1933 | HTTP API and health endpoint |
## Important Environment Variables
| Variable | Description | Default |
| ------------------------------ | ----------------------------------------------- | ------------------------- |
| `OPENVIKING_VERSION` | OpenViking image tag | `main` |
| `OPENVIKING_PORT_OVERRIDE` | Host port for the HTTP API | `1933` |
| `OPENVIKING_ROOT_API_KEY` | Root API key required when binding to `0.0.0.0` | `openviking-dev-root-key` |
| `OPENVIKING_EMBEDDING_API_KEY` | API key for the embedding model | - |
| `OPENVIKING_EMBEDDING_MODEL` | Embedding model name | `text-embedding-3-small` |
| `OPENVIKING_VLM_API_KEY` | API key for the VLM / multimodal model | - |
| `OPENVIKING_VLM_MODEL` | VLM model name | `gpt-4o-mini` |
| `TZ` | Container timezone | `UTC` |
## Volumes
- `openviking_data`: Persistent workspace and local storage data.
## Notes
- This setup generates `ov.conf` at container start from `.env`, so no extra config file is required.
- The service can start without model API keys, but indexing and multimodal features will not work until valid credentials are provided.
- `/health` is unauthenticated and is used by the healthcheck.
## References
- [OpenViking Repository](https://github.com/volcengine/OpenViking)
- [Deployment Guide](https://github.com/volcengine/OpenViking/blob/main/docs/en/guides/03-deployment.md)
+65
View File
@@ -0,0 +1,65 @@
# OpenViking
[English](README.md)
OpenViking 是火山引擎开源的 Agent 原生上下文数据库。这个 Compose 配置直接使用官方容器镜像,并在容器启动时根据环境变量生成最小可用的 ov.conf,因此可以用一条命令启动。
## 快速开始
1. 复制环境变量示例文件:
```bash
cp .env.example .env
```
2. 编辑 `.env`,至少设置以下变量:
- `OPENVIKING_ROOT_API_KEY`
- `OPENVIKING_EMBEDDING_API_KEY`
- `OPENVIKING_VLM_API_KEY`
3. 启动服务:
```bash
docker compose up -d
```
4. 检查健康状态:
```bash
curl http://localhost:1933/health
```
## 默认端口
| 服务 | 端口 | 说明 |
| ---------- | ---- | ----------------------- |
| OpenViking | 1933 | HTTP API 与健康检查接口 |
## 关键环境变量
| 变量 | 说明 | 默认值 |
| ------------------------------ | ---------------------------------------- | ------------------------- |
| `OPENVIKING_VERSION` | OpenViking 镜像标签 | `main` |
| `OPENVIKING_PORT_OVERRIDE` | HTTP API 对外端口 | `1933` |
| `OPENVIKING_ROOT_API_KEY` | 服务监听 `0.0.0.0` 时需要的 Root API Key | `openviking-dev-root-key` |
| `OPENVIKING_EMBEDDING_API_KEY` | Embedding 模型的 API Key | - |
| `OPENVIKING_EMBEDDING_MODEL` | Embedding 模型名称 | `text-embedding-3-small` |
| `OPENVIKING_VLM_API_KEY` | 多模态模型 API Key | - |
| `OPENVIKING_VLM_MODEL` | 多模态模型名称 | `gpt-4o-mini` |
| `TZ` | 容器时区 | `UTC` |
## 数据卷
- `openviking_data`:持久化工作区与本地存储数据。
## 说明
- 这个配置会在容器启动时根据 `.env` 生成 `ov.conf`,因此不需要额外准备配置文件。
- 即使没有填写模型 API Key,服务通常也可以启动,但索引与多模态能力无法正常使用。
- `/health` 端点不需要认证,Compose 健康检查会依赖它。
## 参考资料
- [OpenViking 仓库](https://github.com/volcengine/OpenViking)
- [部署文档](https://github.com/volcengine/OpenViking/blob/main/docs/zh/guides/03-deployment.md)
+85
View File
@@ -0,0 +1,85 @@
x-defaults: &defaults
restart: unless-stopped
logging:
driver: json-file
options:
max-size: ${OPENVIKING_LOG_MAX_SIZE:-100m}
max-file: '${OPENVIKING_LOG_MAX_FILE:-3}'
services:
openviking:
<<: *defaults
image: ${GHCR_IO_REGISTRY:-ghcr.io}/volcengine/openviking:${OPENVIKING_VERSION:-main}
ports:
- '${OPENVIKING_PORT_OVERRIDE:-1933}:1933'
environment:
- TZ=${TZ:-UTC}
env_file:
- .env
entrypoint:
- /bin/sh
- -ec
command: |
cat >/app/ov.conf <<EOF
{
"server": {
"host": "0.0.0.0",
"port": 1933,
"auth_mode": "api_key",
"root_api_key": "${OPENVIKING_ROOT_API_KEY:-openviking-dev-root-key}",
"cors_origins": ["*"]
},
"storage": {
"workspace": "/app/data/workspace",
"vectordb": {
"name": "context",
"backend": "local"
},
"agfs": {
"backend": "local",
"log_level": "warn"
}
},
"log": {
"level": "${OPENVIKING_LOG_LEVEL:-INFO}",
"output": "stdout"
},
"embedding": {
"dense": {
"provider": "${OPENVIKING_EMBEDDING_PROVIDER:-openai}",
"api_base": "${OPENVIKING_EMBEDDING_API_BASE:-https://api.openai.com/v1}",
"api_key": "${OPENVIKING_EMBEDDING_API_KEY:-}",
"dimension": ${OPENVIKING_EMBEDDING_DIMENSION:-1536},
"model": "${OPENVIKING_EMBEDDING_MODEL:-text-embedding-3-small}"
}
},
"vlm": {
"provider": "${OPENVIKING_VLM_PROVIDER:-openai}",
"api_base": "${OPENVIKING_VLM_API_BASE:-https://api.openai.com/v1}",
"api_key": "${OPENVIKING_VLM_API_KEY:-}",
"model": "${OPENVIKING_VLM_MODEL:-gpt-4o-mini}"
}
}
EOF
exec openviking-server --config /app/ov.conf
volumes:
- openviking_data:/app/data
healthcheck:
test:
- CMD-SHELL
- curl -fsS http://127.0.0.1:1933/health >/dev/null || exit 1
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
deploy:
resources:
limits:
cpus: ${OPENVIKING_CPU_LIMIT:-2.00}
memory: ${OPENVIKING_MEMORY_LIMIT:-2G}
reservations:
cpus: ${OPENVIKING_CPU_RESERVATION:-0.50}
memory: ${OPENVIKING_MEMORY_RESERVATION:-512M}
volumes:
openviking_data: