# Compose Anything

[中文说明](README.zh.md) | [English](README.md)

Compose Anything 通过提供一组高质量的 Docker Compose 配置文件，帮助用户快速部署各种服务。这些配置约束了资源使用，可快速迁移到 K8S 等系统，并且易于理解和修改。

## 快速开始

先进入目标服务目录，再使用 Docker Compose 启动：

```bash
git clone https://github.com/Sun-ZhenXing/compose-anything.git
cd src/<service>
docker compose up -d
```

大多数配置都可以直接使用默认值启动。`.env.example` 用于说明可选配置项；只有在你需要覆盖端口、密码或镜像版本时，才需要额外创建 `.env` 文件。

### 示例：快速启动 Redis

```bash
cd src/redis
docker compose up -d
docker compose exec redis redis-cli ping
```

如果服务正常，最后一条命令会返回 `PONG`。默认情况下，Redis 会暴露在 `localhost:6379`。如果需要认证、自定义端口或调整镜像版本，请查看 [src/redis](./src/redis)。

## 构建服务

这些服务需要从源代码构建自定义 Docker 镜像。

| 服务                                        | 版本    |
| ------------------------------------------- | ------- |
| [CubeSandbox](./builds/cube-sandbox)        | 0.1.7   |
| [Debian DinD](./builds/debian-dind)         | 0.1.2   |
| [DeerFlow](./builds/deer-flow)              | 2.0     |
| [goose](./builds/goose)                     | 1.18.0  |
| [IOPaint](./builds/io-paint)                | 1.6.0   |
| [K3s inside DinD](./builds/k3s-inside-dind) | 0.2.2   |
| [MinerU vLLM](./builds/mineru)              | 3.4.2   |
| [Multica](./builds/multica)                 | v0.1.32 |
| [OpenFang](./builds/openfang)               | 0.1.0   |
| [Paperclip](./builds/paperclip)             | main    |
| [TurboOCR](./builds/turboocr)               | v2.1.1  |

## 已经支持的服务

| 服务                                                           | 版本                |
| -------------------------------------------------------------- | ------------------- |
| [Apache APISIX](./src/apisix)                                  | 3.13.0              |
| [Apache Cassandra](./src/cassandra)                            | 5.0.2               |
| [Apache Flink](./src/flink)                                    | 1.20.0              |
| [Apache HBase](./src/hbase)                                    | 2.6                 |
| [Apache HTTP Server](./src/apache)                             | 2.4.62              |
| [Apache Kafka](./src/kafka)                                    | 8.2.0               |
| [Apache Pulsar](./src/pulsar)                                  | 4.0.7               |
| [Apache RocketMQ](./src/rocketmq)                              | 5.3.1               |
| [Archon](./apps/archon)                                        | latest              |
| [Agentgateway](./src/agentgateway)                             | 0.11.2              |
| [AnythingLLM](./src/anythingllm)                               | latest              |
| [Bifrost Gateway](./src/bifrost-gateway)                       | v1.4.17             |
| [Bolt.diy](./apps/bolt-diy)                                    | latest              |
| [Budibase](./src/budibase)                                     | 3.23.0              |
| [BuildingAI](./apps/buildingai)                                | latest              |
| [Bytebot](./src/bytebot)                                       | edge                |
| [Clash](./src/clash)                                           | 1.18.0              |
| [ClickHouse](./src/clickhouse)                                 | 24.11.1             |
| [Conductor](./src/conductor)                                   | latest              |
| [Convex](./src/convex)                                         | 33cef775            |
| [DeepTutor](./apps/deeptutor)                                  | latest              |
| [Dify](./apps/dify)                                            | 0.18.2              |
| [DNSMasq](./src/dnsmasq)                                       | 2.91                |
| [Dockge](./src/dockge)                                         | 1                   |
| [Docker Android Emulator](./src/docker-android)                | api-33              |
| [Docker Registry](./src/docker-registry)                       | 3.0.0               |
| [Doris](./src/doris)                                           | 3.0.0               |
| [DuckDB](./src/duckdb)                                         | v1.1.3              |
| [Easy Dataset](./apps/easy-dataset)                            | 1.5.1               |
| [EasyTier](./src/easytier)                                     | v2.6.0              |
| [Elasticsearch](./src/elasticsearch)                           | 9.4.2               |
| [etcd](./src/etcd)                                             | 3.6.0               |
| [FalkorDB](./src/falkordb)                                     | v4.14.11            |
| [Firecrawl](./src/firecrawl)                                   | latest              |
| [Flowise](./src/flowise)                                       | 3.0.12              |
| [frpc](./src/frpc)                                             | 0.68.1              |
| [frps](./src/frps)                                             | 0.68.1              |
| [Gitea Runner](./src/gitea-runner)                             | 2.1.0               |
| [Gitea](./src/gitea)                                           | 1.27.0-rootless     |
| [GitLab Runner](./src/gitlab-runner)                           | 17.10.1             |
| [GitLab](./src/gitlab)                                         | 18.8.3-ce.0         |
| [GoModel](./src/gomodel)                                       | v0.1.27             |
| [GPUStack](./src/gpustack)                                     | v0.5.3              |
| [Grafana](./src/grafana)                                       | 12.3.3              |
| [Grafana Loki](./src/loki)                                     | 3.3.2               |
| [Grafana Tempo](./src/tempo)                                   | 2.7.2               |
| [Halo](./src/halo)                                             | 2.21.9              |
| [Harbor](./src/harbor)                                         | v2.12.0             |
| [HashiCorp Consul](./src/consul)                               | 1.20.3              |
| [InfluxDB](./src/influxdb)                                     | 2.8.0               |
| [Inngest](./src/inngest)                                       | v1.16.3             |
| [Jenkins](./src/jenkins)                                       | 2.541-lts           |
| [JODConverter](./src/jodconverter)                             | latest              |
| [Kestra](./src/kestra)                                         | latest-full         |
| [Kibana](./src/kibana)                                         | 8.16.1              |
| [Kodbox](./src/kodbox)                                         | 1.62                |
| [Kong](./src/kong)                                             | 3.8.0               |
| [Langflow](./apps/langflow)                                    | latest              |
| [Laminar](./src/laminar)                                       | latest              |
| [Langfuse](./apps/langfuse)                                    | 3.115.0             |
| [Letta](./src/letta)                                           | 0.16.7              |
| [LibreChat](./apps/librechat)                                  | v0.8.4              |
| [LibreOffice](./src/libreoffice)                               | latest              |
| [libSQL Server](./src/libsql)                                  | latest              |
| [LiteLLM](./src/litellm)                                       | main-stable         |
| [llama-swap](./src/llama-swap)                                 | cpu                 |
| [llama.cpp](./src/llama-cpp)                                   | server              |
| [LMDeploy](./src/lmdeploy)                                     | v0.11.1             |
| [LobeChat](./src/lobe-chat)                                    | 1.143.3             |
| [Logstash](./src/logstash)                                     | 8.16.1              |
| [MariaDB Galera Cluster](./src/mariadb-galera)                 | 11.7.2              |
| [Mattermost](./apps/mattermost)                                | 11.3                |
| [Memos](./src/memos)                                           | 0.25.3              |
| [Milvus Standalone Embed](./src/milvus-standalone-embed)       | v2.6.7              |
| [Milvus Standalone](./src/milvus-standalone)                   | v2.6.7              |
| [Minecraft Bedrock Server](./src/minecraft-bedrock-server)     | latest              |
| [MinIO](./src/minio)                                           | latest              |
| [MLflow](./src/mlflow)                                         | v2.20.2             |
| [OpenClaw](./apps/openclaw)                                    | 2026.2.3            |
| [MongoDB ReplicaSet Single](./src/mongodb-replicaset-single)   | 8.2.3               |
| [MongoDB ReplicaSet](./src/mongodb-replicaset)                 | 8.2.3               |
| [MongoDB Standalone](./src/mongodb-standalone)                 | 8.3.4               |
| [MySQL](./src/mysql)                                           | 9.7.1               |
| [n8n](./apps/n8n)                                              | 1.114.0             |
| [Nanobot](./apps/nanobot)                                      | v0.1.3.post4        |
| [Nacos](./src/nacos)                                           | v3.1.0              |
| [NebulaGraph](./src/nebulagraph)                               | v3.8.0              |
| [NexaSDK](./src/nexa-sdk)                                      | v0.2.62             |
| [Neo4j](./src/neo4j)                                           | 5.27.4              |
| [Netdata](./src/netdata)                                       | latest              |
| [Nginx](./src/nginx)                                           | 1.29.4              |
| [Node Exporter](./src/node-exporter)                           | v1.8.2              |
| [OceanBase](./src/oceanbase)                                   | 4.4.2.1             |
| [Odoo](./src/odoo)                                             | 19.0                |
| [Ollama](./src/ollama)                                         | 0.14.3              |
| [Open WebUI](./src/open-webui)                                 | main                |
| [Phoenix (Arize)](./src/phoenix)                               | 15.5.0              |
| [Pingap](./src/pingap)                                         | 0.12.7-full         |
| [Pingora Proxy Manager](./src/pingora-proxy-manager)           | v1.0.3              |
| [Open WebUI Rust](./src/open-webui-rust)                       | latest              |
| [OpenCode](./src/opencode)                                     | 1.1.27              |
| [OpenCoze](./apps/opencoze)                                    | See Docs            |
| [OpenCut](./src/opencut)                                       | latest              |
| [OpenList](./src/openlist)                                     | latest              |
| [OpenLIT](./apps/openlit)                                      | latest              |
| [Opik](./apps/opik)                                            | 1.10.23             |
| [OpenSandbox](./apps/opensandbox)                              | v1.0.5              |
| [OpenObserve](./apps/openobserve)                              | v0.50.0             |
| [OpenSearch](./src/opensearch)                                 | 2.19.0              |
| [OpenTelemetry Collector](./src/otel-collector)                | 0.115.1             |
| [OpenViking](./src/openviking)                                 | 0.1.0               |
| [Overleaf](./src/overleaf)                                     | 5.2.1               |
| [Paca](./apps/paca)                                            | 0.5.2               |
| [PocketBase](./src/pocketbase)                                 | 0.30.0              |
| [Podman](./src/podman)                                         | v5.7.1              |
| [Pogocache](./src/pogocache)                                   | 1.3.1               |
| [Portainer](./src/portainer)                                   | 2.27.3-alpine       |
| [Portkey AI Gateway](./src/portkey-gateway)                    | latest              |
| [PostgreSQL](./src/postgres)                                   | 17.10               |
| [Prometheus](./src/prometheus)                                 | 3.5.1               |
| [PyTorch](./src/pytorch)                                       | 2.6.0               |
| [Qdrant](./src/qdrant)                                         | 1.15.4              |
| [RabbitMQ](./src/rabbitmq)                                     | 4.2.4               |
| [RAGFlow](./apps/ragflow)                                      | v0.24.0             |
| [Ray](./src/ray)                                               | 2.42.1              |
| [Redpanda](./src/redpanda)                                     | v24.3.1             |
| [Redis Cluster](./src/redis-cluster)                           | 8.2.1               |
| [Redis](./src/redis)                                           | 8.8.0               |
| [Renovate](./src/renovate)                                     | 42.85.4-full        |
| [Restate Cluster](./src/restate-cluster)                       | 1.5.3               |
| [Restate](./src/restate)                                       | 1.5.3               |
| [RustFS](./src/rustfs)                                         | 1.0.0-beta.8-glibc  |
| [SearXNG](./src/searxng)                                       | 2025.1.20-1ce14ef99 |
| [Selenium](./src/selenium)                                     | 144.0-20260120      |
| [Shannon](./apps/shannon)                                      | v0.3.1              |
| [SigNoz](./src/signoz)                                         | v0.132.2            |
| [Sim](./apps/sim)                                              | latest              |
| [Skyvern](./apps/skyvern)                                      | v1.0.31             |
| [Stable Diffusion WebUI](./apps/stable-diffusion-webui-docker) | latest              |
| [Stirling-PDF](./apps/stirling-pdf)                            | latest              |
| [Sub2API](./src/sub2api)                                       | 0.1.124             |
| [Temporal](./src/temporal)                                     | 1.24.2              |
| [TiDB](./src/tidb)                                             | v8.5.0              |
| [TiKV](./src/tikv)                                             | v8.5.0              |
| [Trigger.dev](./src/trigger-dev)                               | v4.2.0              |
| [TrailBase](./src/trailbase)                                   | 0.22.4              |
| [TurboOCR](./src/turboocr)                                     | v2.1.1              |
| [Valkey Cluster](./src/valkey-cluster)                         | 8.0                 |
| [Valkey](./src/valkey)                                         | 8.0                 |
| [Verdaccio](./src/verdaccio)                                   | 6.1.2               |
| [vLLM](./src/vllm)                                             | v0.13.0             |
| [Windmill](./src/windmill)                                     | main                |
| [ZooKeeper](./src/zookeeper)                                   | 3.9.3               |

## MCP 服务器

| 服务                                                    | 版本   |
| ------------------------------------------------------- | ------ |
| [API Gateway](./mcp-servers/api-gateway)                | latest |
| [ArXiv MCP Server](./mcp-servers/arxiv-mcp-server)      | latest |
| [Basic Memory](./mcp-servers/basic-memory)              | latest |
| [ClickHouse](./mcp-servers/clickhouse)                  | latest |
| [Docker](./mcp-servers/docker)                          | latest |
| [Dockerhub](./mcp-servers/dockerhub)                    | latest |
| [E2B](./mcp-servers/e2b)                                | latest |
| [ElevenLabs](./mcp-servers/elevenlabs)                  | latest |
| [Fetch](./mcp-servers/fetch)                            | latest |
| [Firecrawl](./mcp-servers/firecrawl)                    | latest |
| [Filesystem](./mcp-servers/filesystem)                  | latest |
| [Grafana](./mcp-servers/grafana)                        | latest |
| [Markdownify](./mcp-servers/markdownify)                | latest |
| [Markitdown](./mcp-servers/markitdown)                  | latest |
| [Memory](./mcp-servers/memory)                          | latest |
| [MongoDB](./mcp-servers/mongodb)                        | latest |
| [Neo4j Cypher](./mcp-servers/neo4j-cypher)              | latest |
| [Neo4j Memory](./mcp-servers/neo4j-memory)              | latest |
| [Notion](./mcp-servers/notion)                          | latest |
| [OpenAPI Schema](./mcp-servers/openapi-schema)          | latest |
| [OpenAPI](./mcp-servers/openapi)                        | latest |
| [OpenWeather](./mcp-servers/openweather)                | latest |
| [Paper Search](./mcp-servers/paper-search)              | latest |
| [Playwright](./mcp-servers/playwright)                  | latest |
| [Redis MCP](./mcp-servers/redis)                        | latest |
| [Rust Filesystem](./mcp-servers/rust-mcp-filesystem)    | latest |
| [Sequential Thinking](./mcp-servers/sequentialthinking) | latest |
| [SigNoz MCP Server](./mcp-servers/signoz-mcp-server)    | v0.8.0 |
| [SQLite](./mcp-servers/sqlite)                          | latest |
| [Tavily](./mcp-servers/tavily)                          | latest |
| [Text to GraphQL](./mcp-servers/text-to-graphql)        | latest |
| [Time](./mcp-servers/time)                              | latest |
| [Wolfram Alpha](./mcp-servers/wolfram-alpha)            | latest |
| [YouTube Transcript](./mcp-servers/youtube-transcript)  | latest |

## 规范

1. 开箱即用
    - 配置应该是开箱即用的，无需额外步骤即可启动（最多提供 `.env` 文件）。
2. 命令简单
    - 每个项目提供单一的 `docker-compose.yaml` 文件；
    - 命令复杂度不应超过 `docker compose up -d`；若需要额外流程，请提供 `Makefile`；
    - 若服务需要初始化，优先使用 `healthcheck` 与 `depends_on` 的 `condition: service_healthy` 组织启动顺序。
3. 版本稳定
    - 固定到“最新稳定版”而非 `latest`；
    - 通过环境变量暴露镜像版本（如 `FOO_VERSION`）。
4. 配置约定
    - 尽量通过环境变量配置，而非复杂的命令行参数；
    - 敏感信息通过环境变量或挂载文件传递，不要硬编码；
    - 提供合理默认值，实现零配置可启动；
    - 必须提供带注释的 `.env.example`；
    - 环境变量命名建议：全大写、下划线分隔，按服务加前缀（如 `POSTGRES_*`），端口覆写统一用 `*_PORT_OVERRIDE`。
5. Profiles 规范
    - 对“可选组件/依赖”使用 Profiles；
    - 推荐命名：`gpu`（GPU 加速）、`metrics`（可观测性/导出器）、`dev`（开发特性）。
6. 跨平台与架构
    - 在镜像支持前提下，确保 Debian 12+/Ubuntu 22.04+、Windows 10+、macOS 12+ 可用；
    - 支持 x86-64 与 ARM64 架构尽可能一致；
    - 避免依赖仅在 Linux 主机存在的主机路径（例如 `/etc/localtime`、`/etc/timezone`），统一使用 `TZ` 环境变量传递时区。
7. 卷与挂载
    - 配置文件优先使用相对路径，增强跨平台兼容；
    - 数据目录优先使用“命名卷”，避免主机路径权限/兼容性问题；
    - 如需主机路径，建议提供顶层目录变量（如 `DATA_DIR`）。
8. 资源与日志
    - 必须限制 CPU/内存，防止资源打爆；
    - GPU 服务默认单卡：可使用 `deploy.resources.reservations.devices`（Compose 支持为 device_requests 映射）或 `gpus`；
    - 限制日志大小（`json-file`：`max-size`/`max-file`）。
9. 健康检查
    - 每个服务应提供 `healthcheck`，包括合适的 `interval`、`timeout`、`retries` 与 `start_period`；
    - 依赖链通过 `depends_on.condition: service_healthy` 组织。
10. 安全基线（能用则用）
    - 以非 root 运行（提供 `PUID`/`PGID` 或直接 `user: "1000:1000"`）；
    - 只读根文件系统（`read_only: true`），必要目录使用 `tmpfs`/可写挂载；
    - 最小权限：`cap_drop: ["ALL"]`，按需再 `cap_add`；
    - 避免使用 `container_name`（影响可扩缩与复用网络别名）；
    - 如需暴露 Docker 套接字等高危挂载，必须在文档中明确“风险与替代方案”。
11. 文档与可发现性
    - 提供清晰文档与示例（含初始化与管理员账号说明、必要的安全/许可说明）；
    - 提供对 LLM 友好的结构化文档；
    - 在 README 中标注主要环境变量与默认端口，并链接到 `README.md` / `README.zh.md`。

## 开源协议

[MIT License](./LICENSE).
