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
+34
View File
@@ -0,0 +1,34 @@
# Image versions
MATTERMOST_VERSION=11.3
POSTGRES_VERSION=17-alpine
# Network configuration
MATTERMOST_PORT_OVERRIDE=8065
MATTERMOST_SITE_URL=http://localhost:8065
# PostgreSQL configuration
POSTGRES_DB=mattermost
POSTGRES_USER=mmuser
POSTGRES_PASSWORD=mmchangeit
# Mattermost runtime configuration
MATTERMOST_ENABLE_LOCAL_MODE=false
# Resources - Mattermost
MATTERMOST_CPU_LIMIT=2.00
MATTERMOST_MEMORY_LIMIT=2G
MATTERMOST_CPU_RESERVATION=0.50
MATTERMOST_MEMORY_RESERVATION=512M
# Resources - PostgreSQL
MATTERMOST_DB_CPU_LIMIT=1.00
MATTERMOST_DB_MEMORY_LIMIT=1G
MATTERMOST_DB_CPU_RESERVATION=0.25
MATTERMOST_DB_MEMORY_RESERVATION=256M
# Logging
MATTERMOST_LOG_MAX_SIZE=100m
MATTERMOST_LOG_MAX_FILE=3
# Timezone
TZ=UTC
+68
View File
@@ -0,0 +1,68 @@
# Mattermost
[中文文档](README.zh.md)
Mattermost is an open-source team collaboration platform that provides chat, file sharing, channels, and integrations. This Compose stack includes Mattermost plus PostgreSQL and is designed to start with a single `docker compose up -d`.
## Quick Start
1. Copy the example environment file:
```bash
cp .env.example .env
```
2. Edit `.env` if you want to change the port, site URL, or database password.
3. Start the stack:
```bash
docker compose up -d
```
4. Open Mattermost:
- <http://localhost:8065>
5. Complete the first-run wizard to create the initial system admin account.
## Default Ports
| Service | Port | Description |
| ---------- | ---- | ---------------------- |
| Mattermost | 8065 | Web UI and API |
| PostgreSQL | 5432 | Internal database only |
## Important Environment Variables
| Variable | Description | Default |
| ------------------------------ | ---------------------------------------------- | ----------------------- |
| `MATTERMOST_VERSION` | Mattermost Team Edition image tag | `11.3` |
| `MATTERMOST_PORT_OVERRIDE` | Host port for Mattermost | `8065` |
| `MATTERMOST_SITE_URL` | Public URL used by Mattermost | `http://localhost:8065` |
| `POSTGRES_DB` | PostgreSQL database name | `mattermost` |
| `POSTGRES_USER` | PostgreSQL user | `mmuser` |
| `POSTGRES_PASSWORD` | PostgreSQL password | `mmchangeit` |
| `MATTERMOST_ENABLE_LOCAL_MODE` | Enables local mode for administrative commands | `false` |
| `TZ` | Container timezone | `UTC` |
## Volumes
- `mattermost_postgres_data`: PostgreSQL data.
- `mattermost_config`: Mattermost config directory.
- `mattermost_data`: Uploaded files and application data.
- `mattermost_logs`: Application logs.
- `mattermost_plugins`: Server-side plugins.
- `mattermost_client_plugins`: Webapp plugins.
- `mattermost_bleve_indexes`: Search indexes.
## Notes
- The application depends on PostgreSQL and waits until the database is healthy before booting.
- The default setup uses Team Edition.
- If you expose Mattermost behind a reverse proxy or different hostname, update `MATTERMOST_SITE_URL`.
## References
- [Mattermost Repository](https://github.com/mattermost/mattermost)
- [Mattermost Team Edition Image](https://hub.docker.com/r/mattermost/mattermost-team-edition)
+68
View File
@@ -0,0 +1,68 @@
# Mattermost
[English](README.md)
Mattermost 是一个开源团队协作平台,提供聊天、频道、文件共享和集成能力。这个 Compose 配置包含 Mattermost 和 PostgreSQL,目标是用一条 `docker compose up -d` 完成启动。
## 快速开始
1. 复制环境变量示例文件:
```bash
cp .env.example .env
```
2. 按需修改 `.env`,例如端口、站点 URL 或数据库密码。
3. 启动整个栈:
```bash
docker compose up -d
```
4. 打开 Mattermost
- <http://localhost:8065>
5. 按照首次启动向导创建初始系统管理员账号。
## 默认端口
| 服务 | 端口 | 说明 |
| ---------- | ---- | -------------------- |
| Mattermost | 8065 | Web 界面与 API |
| PostgreSQL | 5432 | 仅供内部使用的数据库 |
## 关键环境变量
| 变量 | 说明 | 默认值 |
| ------------------------------ | -------------------------------- | ----------------------- |
| `MATTERMOST_VERSION` | Mattermost Team Edition 镜像标签 | `11.3` |
| `MATTERMOST_PORT_OVERRIDE` | Mattermost 对外端口 | `8065` |
| `MATTERMOST_SITE_URL` | Mattermost 对外访问 URL | `http://localhost:8065` |
| `POSTGRES_DB` | PostgreSQL 数据库名 | `mattermost` |
| `POSTGRES_USER` | PostgreSQL 用户名 | `mmuser` |
| `POSTGRES_PASSWORD` | PostgreSQL 密码 | `mmchangeit` |
| `MATTERMOST_ENABLE_LOCAL_MODE` | 是否启用本地管理模式 | `false` |
| `TZ` | 容器时区 | `UTC` |
## 数据卷
- `mattermost_postgres_data`PostgreSQL 数据。
- `mattermost_config`Mattermost 配置目录。
- `mattermost_data`:上传文件和业务数据。
- `mattermost_logs`:应用日志。
- `mattermost_plugins`:服务端插件。
- `mattermost_client_plugins`:前端插件。
- `mattermost_bleve_indexes`:搜索索引。
## 说明
- Mattermost 依赖 PostgreSQL,只有数据库健康后才会继续启动。
- 这里默认使用 Team Edition。
- 如果你通过反向代理或自定义域名访问 Mattermost,请同步修改 `MATTERMOST_SITE_URL`。
## 参考资料
- [Mattermost 仓库](https://github.com/mattermost/mattermost)
- [Mattermost Team Edition 镜像](https://hub.docker.com/r/mattermost/mattermost-team-edition)
+84
View File
@@ -0,0 +1,84 @@
x-defaults: &defaults
restart: unless-stopped
logging:
driver: json-file
options:
max-size: ${MATTERMOST_LOG_MAX_SIZE:-100m}
max-file: '${MATTERMOST_LOG_MAX_FILE:-3}'
services:
mattermost-postgres:
<<: *defaults
image: ${GLOBAL_REGISTRY:-}postgres:${POSTGRES_VERSION:-17-alpine}
environment:
- TZ=${TZ:-UTC}
- POSTGRES_DB=${POSTGRES_DB:-mattermost}
- POSTGRES_USER=${POSTGRES_USER:-mmuser}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-mmchangeit}
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- mattermost_postgres_data:/var/lib/postgresql/data
healthcheck:
test: [CMD-SHELL, pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB]
interval: 15s
timeout: 5s
retries: 10
start_period: 20s
deploy:
resources:
limits:
cpus: ${MATTERMOST_DB_CPU_LIMIT:-1.00}
memory: ${MATTERMOST_DB_MEMORY_LIMIT:-1G}
reservations:
cpus: ${MATTERMOST_DB_CPU_RESERVATION:-0.25}
memory: ${MATTERMOST_DB_MEMORY_RESERVATION:-256M}
mattermost:
<<: *defaults
image: ${GLOBAL_REGISTRY:-}mattermost/mattermost-team-edition:${MATTERMOST_VERSION:-11.3}
depends_on:
mattermost-postgres:
condition: service_healthy
ports:
- '${MATTERMOST_PORT_OVERRIDE:-8065}:8065'
environment:
- TZ=${TZ:-UTC}
- MM_SQLSETTINGS_DRIVERNAME=postgres
- MM_SQLSETTINGS_DATASOURCE=postgres://${POSTGRES_USER:-mmuser}:${POSTGRES_PASSWORD:-mmchangeit}@mattermost-postgres:5432/${POSTGRES_DB:-mattermost}?sslmode=disable&connect_timeout=10
- MM_SERVICESETTINGS_SITEURL=${MATTERMOST_SITE_URL:-http://localhost:8065}
- MM_SERVICESETTINGS_ENABLELOCALMODE=${MATTERMOST_ENABLE_LOCAL_MODE:-false}
- MM_PLUGINSETTINGS_ENABLEUPLOADS=true
- MM_BLEVESETTINGS_INDEXDIR=/mattermost/bleve-indexes
- MM_FILESETTINGS_DIRECTORY=/mattermost/data
env_file:
- .env
volumes:
- mattermost_config:/mattermost/config
- mattermost_data:/mattermost/data
- mattermost_logs:/mattermost/logs
- mattermost_plugins:/mattermost/plugins
- mattermost_client_plugins:/mattermost/client/plugins
- mattermost_bleve_indexes:/mattermost/bleve-indexes
healthcheck:
test: [CMD, /mattermost/bin/mmctl, system, status, --local]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
deploy:
resources:
limits:
cpus: ${MATTERMOST_CPU_LIMIT:-2.00}
memory: ${MATTERMOST_MEMORY_LIMIT:-2G}
reservations:
cpus: ${MATTERMOST_CPU_RESERVATION:-0.50}
memory: ${MATTERMOST_MEMORY_RESERVATION:-512M}
volumes:
mattermost_postgres_data:
mattermost_config:
mattermost_data:
mattermost_logs:
mattermost_plugins:
mattermost_client_plugins:
mattermost_bleve_indexes: