{"id":31577445,"url":"https://github.com/lorikarikari/compak","last_synced_at":"2026-05-11T07:20:30.539Z","repository":{"id":317214085,"uuid":"1065723788","full_name":"LoriKarikari/compak","owner":"LoriKarikari","description":"A package manager for Docker Compose applications","archived":false,"fork":false,"pushed_at":"2025-09-29T14:33:21.000Z","size":51,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-29T16:27:44.939Z","etag":null,"topics":["containers","docker","docker-compose","oci","podman","podman-compose"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LoriKarikari.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-28T09:57:30.000Z","updated_at":"2025-09-29T15:06:44.000Z","dependencies_parsed_at":"2025-09-29T16:27:50.062Z","dependency_job_id":null,"html_url":"https://github.com/LoriKarikari/compak","commit_stats":null,"previous_names":["lorikarikari/compak"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/LoriKarikari/compak","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LoriKarikari%2Fcompak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LoriKarikari%2Fcompak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LoriKarikari%2Fcompak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LoriKarikari%2Fcompak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LoriKarikari","download_url":"https://codeload.github.com/LoriKarikari/compak/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LoriKarikari%2Fcompak/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278496252,"owners_count":25996778,"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","status":"online","status_checked_at":"2025-10-05T02:00:06.059Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["containers","docker","docker-compose","oci","podman","podman-compose"],"created_at":"2025-10-05T18:24:09.892Z","updated_at":"2025-10-05T18:24:11.879Z","avatar_url":"https://github.com/LoriKarikari.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003ecompak 🎒\u003c/h1\u003e\n\n  \u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/LoriKarikari/compak/actions/workflows/ci.yml\"\u003e\n      \u003cimg src=\"https://github.com/LoriKarikari/compak/actions/workflows/ci.yml/badge.svg\" alt=\"CI\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/LoriKarikari/compak/releases\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/v/release/LoriKarikari/compak\" alt=\"Release\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/LoriKarikari/compak/blob/main/LICENSE\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/license/LoriKarikari/compak\" alt=\"License\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://goreportcard.com/report/github.com/LoriKarikari/compak\"\u003e\n      \u003cimg src=\"https://goreportcard.com/badge/github.com/LoriKarikari/compak\" alt=\"Go Report Card\"\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\n  \u003cp align=\"center\"\u003e\n    A package manager for Docker Compose applications\n    \u003c!-- \u003cbr /\u003e\n    \u003ca href=\"https://github.com/LoriKarikari/compak\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e --\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/LoriKarikari/compak/issues/new?labels=bug\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/LoriKarikari/compak/issues/new?labels=enhancement\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\n## About The Project\n\nCompak allows you to install, manage, and distribute multi-container applications using Compose.\n\nInspired by Docker App ([deprecated in 2021](https://github.com/docker/roadmap/issues/209)), compak fills the gap for standardized distribution of Compose applications without the complexity of full orchestration platforms.\n\n\n## Getting Started\n\n### Prerequisites\n\n* Docker Compose v2, docker-compose, or podman-compose\n* Linux, macOS, or Windows\n\n### Installation\n\n1. Clone the repo\n   ```bash\n   git clone https://github.com/LoriKarikari/compak\n   ```\n2. Build the project\n   ```bash\n   cd compak\n   make build\n   ```\n3. The binary will be available in `bin/compak`\n\n## Usage\n\n### Install a package from the index\n\n```bash\ncompak install [package]\n```\n\n### Install from OCI registry\n\n```bash\ncompak install ghcr.io/user/package:version\n```\n\n### Install with custom parameters\n\n```bash\ncompak install [package] --set PORT=9090 --set DB_PASSWORD=secure\n```\n\n### Install from local directory\n\n```bash\ncompak install mypackage --path ./my-package-dir\n```\n\n### List installed packages\n\n```bash\ncompak list\n```\n\n### Check package status\n\n```bash\ncompak status mypackage\n```\n\n### Uninstall a package\n\n```bash\ncompak uninstall mypackage\n```\n\n### Search for packages\n\n```bash\ncompak search [package]\n```\n\n### Update package index\n\n```bash\ncompak update\n```\n\n## Package Format\n\nCompak packages are defined in the package index (`paks/`) and reference upstream Compose files via URL.\n\nExample package definition (`paks/myapp.yaml`):\n```yaml\nname: myapp\nversion: 1.0.0\ndescription: Example application\nauthor: maintainer-name\nhomepage: https://example.com\nrepository: https://github.com/example/myapp\nsource: https://raw.githubusercontent.com/example/myapp/main/docker-compose.yml\n\nparameters:\n  PORT:\n    type: integer\n    default: \"8080\"\n    description: Port to expose application on\n  DB_PASSWORD:\n    type: string\n    required: true\n    description: Database password\n```\n\nWhen installed, compak downloads the compose file from the `source` URL and applies the configured parameters.\n\n## Environment Variables\n\nCompak supports the following environment variables for configuration:\n\n* `COMPAK_INDEX_REPO` - Override the default package index repository (default: `https://github.com/LoriKarikari/compak.git`)\n* `COMPAK_INDEX_PATH` - Override the package index subdirectory path (default: `paks`)\n* `GITHUB_TOKEN` - GitHub personal access token for authenticating with GitHub Container Registry\n\n### Testing with Local Package Index\n\nFor testing or development, you can point compak to a custom package index:\n\n```bash\n# Use test fixtures\nCOMPAK_INDEX_PATH=test/fixtures/paks compak search demo\n\n# Use a different repository\nCOMPAK_INDEX_REPO=https://github.com/myorg/myindex.git compak update\n```\n\n## Contributing\n\n### Test Fixtures\n\nCompak includes test package fixtures in `test/fixtures/paks/` for testing the package index functionality. These demo packages follow the same pattern as Homebrew's test fixtures:\n\n* `demo-wordpress.yaml` - Example WordPress setup\n* `demo-nextcloud.yaml` - Example Nextcloud setup\n\nTo test with fixtures:\n\n```bash\nCOMPAK_INDEX_PATH=test/fixtures/paks compak search demo\n```\n\nThese fixtures are clearly labeled as demo packages and are not meant for production use.\n\n## Acknowledgments\n\n* [Docker App retrospective](https://github.com/docker/roadmap/issues/209) - Motivation for the project\n* [OCI Artifacts specification](https://github.com/opencontainers/artifacts) - Foundation for package storage\n* [oras-project](https://github.com/oras-project/oras-go) - OCI registry client library\n* [Porter](https://github.com/getporter/porter) - Demonstrated patterns for package management\n* [Homebrew](https://brew.sh) - Inspiration for package index and distribution model","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Florikarikari%2Fcompak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Florikarikari%2Fcompak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Florikarikari%2Fcompak/lists"}