8e096fb9a7d408b3e98d4a251d0faf87d789e4e5
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
| Service | Version |
|---|---|
| Bifrost Gateway | 1.2.15 |
| Clash | 1.18.0 |
| Docker Registry | 3.0.0 |
| frpc | 0.64.0 |
| frps | 0.64.0 |
| Gitea | 1.24.6 |
| Gitea Runner | 0.2.12 |
| GitLab | 17.10.4-ce.0 |
| GitLab Runner | 17.10.1 |
| IOPaint | latest |
| Milvus Standalone | 2.6.2 |
| Milvus Standalone Embed | 2.6.2 |
| MinerU SGALNG | 2.2.2 |
| MinerU v2 | 2.5.3 |
| MinIO | RELEASE.2025-09-07T16-13-09Z |
| MongoDB ReplicaSet | 8.0.13 |
| MongoDB Standalone | 8.0.13 |
| MySQL | 9.4.0 |
| Ollama | 0.12.0 |
| Open WebUI | main |
| OpenCut | latest |
| PocketBase | 0.30.0 |
| PostgreSQL | 17.6 |
| Qdrant | 1.15.4 |
| RabbitMQ | 4.1.4 |
| Redis | 8.2.1 |
Guidelines
- Out-of-the-box: Configurations should work out-of-the-box, requiring no setup to start (at most, provide a
.envfile). - Simple Commands
- Each project provides a single
docker-compose.yamlfile. - Command complexity should not exceed the
docker composecommand; if it does, provide aMakefile. - If a service requires initialization, use
depends_onto simulate Init containers.
- Each project provides a single
- Stable Versions
- Provide the latest stable image version instead of
latest. - Allow version configuration via environment variables.
- Provide the latest stable image version instead of
- Highly Configurable
- Prefer configuration via environment variables rather than complex command-line arguments.
- Sensitive information like passwords should be passed via environment variables or mounted files, not hardcoded.
- Provide reasonable defaults so services can start with zero configuration.
- Provide a well-commented
.env.examplefile to help users get started quickly. - Use Profiles for optional dependencies.
- Cross-Platform: (Where supported by the image) Ensure compatibility with major platforms.
- Compatibility: Debian 12+/Ubuntu 22.04+, Windows 10+, macOS 12+.
- Support multiple architectures where possible, such as x86-64 and ARM64.
- Careful Mounting
- Use relative paths for configuration file mounts to ensure cross-platform compatibility.
- Use named volumes for data directories to avoid permission and compatibility issues with host path mounts.
- Default Resource Limits
- Limit CPU and memory usage for each service to prevent accidental resource exhaustion.
- Limit log file size to prevent logs from filling up the disk.
- For GPU services, enable single GPU by default.
- Comprehensive Documentation
- Provide good documentation and examples to help users get started and understand the configurations.
- Clearly explain how to initialize accounts, admin accounts, etc.
- Provide security and license notes when necessary.
- Offer LLM-friendly documentation for easy querying and understanding by language models.
- Best Practices: Follow other best practices to ensure security, performance, and maintainability.
License
MIT License.
Languages
Dockerfile
49.8%
JavaScript
30.4%
HTML
19.8%