{"id":22305006,"url":"https://github.com/veerendra2/kompozit","last_synced_at":"2025-10-31T07:34:33.489Z","repository":{"id":265782393,"uuid":"891758621","full_name":"veerendra2/kompozit","owner":"veerendra2","description":"Customizing Docker Compose Made Easy 🚀 (Kustomize for Docker Compose)","archived":false,"fork":false,"pushed_at":"2024-12-24T17:58:13.000Z","size":25,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-24T20:18:07.092Z","etag":null,"topics":["configuration-management","docker-compose","json-patch","kustomize","yaml"],"latest_commit_sha":null,"homepage":"https://veerendra2.gitbook.io/kompozit","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/veerendra2.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}},"created_at":"2024-11-20T22:46:43.000Z","updated_at":"2024-12-24T17:57:13.000Z","dependencies_parsed_at":"2024-12-24T16:30:39.701Z","dependency_job_id":"f28d8629-be84-4775-9b63-8ffe48271ec3","html_url":"https://github.com/veerendra2/kompozit","commit_stats":null,"previous_names":["veerendra2/kompozit"],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/veerendra2/kompozit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veerendra2%2Fkompozit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veerendra2%2Fkompozit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veerendra2%2Fkompozit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veerendra2%2Fkompozit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/veerendra2","download_url":"https://codeload.github.com/veerendra2/kompozit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/veerendra2%2Fkompozit/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261806990,"owners_count":23212649,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["configuration-management","docker-compose","json-patch","kustomize","yaml"],"created_at":"2024-12-03T19:09:21.599Z","updated_at":"2025-10-31T07:34:28.460Z","avatar_url":"https://github.com/veerendra2.png","language":"Python","readme":"# Kompozit\n\n[![Docker Pulls](https://img.shields.io/docker/pulls/veerendra2/kompozit)](https://hub.docker.com/r/veerendra2/kompozit) [![PyPI - Status](https://img.shields.io/pypi/status/kompozit)](https://pypi.org/project/kompozit/) [![PyPI - Version](https://img.shields.io/pypi/v/kompozit)](https://pypi.org/project/kompozit/) [![PyPI - Downloads](https://img.shields.io/pypi/dm/kompozit)](https://pypi.org/project/kompozit/) [![Release](https://github.com/veerendra2/kompozit/actions/workflows/release.yml/badge.svg)](https://github.com/veerendra2/kompozit/actions/workflows/release.yml)\n\n\u003e ℹ Mostly likely you may want to use [Use multiple Compose files](https://docs.docker.com/compose/how-tos/multiple-compose-files/) in Docker Compose itself.\n\nDeclarative Configuration Management Tool for Docker Compose.\n\n_Like [`kustomize.io`](https://kustomize.io/), but for [Docker Compose](https://docs.docker.com/compose/)._\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"kompozit logo\", width=\"150\" src=\"https://i.postimg.cc/cH1dYN6f/komposeit.png\"\u003e\n\u003c/p\u003e\n\n## Features\n\nKompozit simplifies complex Docker Compose setups using declarative overlays, supporting:\n\n- **[`patchesJSON6902`](https://datatracker.ietf.org/doc/html/rfc6902)**: Precise modifications with JSON Merge Patch.\n- **[`patchesStrategicMerge`](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-api-machinery/strategic-merge-patch.md)**: Flexible hierarchical changes with Strategic Merge Patch.\n\n## Resources\n\n- 📖 [Documentation](https://veerendra2.gitbook.io/kompozit)\n- 🛠️ [Examples](https://github.com/veerendra2/kompozit/tree/main/examples)\n\n## But Why...? 🤔\n\nThere are scenarios where you might need different Docker Compose configurations for the same application on different machines.\n\n- For example, I use slightly different configurations for the Traefik reverse proxy when managing my public WordPress site versus my home server. Instead of maintaining multiple, slightly different `docker-compose.yml` files for the same app, you can use kompozit to simplify and manage these variations efficiently.\n\nAdditionally, kompozit allows you to combine multiple `docker-compose.yml` files into a single stack.\n\n- For instance, you can keep a generic `docker-compose.yml` for PostgreSQL in a central location and customize it for different stacks in other locations as needed.\n\n## Installation 💻\n\n### PyPi\n\n\u003e [https://pypi.org/project/kompozit/](https://pypi.org/project/kompozit/)\n\n```bash\npython -m pip install kompozit\n\nkompozit -h\nusage: kompozit [-h] [-b BUILD_PATH] [-o OUTPUT_DIR] [-v]\n\nDeclarative Configuration Management Tool for Docker Compose.\n\noptions:\n  -h, --help            show this help message and exit\n  -b, --build BUILD_PATH\n                        Path to a directory containing 'kompozition.yaml' or 'kompozition.yml'. (default: .)\n  -o, --output-dir OUTPUT_DIR\n                        Directory to save the generated Docker Compose files. (default: None)\n  -v, --version         Show kompozit version\n```\n\n### Docker\n\n\u003e [https://hub.docker.com/r/veerendra2/kompozit](https://hub.docker.com/r/veerendra2/kompozit)\n\n```bash\ndocker pull veerendra2/kompozit\n```\n\n## Usage Examples ⚙️\n\n```bash\ngit clone git@github.com:veerendra2/kompozit.git\ncd kompozit\npython -m pip install .\n\nkompozit --build ./examples/overlay\n...\n\n# inside docker\ndocker pull kompozit:latest\ndocker run -it --rm -v ./examples:/examples kompozit:latest -b /examples/overlay\n```\n\n## Local Development 🔧\n\n```bash\ngit clone git@github.com:veerendra2/kompozit.git\ncd kompozit\n\npython -m venv venv\nsource venv/bin/activate\npip install -e .\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveerendra2%2Fkompozit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fveerendra2%2Fkompozit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fveerendra2%2Fkompozit/lists"}