Skip to content

bitalchemy-io/compose-wizard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

🐳 compose-wizard

Generate Docker Compose configurations in the browser — no prior knowledge needed.

Select services · Configure ports & paths · Download a ready-to-use docker-compose.yml

Live Demo License No Backend


🎯 What is this?

Anyone running self-hosted services knows the problem: for every new service you have to dig through documentation, find the right Docker image, expose ports, configure volumes and set environment variables — before a single line of YAML exists.

compose-wizard solves exactly that. Just click the services you want, adjust ports and paths, and download the finished docker-compose.yml. No installation, no build system, no backend — a single HTML file.


✨ Features

28 pre-configured services Immich, Nextcloud, WireGuard, Jellyfin, Vaultwarden and many more
Dependencies auto-included Nextcloud needs MariaDB? Added automatically
Live YAML preview Syntax highlighting directly in the browser
One-click download Finished docker-compose.yml ready to deploy
No backend required A single HTML file — open locally or host on GitHub Pages
Fully configurable Ports, file paths, passwords — everything adjustable

📦 Included Services

📸 Photos & Files — Immich, Nextcloud, PhotoPrism, Filebrowser, Syncthing
Service Description
Immich Self-hosted Google Photos alternative with AI recognition
Nextcloud File sync, calendar, contacts & collaboration
PhotoPrism AI-powered photo management with automatic tagging
Filebrowser Web-based file manager
Syncthing P2P file synchronization without a central server
🌐 Networking — WireGuard, Traefik, Nginx Proxy Manager, Tailscale, AdGuard Home, Pi-hole
Service Description
WireGuard (wg-easy) VPN server with a clean web UI
Traefik Modern reverse proxy with automatic SSL via Let's Encrypt
Nginx Proxy Manager Reverse proxy with web UI and SSL management
Tailscale Zero-config mesh VPN
AdGuard Home DNS-based ad & tracker blocker for your entire network
Pi-hole Classic DNS-based ad blocker
📡 Monitoring — Uptime Kuma, Portainer, Grafana+Prometheus, Dozzle, Netdata, Watchtower
Service Description
Uptime Kuma Self-hosted monitoring & alerting
Portainer Docker container management UI
Grafana + Prometheus Metrics collection & visualization
Dozzle Real-time Docker log viewer
Netdata Real-time system performance monitoring
Watchtower Automatic Docker image updates
🎬 Media — Jellyfin, Plex, Navidrome, Kavita
Service Description
Jellyfin Open-source media server for movies, TV & music
Plex Personal media server & streaming
Navidrome Music streaming server (Subsonic-compatible)
Kavita E-book & comic reader
🛠️ Tools — Gitea, Vaultwarden, Stirling PDF, Linkwarden, Mealie, IT Tools, Homer
Service Description
Gitea Self-hosted Git server
Vaultwarden Bitwarden-compatible password manager
Stirling PDF All-in-one PDF tools in the browser
Linkwarden Bookmark & archive manager
Mealie Recipe manager & meal planner
IT Tools Developer toolbox (Base64, JWT, hashing …)
Homer Start page for all your self-hosted services

🚀 Getting Started

Option 1 — Open directly in the browser

# Clone the repository
git clone https://github.com/your-name/compose-wizard
cd compose-wizard

# Open index.html in your browser
open index.html         # macOS
xdg-open index.html     # Linux

Option 2 — Local dev server

python3 -m http.server 8080
# → http://localhost:8080

Option 3 — GitHub Pages (recommended)

git init
git add index.html README.md
git commit -m "initial commit"
git remote add origin https://github.com/bitalchemy-io/compose-wizard
git push -u origin main

Then in GitHub: Settings → Pages → Branch: main → Save

The app will be available at https://bitalchemy-io.github.io/compose-wizard — free, no server needed.


🔧 Adding a Custom Service

Add a new entry to the SERVICES object in index.html:

my_service: {
  name: 'My Service',          // Display name
  icon: '🚀',                  // Emoji icon
  cat: 'Tools',                // Category
  desc: 'Short description',
  tag: 'image:tag',            // Docker image
  deps: [],
  fields: [
    {
      key: 'port',
      label: 'Port',
      default: '8080',
      hint: 'Optional hint shown below the input'
    },
  ],
  yaml: (c) => `
  my-service:
    image: my-image:tag
    container_name: my_service
    restart: unless-stopped
    ports:
      - "${c.port}:8080"`.trim(),
  volumes: (c) => [],   // Named volumes declared at the bottom of the file
},

🗺️ Roadmap

  • Filter services by category
  • Generate a .env file alongside the YAML
  • Configurable Docker networks
  • Import an existing docker-compose.yml for editing
  • More services (Authentik, Bookstack, Immich Albums …)

🤝 Contributing

Pull requests are welcome! Especially looking for: new services, bug fixes, and improvements to existing YAML templates.

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/new-service
  3. Commit your changes: git commit -m 'feat: add Authentik'
  4. Push the branch: git push origin feature/new-service
  5. Open a Pull Request

📄 License

MIT — free to use, fork, and extend.


Made with ❤️ for the self-hosting community

About

Point-and-click Docker Compose generator for self-hosters. 28 services included.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages