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