{"id":43257911,"url":"https://github.com/rabenherz112/compose-manager","last_synced_at":"2026-02-01T14:00:44.808Z","repository":{"id":292499948,"uuid":"973739151","full_name":"Rabenherz112/compose-manager","owner":"Rabenherz112","description":"Generate and manage Docker Compose YAML files with interactive prompts","archived":false,"fork":false,"pushed_at":"2025-05-10T10:28:30.000Z","size":172,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-10T11:27:54.862Z","etag":null,"topics":["docker","docker-cli","docker-compose","docker-compose-cli","docker-compose-generator","docker-file-generator","generator","generator-cli","tool"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Rabenherz112.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-27T16:29:42.000Z","updated_at":"2025-05-10T10:28:34.000Z","dependencies_parsed_at":"2025-05-10T11:38:00.213Z","dependency_job_id":null,"html_url":"https://github.com/Rabenherz112/compose-manager","commit_stats":null,"previous_names":["rabenherz112/compose-manager"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Rabenherz112/compose-manager","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rabenherz112%2Fcompose-manager","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rabenherz112%2Fcompose-manager/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rabenherz112%2Fcompose-manager/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rabenherz112%2Fcompose-manager/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Rabenherz112","download_url":"https://codeload.github.com/Rabenherz112/compose-manager/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Rabenherz112%2Fcompose-manager/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28980159,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T13:38:33.235Z","status":"ssl_error","status_checked_at":"2026-02-01T13:38:32.912Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-cli","docker-compose","docker-compose-cli","docker-compose-generator","docker-file-generator","generator","generator-cli","tool"],"created_at":"2026-02-01T14:00:24.484Z","updated_at":"2026-02-01T14:00:44.788Z","avatar_url":"https://github.com/Rabenherz112.png","language":"Python","readme":"# Compose Manager CLI\n\n\u003e Easy, interactive CLI tool to generate and manage docker compose YAML files with consistent ordering, rich console output, and inline documentation. Includes both a wizard-driven interface and a scriptable build mode.\n\n![](https://img.shields.io/github/stars/Rabenherz112/compose-manager?color=yellow\u0026style=plastic\u0026label=Stars) ![](https://img.shields.io/discord/728735370560143360?color=5460e6\u0026label=Discord\u0026style=plastic)\n\n## 🚀 Quick Start\n\n### 1. Clone and bootstrap\n\n```bash\ngit clone https://github.com/Rabenherz112/compose-manager.git\ncd compose-manager\nchmod +x setup_env.py compose_manager.py\npython3 setup_env.py\nsource .venv/bin/activate    # Windows: .\\.venv\\\\Scripts\\\\activate.bat\n```\n\nThis will create (if needed) a `./.venv` directory and install all required dependencies :\n\n- click (CLI framework)\n- ruamel.yaml (round-trip YAML editing)\n- rich (styled console output)\n- questionary (interactive prompts)\n- pyyaml (config file parsing)\n\n### 2. Launch the CLI\n\nWith your virtual environment activated:\n\n```bash\npython3 compose_manager.py\n```\n\nYou’ll see an interactive main menu:\n\n- Wizard: 🆕 Add or modify services step-by-step\n- Script: 🛠️ Build a compose file via command-line options\n- Settings: ⚙️ Configure default paths and resource presets\n- List: 📄 View services in an existing compose file\n- Exit: ❌ Quit the application\n\n## 📸 Screenshots\n\nMain menu:\n![main menu](./assets/main-menu.png)\n\nSettings:\n\n![settings](./assets/settings-menu.png)\n\nSome of the interactive prompts:\n![interactive prompts](./assets/interactive-prompts.png)\n\nResulting YAML file:\n\n![resulting YAML](./assets/resulting-compose.png)\n![resulting YAML](./assets/resulting-compose2.png)\n\n## 📋 Usage Examples\n\n### 1. Wizard Mode\n\n```bash\npython3 compose_manager.py\n# → Select “🆕 Wizard”\n# → Enter application directory (e.g., \"my_app\")\n# → Follow prompts to define container_name, image, ports, volumes, networks, etc.\n```\n\n### 2. Script Mode\n\nGenerates my_app/compose.yml with a single web service configured accordingly.\n\n```bash\npython3 compose_manager.py build \\\n  --app my_app \\\n  --service web:nginx:latest \\\n  --port 80:80 \\\n  --env TZ=Europe/Berlin --env DEBUG=1 \\\n  --volume ./data:/data \\\n  --preset Small\n```\n\nDisplays a Rich table of all services, ports, networks, resource limits, and auto-update settings.\n\n```bash\npython3 compose_manager.py list my_app\n```\n\n## 💡 Why I created this\n\nI created this tool to simplify my personal workflow when working with docker compose. I often found myself copy pasting YAML snippets from the internet (especially when setting up new services) and then having to manually edit them to fit my needs. This often resulted in me forgetting to change things, or having to look up the same information over and over again. I wanted a tool that would allow me to quickly and easily generate docker compose files in the format I want.\n\nSince I thought this might be useful for others as well, I published it. However since this is my personal tool, I will likely neither expand it to support all use cases, nor will I maintain it in the long run. This was first and foremost a tool which I use for myself. If you find it useful, great! If not, feel free to either submit a PR or fork it and make it your own. I will not be offended if you do so. I just ask you to keep the license in mind.\n\n## 📜 License\n\nThis project is licensed under the GNU AGPL v3.0. See the [LICENSE](./LICENSE) file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabenherz112%2Fcompose-manager","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frabenherz112%2Fcompose-manager","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabenherz112%2Fcompose-manager/lists"}