b98e6f652a1410c3964ecae086164e02e798a868
Compose Anything
Compose Anything helps users quickly deploy various services by providing a set of high-quality Docker Compose configuration files. These configurations constrain resource usage, can be easily migrated to systems like K8S, and are easy to understand and modify.
Supported Services
MCP Servers
| Server | Version |
|---|---|
| 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 |
Guidelines
- Out-of-the-box
- Configurations should work out-of-the-box with no extra steps (at most, provide a
.envfile).
- Configurations should work out-of-the-box with no extra steps (at most, provide a
- Simple commands
- Each project ships a single
docker-compose.yamlfile. - Command complexity should not exceed
docker compose up -d; if more is needed, provide aMakefile. - For initialization, prefer
healthcheckwithdepends_onusingcondition: service_healthyto orchestrate startup order.
- Each project ships a single
- Stable versions
- Pin to the latest stable version instead of
latest. - Expose image versions via environment variables (e.g.,
FOO_VERSION).
- Pin to the latest stable version instead of
- Configuration conventions
- Prefer environment variables over complex CLI flags;
- Pass secrets via env vars or mounted files, never hardcode;
- Provide sensible defaults to enable zero-config startup;
- A commented
.env.exampleis required; - Env var naming: UPPER_SNAKE_CASE with service prefix (e.g.,
POSTGRES_*); use*_PORT_OVERRIDEfor host port overrides.
- Profiles
- Use Profiles for optional components/dependencies;
- Recommended names:
gpu(acceleration),metrics(observability/exporters),dev(dev-only features).
- Cross-platform & architectures
- Where images support it, ensure Debian 12+/Ubuntu 22.04+, Windows 10+, macOS 12+ work;
- Support x86-64 and ARM64 as consistently as possible;
- Avoid Linux-only host paths like
/etc/localtimeand/etc/timezone; preferTZenv var for time zone.
- Volumes & mounts
- Prefer relative paths for configuration to improve portability;
- Prefer named volumes for data directories to avoid permission/compat issues of host paths;
- If host paths are necessary, provide a top-level directory variable (e.g.,
DATA_DIR).
- Resources & logging
- Always limit CPU and memory to prevent resource exhaustion;
- For GPU services, enable a single GPU by default via
deploy.resources.reservations.devices(maps to device requests) orgpuswhere applicable; - Limit logs (
json-filedriver:max-size/max-file).
- Healthchecks
- Every service should define a
healthcheckwith suitableinterval,timeout,retries, andstart_period; - Use
depends_on.condition: service_healthyfor dependency chains.
- Every service should define a
- Security baseline (apply when possible)
- Run as non-root (expose
PUID/PGIDor setuser: "1000:1000"); - Read-only root filesystem (
read_only: true), usetmpfs/writable mounts for required paths; - Least privilege:
cap_drop: ["ALL"], add back only what’s needed viacap_add; - Avoid
container_name(hurts scaling and reusable network aliases); - If exposing Docker socket or other high-risk mounts, clearly document risks and alternatives.
- Run as non-root (expose
- Documentation & discoverability
- Provide clear docs and examples (include admin/initialization notes, and security/license notes when relevant);
- Keep docs LLM-friendly;
- List primary env vars and default ports in the README, and link to
README.md/README.zh.md.
License
Languages
Dockerfile
49.8%
JavaScript
30.4%
HTML
19.8%