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 @@
# Source build configuration
OPENFANG_VERSION=0.1.0
# Network configuration
OPENFANG_PORT_OVERRIDE=4200
# OpenFang runtime configuration
OPENFANG_PROVIDER=anthropic
OPENFANG_MODEL=claude-sonnet-4-20250514
OPENFANG_API_KEY_ENV=ANTHROPIC_API_KEY
OPENFANG_API_KEY=
OPENFANG_LOG_LEVEL=info
OPENFANG_MEMORY_DECAY_RATE=0.05
OPENFANG_EXEC_MODE=allowlist
OPENFANG_EXEC_TIMEOUT_SECS=30
# Provider credentials
ANTHROPIC_API_KEY=
OPENAI_API_KEY=
GROQ_API_KEY=
# Resources
OPENFANG_CPU_LIMIT=2.00
OPENFANG_MEMORY_LIMIT=2G
OPENFANG_CPU_RESERVATION=0.50
OPENFANG_MEMORY_RESERVATION=512M
# Logging
OPENFANG_LOG_MAX_SIZE=100m
OPENFANG_LOG_MAX_FILE=3
# Timezone
TZ=UTC
+71
View File
@@ -0,0 +1,71 @@
# OpenFang
[中文文档](README.zh.md)
OpenFang is an open-source agent operating system. This Compose setup builds the upstream Docker image from the `v0.1.0` source tag and writes a minimal `config.toml` into the persistent data volume on startup.
## Quick Start
1. Copy the example environment file:
```bash
cp .env.example .env
```
2. Set at least one provider API key in `.env`:
- `ANTHROPIC_API_KEY`
- `OPENAI_API_KEY`
- `GROQ_API_KEY`
3. Start OpenFang:
```bash
docker compose up -d
```
4. Open the dashboard:
- <http://localhost:4200>
5. Verify health if needed:
```bash
curl http://localhost:4200/api/health
```
## Default Ports
| Service | Port | Description |
| -------- | ---- | ---------------------- |
| OpenFang | 4200 | Dashboard and REST API |
## Important Environment Variables
| Variable | Description | Default |
| ------------------------ | ------------------------------------------------------------------ | -------------------------- |
| `OPENFANG_VERSION` | Git tag used for the source build | `0.1.0` |
| `OPENFANG_PORT_OVERRIDE` | Host port for OpenFang | `4200` |
| `OPENFANG_PROVIDER` | Default model provider | `anthropic` |
| `OPENFANG_MODEL` | Default model name | `claude-sonnet-4-20250514` |
| `OPENFANG_API_KEY_ENV` | Environment variable name that OpenFang reads for the provider key | `ANTHROPIC_API_KEY` |
| `OPENFANG_API_KEY` | Optional Bearer token to protect the API | - |
| `ANTHROPIC_API_KEY` | Anthropic API key | - |
| `OPENAI_API_KEY` | OpenAI API key | - |
| `GROQ_API_KEY` | Groq API key | - |
| `TZ` | Container timezone | `UTC` |
## Volumes
- `openfang_data`: Persistent configuration and runtime data under `/data`.
## Notes
- The generated config binds to `0.0.0.0:4200` for container use.
- If `OPENFANG_API_KEY` is empty, the instance runs without API authentication except for whatever protections you place in front of it.
- This setup uses the upstream Dockerfile, so the first build can take several minutes.
## References
- [OpenFang Repository](https://github.com/RightNow-AI/openfang)
- [Getting Started Guide](https://github.com/RightNow-AI/openfang/blob/main/docs/getting-started.md)
+71
View File
@@ -0,0 +1,71 @@
# OpenFang
[English](README.md)
OpenFang 是一个开源的 Agent Operating System。这个 Compose 配置会基于上游 `v0.1.0` 源码标签构建镜像,并在启动时把最小可用的 `config.toml` 写入持久化数据卷。
## 快速开始
1. 复制环境变量示例文件:
```bash
cp .env.example .env
```
2. 在 `.env` 中至少填写一个模型提供商的 API Key:
- `ANTHROPIC_API_KEY`
- `OPENAI_API_KEY`
- `GROQ_API_KEY`
3. 启动 OpenFang
```bash
docker compose up -d
```
4. 打开控制台:
- <http://localhost:4200>
5. 如需检查健康状态:
```bash
curl http://localhost:4200/api/health
```
## 默认端口
| 服务 | 端口 | 说明 |
| -------- | ---- | ----------------- |
| OpenFang | 4200 | 控制台与 REST API |
## 关键环境变量
| 变量 | 说明 | 默认值 |
| ------------------------ | ----------------------------------------- | -------------------------- |
| `OPENFANG_VERSION` | 用于源码构建的 Git 标签 | `0.1.0` |
| `OPENFANG_PORT_OVERRIDE` | OpenFang 对外端口 | `4200` |
| `OPENFANG_PROVIDER` | 默认模型提供商 | `anthropic` |
| `OPENFANG_MODEL` | 默认模型名称 | `claude-sonnet-4-20250514` |
| `OPENFANG_API_KEY_ENV` | OpenFang 读取提供商密钥时使用的环境变量名 | `ANTHROPIC_API_KEY` |
| `OPENFANG_API_KEY` | 可选的 API Bearer Token | - |
| `ANTHROPIC_API_KEY` | Anthropic API Key | - |
| `OPENAI_API_KEY` | OpenAI API Key | - |
| `GROQ_API_KEY` | Groq API Key | - |
| `TZ` | 容器时区 | `UTC` |
## 数据卷
- `openfang_data`:持久化 `/data` 下的配置与运行数据。
## 说明
- 生成的配置会监听 `0.0.0.0:4200`,适合容器内运行。
- 如果 `OPENFANG_API_KEY` 为空,实例本身不会启用额外 API 认证,是否暴露到公网需要你自行把控。
- 该服务使用上游 Dockerfile 从源码构建,首次构建通常需要几分钟。
## 参考资料
- [OpenFang 仓库](https://github.com/RightNow-AI/openfang)
- [入门文档](https://github.com/RightNow-AI/openfang/blob/main/docs/getting-started.md)
+71
View File
@@ -0,0 +1,71 @@
x-defaults: &defaults
restart: unless-stopped
logging:
driver: json-file
options:
max-size: ${OPENFANG_LOG_MAX_SIZE:-100m}
max-file: '${OPENFANG_LOG_MAX_FILE:-3}'
services:
openfang:
<<: *defaults
build:
context: https://github.com/RightNow-AI/openfang.git#${OPENFANG_VERSION:-0.1.0}
dockerfile: Dockerfile
image: ${GLOBAL_REGISTRY:-}alexsuntop/openfang:${OPENFANG_VERSION:-0.1.0}
ports:
- '${OPENFANG_PORT_OVERRIDE:-4200}:4200'
environment:
- TZ=${TZ:-UTC}
- OPENFANG_HOME=/data
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
- GROQ_API_KEY=${GROQ_API_KEY:-}
env_file:
- .env
entrypoint:
- /bin/sh
- -ec
command: |
: > /data/config.toml
if [ -n "${OPENFANG_API_KEY:-}" ]; then
printf 'api_key = "%s"\n' "${OPENFANG_API_KEY}" >> /data/config.toml
fi
cat >> /data/config.toml <<EOF
api_listen = "0.0.0.0:4200"
log_level = "${OPENFANG_LOG_LEVEL:-info}"
[default_model]
provider = "${OPENFANG_PROVIDER:-anthropic}"
model = "${OPENFANG_MODEL:-claude-sonnet-4-20250514}"
api_key_env = "${OPENFANG_API_KEY_ENV:-ANTHROPIC_API_KEY}"
[memory]
decay_rate = ${OPENFANG_MEMORY_DECAY_RATE:-0.05}
[exec_policy]
mode = "${OPENFANG_EXEC_MODE:-allowlist}"
timeout_secs = ${OPENFANG_EXEC_TIMEOUT_SECS:-30}
EOF
exec openfang start
volumes:
- openfang_data:/data
healthcheck:
test:
- CMD-SHELL
- python3 -c "import urllib.request; urllib.request.urlopen('http://127.0.0.1:4200/api/health', timeout=5)"
interval: 30s
timeout: 10s
retries: 5
start_period: 30s
deploy:
resources:
limits:
cpus: ${OPENFANG_CPU_LIMIT:-2.00}
memory: ${OPENFANG_MEMORY_LIMIT:-2G}
reservations:
cpus: ${OPENFANG_CPU_RESERVATION:-0.50}
memory: ${OPENFANG_MEMORY_RESERVATION:-512M}
volumes:
openfang_data: