feat: add OpenViking DeerFlow Mattermost OpenFang and Paperclip services
This commit is contained in:
@@ -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
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
@@ -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:
|
||||
Reference in New Issue
Block a user