- Created README.zh.md for DeepTutor with comprehensive features, installation steps, and usage instructions in Chinese. - Added docker-compose.yaml for DeepTutor to define services, environment variables, and resource limits. - Introduced .env.example for llama.cpp with configuration options for server settings and resource management. - Added README.md and README.zh.md for llama.cpp detailing features, prerequisites, quick start guides, and API documentation. - Implemented docker-compose.yaml for llama.cpp to support various server configurations (CPU, CUDA, ROCm) and CLI usage.
18 KiB
18 KiB
Compose Anything
Compose Anything 通过提供一组高质量的 Docker Compose 配置文件,帮助用户快速部署各种服务。这些配置约束了资源使用,可快速迁移到 K8S 等系统,并且易于理解和修改。
构建服务
这些服务需要从源代码构建自定义 Docker 镜像。
| 服务 | 版本 |
|---|---|
| Debian DinD | 0.1.2 |
| goose | 1.18.0 |
| IOPaint | 1.6.0 |
| K3s inside DinD | 0.2.2 |
| MinerU vLLM | 2.7.2 |
已经支持的服务
MCP 服务器
| 服务 | 版本 |
|---|---|
| API Gateway | latest |
| ArXiv MCP Server | latest |
| Basic Memory | latest |
| ClickHouse | latest |
| Docker | latest |
| Dockerhub | latest |
| E2B | latest |
| ElevenLabs | latest |
| Fetch | latest |
| Firecrawl | latest |
| Filesystem | latest |
| Grafana | latest |
| Markdownify | latest |
| Markitdown | latest |
| Memory | latest |
| MongoDB | latest |
| Neo4j Cypher | latest |
| Neo4j Memory | latest |
| Notion | latest |
| OpenAPI Schema | latest |
| OpenAPI | latest |
| OpenWeather | latest |
| Paper Search | latest |
| Playwright | latest |
| Redis MCP | latest |
| Rust Filesystem | latest |
| Sequential Thinking | latest |
| SQLite | latest |
| Tavily | latest |
| Text to GraphQL | latest |
| Time | latest |
| Wolfram Alpha | latest |
| YouTube Transcript | latest |
规范
- 开箱即用
- 配置应该是开箱即用的,无需额外步骤即可启动(最多提供
.env文件)。
- 配置应该是开箱即用的,无需额外步骤即可启动(最多提供
- 命令简单
- 每个项目提供单一的
docker-compose.yaml文件; - 命令复杂度不应超过
docker compose up -d;若需要额外流程,请提供Makefile; - 若服务需要初始化,优先使用
healthcheck与depends_on的condition: service_healthy组织启动顺序。
- 每个项目提供单一的
- 版本稳定
- 固定到“最新稳定版”而非
latest; - 通过环境变量暴露镜像版本(如
FOO_VERSION)。
- 固定到“最新稳定版”而非
- 配置约定
- 尽量通过环境变量配置,而非复杂的命令行参数;
- 敏感信息通过环境变量或挂载文件传递,不要硬编码;
- 提供合理默认值,实现零配置可启动;
- 必须提供带注释的
.env.example; - 环境变量命名建议:全大写、下划线分隔,按服务加前缀(如
POSTGRES_*),端口覆写统一用*_PORT_OVERRIDE。
- Profiles 规范
- 对“可选组件/依赖”使用 Profiles;
- 推荐命名:
gpu(GPU 加速)、metrics(可观测性/导出器)、dev(开发特性)。
- 跨平台与架构
- 在镜像支持前提下,确保 Debian 12+/Ubuntu 22.04+、Windows 10+、macOS 12+ 可用;
- 支持 x86-64 与 ARM64 架构尽可能一致;
- 避免依赖仅在 Linux 主机存在的主机路径(例如
/etc/localtime、/etc/timezone),统一使用TZ环境变量传递时区。
- 卷与挂载
- 配置文件优先使用相对路径,增强跨平台兼容;
- 数据目录优先使用“命名卷”,避免主机路径权限/兼容性问题;
- 如需主机路径,建议提供顶层目录变量(如
DATA_DIR)。
- 资源与日志
- 必须限制 CPU/内存,防止资源打爆;
- GPU 服务默认单卡:可使用
deploy.resources.reservations.devices(Compose 支持为 device_requests 映射)或gpus; - 限制日志大小(
json-file:max-size/max-file)。
- 健康检查
- 每个服务应提供
healthcheck,包括合适的interval、timeout、retries与start_period; - 依赖链通过
depends_on.condition: service_healthy组织。
- 每个服务应提供
- 安全基线(能用则用)
- 以非 root 运行(提供
PUID/PGID或直接user: "1000:1000"); - 只读根文件系统(
read_only: true),必要目录使用tmpfs/可写挂载; - 最小权限:
cap_drop: ["ALL"],按需再cap_add; - 避免使用
container_name(影响可扩缩与复用网络别名); - 如需暴露 Docker 套接字等高危挂载,必须在文档中明确“风险与替代方案”。
- 以非 root 运行(提供
- 文档与可发现性
- 提供清晰文档与示例(含初始化与管理员账号说明、必要的安全/许可说明);
- 提供对 LLM 友好的结构化文档;
- 在 README 中标注主要环境变量与默认端口,并链接到
README.md/README.zh.md。