All apps Β· 0 apps
Compose-Craft
OfficialDocker app from Undead Reaper's Repository
Overview
Readme
View on GitHubCompose Craft
Compose Craft is a modern, open-source tool to help you manage, edit and share docker compose files in an intuitive GUI way.

π Features
- Visual Docker Compose Editor: Create and edit docker compose files with an intuitive drag-and-drop interface
- Real-time Diagram Visualization: See your services as interconnected nodes with automatic layout
- One-Click Sharing: Generate public links to share your docker compose diagrams with anyone
- Import/Export: Import existing docker-compose.yml files and export your creations
- GitHub Integration: Connect your GitHub repositories for seamless workflow
- Multi-Service Management: Handle complex multi-service applications with ease
- Environment Variables & Volumes: Visual management of env vars, volumes, networks, and ports
- Responsive Design: Works seamlessly on desktop and mobile devices
π Documentation
Complete documentation is available at https://composecraft.com/docs/
π οΈ Quick Start
Online Version
Use the hosted version at composecraft.com - no installation required!
Self-Hosted Deployment
Using Docker Compose (Recommended)
# Clone the repository
git clone https://github.com/composecraft/composecraft.git
cd composecraft/webapp
# Start with Docker Compose
docker compose up -d
The application will be available at http://localhost:3000
Manual Installation
# Clone the repository
git clone https://github.com/composecraft/composecraft.git
cd composecraft/webapp
# Install dependencies
pnpm install
# Start development server
pnpm run dev
ποΈ Architecture
Compose Craft is built with modern technologies:
- Frontend: Next.js 15 with React 19
- UI Framework: Radix UI + Tailwind CSS
- Diagram Engine: React Flow with Dagre layout
- State Management: Zustand
- Backend: Next.js API Routes
- Database: MongoDB with Mongoose
- Authentication: JWT with bcrypt
- Code Editor: Monaco Editor (VS Code's editor)
- Styling: Tailwind CSS with custom animations
Key Dependencies
@xyflow/react: Node-based diagram visualization@composecraft/docker-compose-lib: Core docker compose parsing library@radix-ui/react-*: Accessible UI componentszod: Schema validationreact-hook-form: Form managementposthog-js: Analytics (optional)
βοΈ Configuration
Environment Variables
Create a .env.local file with the following variables:
# Required
SECRET_KEY=your-super-secret-jwt-key-here
MONGODB_URI=mongodb://localhost:27017/composecraft
URL=http://localhost:3000
# Optional
CORE_ONLY=false # Disable SaaS features for simple self-host
DISABLE_TELEMETRY=false # Disable PostHog analytics
NEXT_PUBLIC_POSTHOG_KEY=your-key # PostHog project key for telemetry
Docker Configuration
For production deployments, use the provided docker-compose.yml:
services:
compose-craft:
image: composecraft/composecraft:latest
ports:
- "3000:3000"
environment:
- SECRET_KEY=your-secret-key
- MONGODB_URI=mongodb://mongo:27017/composecraft
- URL=https://your-domain.com
depends_on:
- mongo
mongo:
image: mongo:latest
environment:
- MONGO_INITDB_ROOT_USERNAME=admin
- MONGO_INITDB_ROOT_PASSWORD=password
π€ Contributing
We welcome contributions! Please see our Contributing Guide for details.
Development Setup
- Fork and clone the repository
- Install dependencies:
pnpm install - Set up environment variables (see Configuration section)
- Start development server:
pnpm run dev - Run tests:
pnpm test - Lint code:
pnpm lint
Development Workflow
- Create a feature branch from
main - Make your changes
- Ensure tests pass and code is formatted
- Create a pull request with a clear description
π Project Structure
webapp/
βββ app/ # Next.js app directory
β βββ dashboard/ # Main application dashboard
β βββ playground/ # Docker compose editor
β βββ api/ # API routes
β βββ components/ # App-specific components
βββ components/ # Shared UI components
β βββ playground/ # Editor-specific components
β βββ display/ # Data display components
β βββ ui/ # Reusable UI components
βββ lib/ # Core libraries and utilities
βββ store/ # Zustand state management
βββ types/ # TypeScript type definitions
βββ assets/ # Static assets and images
π Bug Reports
If you find a bug, please open an issue with:
- Clear and descriptive title
- Steps to reproduce the issue
- Expected vs actual behavior
- Screenshots if applicable
- Your environment details
π‘ Feature Requests
We'd love to hear your ideas! Please:
- Check existing issues to avoid duplicates
- Create a new issue with a clear description
- Explain why this feature would be useful
- Include mockups or examples if possible
π Roadmap
See our Roadmap for planned features and improvements.
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Acknowledgments
- React Flow for the excellent diagram library
- Radix UI for accessible components
- Next.js for the fantastic framework
- All our contributors and community members!
π€ Community
- Discord: Join our Discord server
- GitHub Discussions: For questions and community discussions
- Issues: For bug reports and feature requests
π Support
For support:
- Check our Documentation
- Search existing Issues
- Join our Discord community
- Open a new GitHub Issue
Made with β€οΈ by the Compose Craft community
Install Compose-Craft on Unraid in a few clicks.
Find Compose-Craft in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allDetails
composecraft/composecraftRuntime arguments
- Web UI
http://[IP]:[PORT:3000]- Network
bridge- Shell
sh- Privileged
- false
Template configuration
The key used to sign JWT tokens
- Value
- ?xml version="1.0"? Container version="2" NameCompose-Craft/Name Repositorycomposecraft/composecraft/Repository Registryhttps://hub.docker.com/r/composecraft/composecraft/Registry Networkbridge/Network MyIP/ Shellsh/Shell Privilegedfalse/Privileged Support/ Projecthttps://github.com/composecraft/composecraft/Project Overview/ CategoryProductivity: Tools:/Category WebUIhttp://[IP]:[PORT:3000]/WebUI TemplateURL/ Iconhttps://github.com/composecraft/composecraft/blob/main/assets/logo.png/Icon ExtraParams/ PostArgs/ CPUset/ DateInstalled1736328499/DateInstalled DonateText/ DonateLink/ Requires/ Config Name="SECRET_KEY" Target="SECRET_KEY" Default="" Mode="" Description="The key used to sign JWT tokens" Type="Variable" Display="always" Required="true" Mask="true"/ Config Name="MONGODB_URI" Target="MONGODB_URI" Default="" Mode="" Description="Used to connect to mongodb" Type="Variable" Display="always" Required="true" Mask="false"/ Config Name="URL" Target="URL" Default="" Mode="" Description="The base url used for some redirect and public link generation" Type="Variable" Display="always" Required="true" Mask="false"/ Config Name="CORE_ONLY" Target="CORE_ONLY" Default="true" Mode="" Description="Disable SaaS hosted features (to allow simple self-host)" Type="Variable" Display="always" Required="false" Mask="false"true/Config Config Name="DISABLE_TELEMETRY" Target="DISABLE_TELEMETRY" Default="true" Mode="" Description="Disable telemetry" Type="Variable" Display="always" Required="false" Mask="false"true/Config TailscaleStateDir/ /Container
Used to connect to mongodb
- Value
- MongoDB:27017
The base url used for some redirect and public link generation
Disable SaaS hosted features (to allow simple self-host)
- Default
- true
- Value
- true
Disable telemetry
- Default
- true
- Value
- true
- Target
- 3000
- Value
- 3600