랭킹으로 돌아가기

ajnart/dcm

TypeScriptcompose.ajnart.dev

DockerComposeMaker (DCM) is a self-hostable website to help you pick and create a docker-compose.yml file for your home server. Discover new containers, discover and share a config in a couple of clicks!

dockerdocker-composehomeservermanagmentself-hostedselfhosted
스타 성장
스타
1.4k
포크
52
주간 성장
이슈
9
1.2k1.4k
2025년 4월2025년 9월2026년 2월2026년 7월
아티팩트npmnpm install dcm
README
DCM Logo

DCM - Docker Compose Maker

CI Status Docker Image

Live Demo 🚀 Install 💻 Contribute 🤝 Supported Tools 📦 Screenshots 📸

📋 About

[!NOTE] 🌟 Community-Driven Project: DCM started as a simple tool but aims to become the go-to resource for Docker Compose configurations, powered by the community. We believe everyone has their favorite self-hosted tools, and we'd love for you to share yours! Whether you're using a popular application or a hidden gem, your contribution helps others discover and easily deploy great software.

DCM (Docker Compose Maker) is a simple yet powerful tool that helps you create docker-compose.yaml files for your self-hosted applications. Select from a curated list of popular containers and generate a ready-to-use configuration file with just a few clicks.

No more copy-pasting from documentation or trying to remember the correct configuration options - this tool makes it easy to set up your Docker environment.

[!TIP] Most containers come pre-configured with best practices and sensible defaults, saving you hours of documentation reading and configuration tweaking.

💡 Share Your Stack: Using a great tool that's not listed here? We'd love to include it! Check out our contribution guide to help others discover and use your favorite containers.

🔧 How to Use DCM

Using Docker Compose Maker is simple and intuitive:

  1. Select containers - Browse the curated list of self-hosted applications and click to select the ones you want to include
  2. Use templates - Choose from predefined templates in the Template Gallery for common stacks like media servers
  3. Configure settings - Adjust environment variables, paths, and other common settings
  4. Generate your configuration - Click "Copy Compose" to view and customize your docker-compose.yaml
  5. Deploy your stack - Use one of the following methods to deploy your containers:

[!IMPORTANT] All containers are configured to use environment variables like ${PUID}, ${PGID}, and ${TZ}. Make sure to set these in your deployment to avoid permission issues.

Deployment Options

Once you have your docker-compose configuration, you have several ways to deploy it:

Copy & Paste

Simply copy the generated docker-compose.yaml and .env content, save them locally, and run docker-compose up -d to start your containers.

Download Files

Download the generated docker-compose.yaml and .env files directly from the interface, then use them with your preferred Docker management tool.

[!NOTE] The downloaded .env file contains all the environment variables referenced in your docker-compose.yaml. Keep both files in the same directory when deploying.

Portainer Stacks

If you're already using Portainer to manage your Docker environment, you can easily deploy your configuration as a stack:

  1. Navigate to your Portainer dashboard and select Stacks from the sidebar
  2. Click Add stack
  3. Give your stack a name
  4. Select Web editor and paste the generated docker-compose content
  5. (Optional) Add the environment variables from the .env file
  6. Click Deploy the stack

[!CAUTION] When using Portainer Stacks, you'll need to manually add the environment variables or upload the .env file, as Portainer doesn't automatically read the .env file in all configurations.

Using Portainer provides a user-friendly web interface to manage, update, and monitor your containers without needing command-line tools.

Other Docker Management Tools

The generated compose file works with any tool that supports docker-compose syntax, such as Docker Desktop, Rancher, Yacht, or command-line tools.

🚀 Quick Start

If you want to try DCM for yourself, there are several ways to get started:

🌐 Use the Online Version

Visit compose.ajnart.dev to use the tool immediately without installation.

[!NOTE] The online version includes analytics for usage tracking, while the self-hosted version does not.

🐳 Run with Docker

Run with a single command:

docker run -p 7576:7576 --name dcm --rm ghcr.io/ajnart/dcm

Then visit http://localhost:7576 in your browser.

The Docker image is available for multiple platforms:

  • linux/amd64
  • linux/arm64
  • linux/arm/v7

📦 Using Docker Compose

Create a docker-compose.yaml file:

services:
  dcm:
    image: ghcr.io/ajnart/dcm
    container_name: dcm
    ports:
      - "7576:7576"
    restart: unless-stopped

Then run:

docker-compose up -d

🛠️ Build from Source

  1. Clone the repository:
git clone https://github.com/ajnart/dcm.git
cd dcm
  1. Install dependencies:

First install Bun if you haven't already, then run:

bun install

[!WARNING] Using npm instead of Bun may result in longer installation times and potential compatibility issues. We strongly recommend using Bun for development.

  1. Build and start:
bun run build
bun start

🧰 Supported Tools

DCM includes configuration for many popular self-hosted applications, including:

📺 Media Management:

🔍 Dashboards & Management:

📥 Download Management:

🗄️ Databases:

📊 Monitoring & Automation:

🔐 Security: Vaultwarden

💾 Storage & Files: Nextcloud

Each tool includes a detailed description, GitHub star count, and pre-configured docker-compose settings.

🧪 Testing

DCM uses Bun for testing. To run the tests:

# Run all tests
bun test

# Run Docker Compose validation tests
bun test:compose

# Run container schema validation tests
bun test:containers

DCM includes a Template Gallery that allows you to quickly add predefined stacks of containers based on common use cases:

  • Media Server Stacks: Complete media server setups with Jellyfin/Plex and related tools
  • Development Environments: Web development stacks with databases and web servers
  • Monitoring Solutions: Grafana, Prometheus, and other monitoring tools
  • Database Clusters: Various database engines with management tools
  • Security Tools: Password managers and security-related containers
  • And more!: Smart home hubs, personal cloud solutions, and other useful templates

To use the Template Gallery:

  1. Click the "Template Gallery" button at the top of the main page
  2. Browse or search for templates that match your needs
  3. Click "Use Template" to add all containers from that template to your selection
  4. Return to the main page to customize your selected containers

You can combine multiple templates to create your perfect self-hosted environment!

🖼️ Screenshots

User Interface

UI Screenshot

Generated docker compose file

Generated docker-compose file

🤝 Contributing

We welcome contributions to DCM! Whether you want to add new container definitions, improve documentation, or fix bugs, your help is appreciated.

Please check our CONTRIBUTING.md guide for detailed instructions on:

  • How to add new container definitions
  • Code style guidelines
  • Testing requirements
  • Pull request process

The easiest way to contribute is by adding new container definitions to our growing collection!

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

💖 Support

If you find this tool useful, consider supporting the project by:

  • ⭐ Starring the repository on GitHub
  • 🐦 Sharing it on social media
  • Buying me a coffee

📞 Contact


Made with ❤️ by ajnart

관련 저장소
louislam/uptime-kuma

A fancy self-hosted monitoring tool

JavaScriptnpmMIT Licenseuptimemonitoring
uptime.kuma.pet
89.4k8.1k
Stirling-Tools/Stirling-PDF

#1 PDF Application on GitHub that lets you edit PDFs on any device anywhere

JavaMavenOtherdockerjava
stirling.com
87.7k7.8k
macrozheng/mall

mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于Spring Boot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。

JavaMavenApache License 2.0spring-bootspring-security
macrozheng.com/admin/
84.3k29.8k
bregman-arie/devops-exercises

Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP, DNS, Elastic, Network, Virtualization. DevOps Interview Questions

PythonPyPIOtherdevopsaws
83.3k19.8k
netdata/netdata

The fastest path to AI-powered full stack observability, even for lean teams.

GoGo ModulesGNU General Public License v3.0monitoringdocker
netdata.cloud
79.8k6.5k
moby/moby

The Moby Project - a collaborative project for the container ecosystem to assemble container-based systems

GoGo ModulesApache License 2.0dockercontainers
mobyproject.org
71.9k19k
traefik/traefik

The Cloud Native Application Proxy

GoGo ModulesMIT Licensemicroservicedocker
traefik.io
64.1k6.1k
dani-garcia/vaultwarden

Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden_rs

Rustcrates.ioGNU Affero General Public License v3.0vaultwardenbitwarden
64k3k
usememos/memos

Open-source, self-hosted note-taking tool built for quick capture. Markdown-native, lightweight, and fully yours.

GoGo ModulesMIT Licensereactgo
usememos.com
61.7k4.6k
sansan0/TrendRadar

⭐AI-driven public opinion & trend monitor with multi-platform aggregation, RSS, and smart alerts.🎯 告别信息过载,你的 AI 舆情监控助手与热点筛选工具!聚合多平台热点 + RSS 订阅,支持关键词精准筛选。AI 智能筛选新闻 + AI 翻译 + AI 分析简报直推手机,也支持接入 MCP 架构,赋能 AI 自然语言对话分析、情感洞察与趋势预测等。支持 Docker ,数据本地/云端自持。集成微信/飞书/钉钉/Telegram/邮件/ntfy/bark/slack 等渠道智能推送。

PythonPyPIGNU General Public License v3.0data-analysispython
trendradar.sandev.cc
60.8k24.8k
coollabsio/coolify

An open-source, self-hostable PaaS alternative to Vercel, Heroku & Netlify that lets you easily deploy static sites, databases, full-stack applications and 280+ one-click services on your own servers.

PHPPackagistApache License 2.0nodejsmysql
coolify.io
59.2k5.1k
appwrite/appwrite

Appwrite® - complete cloud infrastructure for your web, mobile and AI apps. Including Auth, Databases, Storage, Functions, Messaging, Hosting, Realtime and more

TypeScriptnpmBSD 3-Clause "New" or "Revised" Licenseappwritedocker
appwrite.io
56.6k5.6k