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
+31
View File
@@ -0,0 +1,31 @@
# Source build configuration
PAPERCLIP_GIT_REF=main
# Network configuration
PAPERCLIP_PORT_OVERRIDE=3100
PAPERCLIP_PUBLIC_URL=http://localhost:3100
PAPERCLIP_ALLOWED_HOSTNAMES=localhost
# Runtime mode
PAPERCLIP_DEPLOYMENT_MODE=authenticated
PAPERCLIP_DEPLOYMENT_EXPOSURE=private
# Optional external database
DATABASE_URL=
# LLM credentials for local adapters and workflows
OPENAI_API_KEY=
ANTHROPIC_API_KEY=
# Resources
PAPERCLIP_CPU_LIMIT=2.00
PAPERCLIP_MEMORY_LIMIT=4G
PAPERCLIP_CPU_RESERVATION=0.50
PAPERCLIP_MEMORY_RESERVATION=1G
# Logging
PAPERCLIP_LOG_MAX_SIZE=100m
PAPERCLIP_LOG_MAX_FILE=3
# Timezone
TZ=UTC
+67
View File
@@ -0,0 +1,67 @@
# Paperclip
[中文文档](README.zh.md)
Paperclip is an open-source orchestration platform for running AI-native teams. This Compose setup builds the upstream Docker image from source, persists the full Paperclip home directory, and exposes the web UI on port 3100.
## Quick Start
1. Copy the example environment file:
```bash
cp .env.example .env
```
2. Optionally edit `.env`:
- Set `PAPERCLIP_PUBLIC_URL` if you are not using `http://localhost:3100`
- Add `OPENAI_API_KEY` and or `ANTHROPIC_API_KEY` for local adapters
- Set `DATABASE_URL` if you want to use an external PostgreSQL instance instead of the embedded database
3. Start the service:
```bash
docker compose up -d
```
4. Open the UI:
- <http://localhost:3100>
5. Follow the Paperclip onboarding flow in the browser.
## Default Ports
| Service | Port | Description |
| --------- | ---- | -------------- |
| Paperclip | 3100 | Web UI and API |
## Important Environment Variables
| Variable | Description | Default |
| ------------------------------- | ---------------------------------------- | ----------------------- |
| `PAPERCLIP_GIT_REF` | Git ref used for the source build | `main` |
| `PAPERCLIP_PORT_OVERRIDE` | Host port for Paperclip | `3100` |
| `PAPERCLIP_PUBLIC_URL` | Public URL for auth and invite flows | `http://localhost:3100` |
| `PAPERCLIP_ALLOWED_HOSTNAMES` | Extra allowed hostnames | `localhost` |
| `PAPERCLIP_DEPLOYMENT_MODE` | Deployment mode | `authenticated` |
| `PAPERCLIP_DEPLOYMENT_EXPOSURE` | Exposure mode | `private` |
| `DATABASE_URL` | Optional external PostgreSQL URL | - |
| `OPENAI_API_KEY` | OpenAI key for bundled local adapters | - |
| `ANTHROPIC_API_KEY` | Anthropic key for bundled local adapters | - |
| `TZ` | Container timezone | `UTC` |
## Volumes
- `paperclip_data`: Stores embedded PostgreSQL data, uploaded files, secrets, and runtime state.
## Notes
- If `DATABASE_URL` is not provided, Paperclip automatically uses embedded PostgreSQL.
- The upstream Docker image includes the UI and server in one container.
- The first source build can take several minutes.
## References
- [Paperclip Repository](https://github.com/paperclipai/paperclip)
- [Docker Deployment Guide](https://github.com/paperclipai/paperclip/blob/main/docs/deploy/docker.md)
+67
View File
@@ -0,0 +1,67 @@
# Paperclip
[English](README.md)
Paperclip 是一个面向 AI 团队编排的开源平台。这个 Compose 配置会从上游源码构建 Docker 镜像,持久化整个 Paperclip Home 目录,并通过 3100 端口暴露 Web 界面。
## 快速开始
1. 复制环境变量示例文件:
```bash
cp .env.example .env
```
2. 按需编辑 `.env`
- 如果你不通过 `http://localhost:3100` 访问,请修改 `PAPERCLIP_PUBLIC_URL`
- 如果要启用本地适配器,填写 `OPENAI_API_KEY` 和或 `ANTHROPIC_API_KEY`
- 如果要接入外部 PostgreSQL,而不是内置数据库,请设置 `DATABASE_URL`
3. 启动服务:
```bash
docker compose up -d
```
4. 打开界面:
- <http://localhost:3100>
5. 在浏览器中完成 Paperclip 的初始化流程。
## 默认端口
| 服务 | 端口 | 说明 |
| --------- | ---- | -------------- |
| Paperclip | 3100 | Web 界面与 API |
## 关键环境变量
| 变量 | 说明 | 默认值 |
| ------------------------------- | ---------------------------- | ----------------------- |
| `PAPERCLIP_GIT_REF` | 用于源码构建的 Git 引用 | `main` |
| `PAPERCLIP_PORT_OVERRIDE` | Paperclip 对外端口 | `3100` |
| `PAPERCLIP_PUBLIC_URL` | 认证与邀请流程使用的公开 URL | `http://localhost:3100` |
| `PAPERCLIP_ALLOWED_HOSTNAMES` | 额外允许的主机名 | `localhost` |
| `PAPERCLIP_DEPLOYMENT_MODE` | 部署模式 | `authenticated` |
| `PAPERCLIP_DEPLOYMENT_EXPOSURE` | 暴露模式 | `private` |
| `DATABASE_URL` | 可选的外部 PostgreSQL 连接串 | - |
| `OPENAI_API_KEY` | OpenAI Key | - |
| `ANTHROPIC_API_KEY` | Anthropic Key | - |
| `TZ` | 容器时区 | `UTC` |
## 数据卷
- `paperclip_data`:保存内置 PostgreSQL、上传文件、密钥和运行状态。
## 说明
- 如果没有设置 `DATABASE_URL`Paperclip 会自动启用内置 PostgreSQL。
- 上游 Docker 镜像已经包含前端和服务端,不需要再拆分多个容器。
- 首次源码构建通常需要几分钟。
## 参考资料
- [Paperclip 仓库](https://github.com/paperclipai/paperclip)
- [Docker 部署文档](https://github.com/paperclipai/paperclip/blob/main/docs/deploy/docker.md)
+53
View File
@@ -0,0 +1,53 @@
x-defaults: &defaults
restart: unless-stopped
logging:
driver: json-file
options:
max-size: ${PAPERCLIP_LOG_MAX_SIZE:-100m}
max-file: '${PAPERCLIP_LOG_MAX_FILE:-3}'
services:
paperclip:
<<: *defaults
build:
context: https://github.com/paperclipai/paperclip.git#${PAPERCLIP_GIT_REF:-main}
dockerfile: Dockerfile
image: ${GLOBAL_REGISTRY:-}alexsuntop/paperclip:${PAPERCLIP_GIT_REF:-main}
ports:
- '${PAPERCLIP_PORT_OVERRIDE:-3100}:3100'
environment:
- TZ=${TZ:-UTC}
- HOST=0.0.0.0
- PORT=3100
- SERVE_UI=true
- PAPERCLIP_HOME=/paperclip
- PAPERCLIP_DEPLOYMENT_MODE=${PAPERCLIP_DEPLOYMENT_MODE:-authenticated}
- PAPERCLIP_DEPLOYMENT_EXPOSURE=${PAPERCLIP_DEPLOYMENT_EXPOSURE:-private}
- PAPERCLIP_PUBLIC_URL=${PAPERCLIP_PUBLIC_URL:-http://localhost:3100}
- PAPERCLIP_ALLOWED_HOSTNAMES=${PAPERCLIP_ALLOWED_HOSTNAMES:-localhost}
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
- DATABASE_URL=${DATABASE_URL:-}
env_file:
- .env
volumes:
- paperclip_data:/paperclip
healthcheck:
test:
- CMD-SHELL
- curl -fsS http://127.0.0.1:3100/api/health >/dev/null || exit 1
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
deploy:
resources:
limits:
cpus: ${PAPERCLIP_CPU_LIMIT:-2.00}
memory: ${PAPERCLIP_MEMORY_LIMIT:-4G}
reservations:
cpus: ${PAPERCLIP_CPU_RESERVATION:-0.50}
memory: ${PAPERCLIP_MEMORY_RESERVATION:-1G}
volumes:
paperclip_data: