{"id":44737910,"url":"https://github.com/migetapp/migetpacks","last_synced_at":"2026-02-15T20:10:31.497Z","repository":{"id":334622361,"uuid":"1142350556","full_name":"migetapp/migetpacks","owner":"migetapp","description":"Zero-config container builds for 14 languages. Auto-detects Node.js, Python, Go, Ruby, Rust, Java, PHP, .NET, Elixir, Kotlin, Scala, Clojure, Deno, Bun. No Dockerfile required.","archived":false,"fork":false,"pushed_at":"2026-02-09T23:06:24.000Z","size":643,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-02-09T23:49:11.700Z","etag":null,"topics":["buildpacks","cloud-native","container","devops","docker","dockerfile","golang","java","kubernetes","nodejs","paketo-alternative","python","ruby","rust"],"latest_commit_sha":null,"homepage":"https://miget.com/packs","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/migetapp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.mdx","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":"2026-01-26T09:44:13.000Z","updated_at":"2026-02-03T22:45:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/migetapp/migetpacks","commit_stats":null,"previous_names":["migetapp/migetpacks"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/migetapp/migetpacks","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migetapp%2Fmigetpacks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migetapp%2Fmigetpacks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migetapp%2Fmigetpacks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migetapp%2Fmigetpacks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/migetapp","download_url":"https://codeload.github.com/migetapp/migetpacks/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/migetapp%2Fmigetpacks/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29487915,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-15T19:29:10.908Z","status":"ssl_error","status_checked_at":"2026-02-15T19:29:10.419Z","response_time":118,"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":["buildpacks","cloud-native","container","devops","docker","dockerfile","golang","java","kubernetes","nodejs","paketo-alternative","python","ruby","rust"],"created_at":"2026-02-15T20:10:30.884Z","updated_at":"2026-02-15T20:10:31.490Z","avatar_url":"https://github.com/migetapp.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# migetpacks\n\n**Auto-detecting buildpacks for container images** - automatically detects your language, version, and builds optimized container images using official upstream Docker images.\n\nBuilt by [miget.com](https://miget.com) - Unlimited apps, one price.\n\n[![License](https://img.shields.io/badge/license-O'Saasy-blue.svg)](https://github.com/migetapp/migetpacks/blob/main/LICENSE)\n[![Docker Image](https://img.shields.io/badge/docker-miget%2Fmigetpacks-blue)](https://hub.docker.com/r/miget/migetpacks)\n\n## Features\n\n- **Zero Config** - Automatically detects language, version, and builds your app\n- **14 Languages** - Node.js, Deno, Bun, Python, Ruby, Go, Rust, Java, Kotlin, Scala, Clojure, .NET, PHP, Elixir\n- **Secure by Default** - Optional [Docker Hardened Images](https://dhi.io) (distroless, CVE-free)\n- **Multi-Buildpack** - Combine languages (e.g., Ruby + Node.js for asset compilation)\n- **Procfile Support** - Standard process definitions\n- **Non-root Runtime** - All containers run as non-root user\n- **Fast Builds** - BuildKit layer caching and registry-based caching\n\n## Requirements\n\n- **Docker Desktop** (macOS/Windows) or **Docker Engine** (Linux)\n- **BuildKit enabled** (default in Docker Desktop 4.0+)\n\nmigetpacks runs Docker-in-Docker using BuildKit for optimized multi-stage builds. It requires access to the Docker socket (`/var/run/docker.sock`).\n\n```bash\n# Verify Docker is running\ndocker info\n\n# Verify BuildKit is available\ndocker buildx version\n```\n\n## Quick Start\n\n### Docker\n\n```bash\n# Build your app\ndocker run --rm \\\n  -v /path/to/your/app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=my-app:latest \\\n  miget/migetpacks:latest\n\n# Run your app\ndocker run -p 5000:5000 my-app:latest\n```\n\n### GitHub Actions (GitHub-hosted runners)\n\nFor ephemeral `ubuntu-latest` runners, use registry-based caching via `CACHE_IMAGE`:\n\n```yaml\nname: Build and Push\n\non:\n  push:\n    branches: [main]\n\njobs:\n  build:\n    runs-on: ubuntu-latest\n    permissions:\n      contents: read\n      packages: write\n\n    steps:\n      - uses: actions/checkout@v4\n\n      - name: Log in to GitHub Container Registry\n        uses: docker/login-action@v3\n        with:\n          registry: ghcr.io\n          username: ${{ github.actor }}\n          password: ${{ secrets.GITHUB_TOKEN }}\n\n      # Required for CACHE_IMAGE support\n      - name: Set up Docker Buildx\n        uses: docker/setup-buildx-action@v3\n\n      - name: Build and push with migetpacks\n        run: |\n          docker run --rm \\\n            -v ${{ github.workspace }}:/workspace/source:ro \\\n            -v /var/run/docker.sock:/var/run/docker.sock \\\n            -v /home/runner/.docker/config.json:/root/.docker/config.json:ro \\\n            -e OUTPUT_IMAGE=ghcr.io/${{ github.repository }}:${{ github.sha }} \\\n            -e CACHE_IMAGE=ghcr.io/${{ github.repository }}:cache \\\n            miget/migetpacks:latest\n```\n\n### GitHub Actions (Self-hosted runners)\n\nFor persistent self-hosted runners, use local file cache via `BUILD_CACHE_DIR`:\n\n```yaml\nname: Build and Push\n\non:\n  push:\n    branches: [main]\n\njobs:\n  build:\n    runs-on: self-hosted\n\n    steps:\n      - uses: actions/checkout@v4\n\n      - name: Log in to registry\n        uses: docker/login-action@v3\n        with:\n          registry: registry.example.com\n          username: ${{ secrets.REGISTRY_USERNAME }}\n          password: ${{ secrets.REGISTRY_PASSWORD }}\n\n      - name: Build and push with migetpacks\n        run: |\n          docker run --rm \\\n            -v ${{ github.workspace }}:/workspace/source:ro \\\n            -v /var/run/docker.sock:/var/run/docker.sock \\\n            -v $HOME/.docker/config.json:/root/.docker/config.json:ro \\\n            -v /var/cache/migetpacks:/cache \\\n            -e OUTPUT_IMAGE=registry.example.com/my-app:${{ github.sha }} \\\n            -e BUILD_CACHE_DIR=/cache \\\n            miget/migetpacks:latest\n```\n\n**Cache options:**\n- `CACHE_IMAGE` - Registry-based BuildKit layer cache. Requires `docker/setup-buildx-action`. Works on ephemeral runners.\n- `BUILD_CACHE_DIR` - Local directory for package manager caches (npm, pip, bundler, etc.). Best for persistent self-hosted runners.\n\n## Supported Languages\n\n| Language | Detection | Version Source |\n|----------|-----------|----------------|\n| Node.js | `package.json` | `.nvmrc`, `.node-version`, `package.json` |\n| Deno | `deno.json`, `deno.jsonc` | `deno.json` |\n| Bun | `bun.lockb`, `bunfig.toml` | `package.json` |\n| Python | `requirements.txt`, `Pipfile`, `pyproject.toml` | `.python-version`, `runtime.txt` |\n| Ruby | `Gemfile` | `.ruby-version`, `Gemfile` |\n| Go | `go.mod` | `go.mod` |\n| Rust | `Cargo.toml` | `Cargo.toml` |\n| PHP | `composer.json`, `index.php` | `composer.json` |\n| Java | `pom.xml`, `build.gradle` | `pom.xml`, `.java-version`, `system.properties` |\n| Kotlin | `build.gradle.kts` | `system.properties` |\n| Scala | `build.sbt` | `system.properties` |\n| Clojure | `project.clj`, `deps.edn` | `system.properties` |\n| .NET | `*.csproj`, `*.fsproj` | `global.json`, `*.csproj` |\n| Elixir | `mix.exs` | `mix.exs`, `.elixir-version` |\n| Dockerfile | `Dockerfile` | - |\n| Compose | `compose.yaml`, `docker-compose.yml` | - |\n\n## Environment Variables\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `OUTPUT_IMAGE` | **Yes** | - | Target image name (e.g., `ghcr.io/user/app:tag`) |\n| `SOURCE_DIR` | No | `/workspace/source` | Source code directory |\n| `LANGUAGE` | No | auto-detected | Force language (see values below) |\n| `RUN_COMMAND` | No | from Procfile | Override the run command |\n| `PORT` | No | `5000` | Application port |\n| `ARCH` | No | `x86_64` | Target architecture (`x86_64`, `arm64`) |\n| `PROJECT_PATH` | No | - | Subdirectory for monorepo builds |\n| `BUILDPACKS` | No | auto-detected | Explicit buildpack order (e.g., `ruby,nodejs`) |\n| `DOCKERFILE_PATH` | No | - | Custom Dockerfile path (forces `dockerfile` language) |\n| `COMPOSE_FILE` | No | - | Custom compose file path (forces `compose` language) |\n| `TAG_LATEST` | No | `false` | Also tag image with `:latest` in addition to primary tag |\n| `RESULT_FILE` | No | - | Path to write build results JSON |\n| `STORAGE_DRIVER` | No | `overlay2` | Docker storage driver (e.g., `fuse-overlayfs` for nested DinD) |\n\n### Caching Options\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `CACHE_IMAGE` | No | - | Registry image for BuildKit cache |\n| `CACHE_MODE` | No | `min` | BuildKit cache export mode: `min` (final layer) or `max` (all layers) |\n| `CACHE_FROM` | No | - | Additional read-only cache sources (comma-separated registry refs) |\n| `CACHE_REGISTRY_INSECURE` | No | `false` | Set to `true` for HTTP registries |\n| `NO_CACHE` | No | `false` | Force fresh build, skips cache-from |\n| `BUILD_CACHE_DIR` | No | - | Directory for package manager cache |\n| `REGISTRY_MIRROR` | No | - | Docker registry mirror URL |\n\n### Docker Hardened Images\n\n| Variable | Required | Default | Description |\n|----------|----------|---------|-------------|\n| `USE_DHI` | No | `false` | Use Docker Hardened Images from [dhi.io](https://dhi.io) |\n| `DHI_USERNAME` | No | - | DHI registry username (alternative to mounting docker config) |\n| `DHI_PASSWORD` | No | - | DHI registry password/token |\n| `DHI_MIRROR` | No | - | DHI registry mirror URL |\n\n### Custom Build Environment Variables\n\nAny environment variable passed to migetpacks that is **not** a known configuration variable will be automatically injected into the generated Dockerfile as `ENV` statements. This allows you to pass custom build-time settings without modifying migetpacks.\n\n```bash\n# Pass NODE_OPTIONS to increase heap size for large builds\ndocker run --rm \\\n  -v ./my-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=my-app:latest \\\n  -e NODE_OPTIONS=\"--max-old-space-size=4096\" \\\n  miget/migetpacks:latest\n\n# Pass multiple custom variables\ndocker run --rm \\\n  -v ./my-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=my-app:latest \\\n  -e NODE_OPTIONS=\"--max-old-space-size=4096\" \\\n  -e VITE_API_URL=\"https://api.example.com\" \\\n  -e MY_BUILD_FLAG=\"true\" \\\n  miget/migetpacks:latest\n```\n\n**Common use cases:**\n- `NODE_OPTIONS=\"--max-old-space-size=4096\"` - Increase Node.js heap for large builds\n- `VITE_*` / `NEXT_PUBLIC_*` - Frontend build-time variables\n- `RAILS_MASTER_KEY` - Rails credentials key for asset precompilation\n- Custom feature flags for conditional compilation\n\n**Note:** Sensitive variables like `AWS_*` credentials and Docker configuration are automatically filtered out and never injected into the Dockerfile.\n\n### LANGUAGE Values\n\nForce a specific language by setting `LANGUAGE`:\n\n| Value | Description |\n|-------|-------------|\n| `nodejs` | Node.js (npm, yarn, pnpm) |\n| `deno` | Deno runtime |\n| `bun` | Bun runtime |\n| `python` | Python (pip, uv) |\n| `ruby` | Ruby (bundler) |\n| `go` | Go |\n| `rust` | Rust (cargo) |\n| `php` | PHP (FrankenPHP + Composer) |\n| `java` | Java (Maven or Gradle) |\n| `kotlin` | Kotlin (Gradle) |\n| `scala` | Scala (sbt) |\n| `clojure` | Clojure (Leiningen) |\n| `.net` or `dotnet` | .NET / C# |\n| `elixir` | Elixir (Mix) |\n| `dockerfile` | Use project's Dockerfile directly |\n| `compose` | Build all services from compose.yaml |\n\n## Procfile Support\n\nDefine processes in a `Procfile`:\n\n```\nweb: bundle exec puma -C config/puma.rb\nworker: bundle exec sidekiq\nrelease: bundle exec rails db:migrate\n```\n\nPriority order:\n1. `RUN_COMMAND` environment variable\n2. `web:` process from Procfile\n3. First process in Procfile\n4. Language-specific default\n\n## Multi-Buildpack\n\nBuild apps with multiple languages:\n\n```bash\n# Ruby app with Node.js for asset compilation\ndocker run --rm \\\n  -v ./my-rails-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=my-rails-app:latest \\\n  -e BUILDPACKS=ruby,nodejs \\\n  miget/migetpacks:latest\n```\n\n## Docker Hardened Images\n\nUse minimal, CVE-free [Docker Hardened Images](https://dhi.io):\n\n```bash\ndocker run --rm \\\n  -v ./my-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=my-app:latest \\\n  -e USE_DHI=true \\\n  miget/migetpacks:latest\n```\n\nDHI images are distroless (no shell, no apt-get) with minimal attack surface.\n\n### Docker Desktop (Mac/Windows)\n\nDocker Desktop stores credentials in the system keychain, not in `~/.docker/config.json`. Extract credentials and pass them as environment variables:\n\n```bash\n# Extract credentials from Docker Desktop keychain\nDHI_USERNAME=$(echo \"dhi.io\" | docker-credential-desktop get | jq -r '.Username')\nDHI_PASSWORD=$(echo \"dhi.io\" | docker-credential-desktop get | jq -r '.Secret')\n\n# Build with DHI\ndocker run --rm \\\n  -v \"$(pwd):/workspace/source:ro\" \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=my-app:local \\\n  -e ARCH=arm64 \\\n  -e USE_DHI=true \\\n  -e DHI_USERNAME=\"$DHI_USERNAME\" \\\n  -e DHI_PASSWORD=\"$DHI_PASSWORD\" \\\n  miget/migetpacks:latest\n```\n\n## Dockerfile \u0026 Compose Support\n\n### Custom Dockerfile\n\nmigetpacks prioritizes its optimized builds for known languages. A `Dockerfile` is only used as a **fallback** when no supported language is detected. To force your Dockerfile, use `LANGUAGE=dockerfile`:\n\n```bash\n# Force Dockerfile mode (recommended when you have both language files and Dockerfile)\ndocker run --rm \\\n  -v ./my-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=my-app:latest \\\n  -e LANGUAGE=dockerfile \\\n  miget/migetpacks:latest\n\n# Fallback behavior (uses Dockerfile only if no language detected)\ndocker run --rm \\\n  -v ./my-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=my-app:latest \\\n  miget/migetpacks:latest\n\n# Use custom Dockerfile path\ndocker run --rm \\\n  -v ./my-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=my-app:latest \\\n  -e DOCKERFILE_PATH=docker/Dockerfile.prod \\\n  miget/migetpacks:latest\n```\n\n### Docker Compose\n\nMulti-service builds from `compose.yaml`:\n\n```yaml\n# compose.yaml\nservices:\n  api:\n    build: ./api\n  web:\n    build: ./web\n```\n\n```bash\n# Auto-detect compose file\ndocker run --rm \\\n  -v ./my-project:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=ghcr.io/user/myproject:latest \\\n  miget/migetpacks:latest\n# Builds: ghcr.io/user/myproject-api:latest, ghcr.io/user/myproject-web:latest\n\n# Force compose mode\ndocker run --rm \\\n  -v ./my-project:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=ghcr.io/user/myproject:latest \\\n  -e LANGUAGE=compose \\\n  miget/migetpacks:latest\n```\n\n## Monorepo Support\n\nBuild a specific subdirectory:\n\n```bash\ndocker run --rm \\\n  -v ./monorepo:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e PROJECT_PATH=services/api \\\n  -e OUTPUT_IMAGE=my-api:latest \\\n  miget/migetpacks:latest\n```\n\n## Build Caching\n\n### Package Manager Cache\n\nMount a cache directory for npm, pip, bundler, cargo, etc.:\n\n```bash\ndocker run --rm \\\n  -v ./my-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -v /path/to/cache:/cache \\\n  -e OUTPUT_IMAGE=my-app:latest \\\n  -e BUILD_CACHE_DIR=/cache \\\n  miget/migetpacks:latest\n```\n\n### Registry Cache\n\nUse BuildKit's registry-based caching for Docker layer caching:\n\n```bash\ndocker run --rm \\\n  -v ./my-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -e OUTPUT_IMAGE=ghcr.io/user/my-app:latest \\\n  -e CACHE_IMAGE=ghcr.io/user/my-app-cache \\\n  miget/migetpacks:latest\n```\n\n## Private Registry Authentication\n\nWhen pushing to private registries, migetpacks needs access to your Docker credentials. Since migetpacks runs inside a container, you must mount the Docker config directory.\n\n### Docker\n\n```bash\n# Log in to your registry first\ndocker login registry.example.com\n\n# Mount the docker config so migetpacks can push\ndocker run --rm \\\n  -v ./my-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -v ~/.docker/config.json:/root/.docker/config.json:ro \\\n  -e OUTPUT_IMAGE=registry.example.com/my-app:latest \\\n  miget/migetpacks:latest\n```\n\n### GitHub Actions\n\n```yaml\n- name: Log in to registry\n  uses: docker/login-action@v3\n  with:\n    registry: registry.example.com\n    username: ${{ secrets.REGISTRY_USERNAME }}\n    password: ${{ secrets.REGISTRY_PASSWORD }}\n\n- name: Build and push with migetpacks\n  run: |\n    docker run --rm \\\n      -v ${{ github.workspace }}:/workspace/source:ro \\\n      -v /var/run/docker.sock:/var/run/docker.sock \\\n      -v /home/runner/.docker/config.json:/root/.docker/config.json:ro \\\n      -e OUTPUT_IMAGE=registry.example.com/my-app:${{ github.sha }} \\\n      -e CACHE_IMAGE=registry.example.com/my-app:cache \\\n      miget/migetpacks:latest\n```\n\n**Key points:**\n- Mount `config.json` file only (buildx needs to create state in `.docker/buildx/`)\n- Use `:ro` (read-only) for the config file\n- On GitHub-hosted runners, the path is `/home/runner/.docker/config.json`\n- On self-hosted runners, use `$HOME/.docker/config.json`\n\n## Build Results\n\nGet structured JSON output for CI/CD pipelines:\n\n```bash\ndocker run --rm \\\n  -v ./my-app:/workspace/source \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\\n  -v /tmp/results:/output \\\n  -e OUTPUT_IMAGE=my-app:latest \\\n  -e RESULT_FILE=/output/result.json \\\n  miget/migetpacks:latest\n\ncat /tmp/results/result.json\n```\n\n```json\n{\n  \"status\": \"success\",\n  \"images\": [{\"name\": \"my-app:latest\", \"ports\": [\"5000/tcp\"]}],\n  \"processes\": {\"web\": \"node server.js\"},\n  \"language\": \"nodejs\",\n  \"build_time\": 45\n}\n```\n\n## Examples\n\nWorking examples for all languages in [`examples/`](https://github.com/migetapp/migetpacks/tree/main/examples):\n\n- `nodejs-example`, `deno-example`, `bun-example`\n- `python-example`, `ruby-example`, `php-hello-world`\n- `go-hello-world`, `rust-example`\n- `java-hello-world`, `kotlin-example`, `scala-example`\n- `dotnet-hello-world`, `elixir-example`\n- `dockerfile-example`, `compose-example`\n\n## Development\n\n```bash\n# Run detection tests\nmake test-detect\n\n# Build the container locally\nmake build\n\n# Test a language build\nmake test-nodejs\nmake test-python\nmake test-go\n```\n\n## About\n\nmigetpacks is built by [miget.com](https://miget.com) - unlimited apps, one price. We use migetpacks to build customer apps with zero configuration.\n\n## License\n\nO'Saasy License (Modified for Cloud/PaaS) - see [LICENSE](https://github.com/migetapp/migetpacks/blob/main/LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmigetapp%2Fmigetpacks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmigetapp%2Fmigetpacks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmigetapp%2Fmigetpacks/lists"}