This repository builds a container image for petehsu/KiroProxy, following the same image-recipe pattern as yangchuansheng/frappe-hrms-v16-docker: this repo stores the Docker build recipe, resolves the upstream revision in GitHub Actions, and publishes the final image to GitHub Container Registry.
Published image:
ghcr.io/yangchuansheng/kiroproxy:latest
Containerfilebuilds KiroProxy from a selectable upstream branch, tag, or commit SHA..github/workflows/build.ymlbuilds and pushes to GHCR on push, schedule, or manual dispatch.docker-compose.ymlprovides a simple persistent runtime using/dataas the container home.entrypoint.shstarts the service in headless mode and keeps KiroProxy config under/data.
The image build applies a small runtime patch to upstream KiroProxy before installing dependencies:
- Adds
claude-opus-4.6andclaude-opus-4.7toKIRO_MODELS. - Preserves exact passthrough for those model IDs.
- Maps
opus,opus-4.7, andclaude-4-opustoclaude-opus-4.7. - Maps
opus-4.6toclaude-opus-4.6. - Adds both IDs to the
/v1/modelsstatic fallback list.
The workflow validates this patch before building the image.
docker build --build-arg KIROPROXY_REF=main --tag ghcr.io/yangchuansheng/kiroproxy:latest --file Containerfile .To pin a build to a specific upstream commit:
docker build --build-arg KIROPROXY_REF=d34a0a78530823231fd6ec81245c8a83d0065bac --tag ghcr.io/yangchuansheng/kiroproxy:d34a0a785308 --file Containerfile .cp .env.example .env
docker compose up -dOpen:
http://localhost:8080
KiroProxy stores account configuration in the /data volume. You can add accounts through the Web UI, import an exported account file, or mount an existing AWS SSO cache into /data/.aws/sso/cache as shown in docker-compose.yml.
docker run -d --name kiroproxy -p 8080:8080 -v kiroproxy-data:/data ghcr.io/yangchuansheng/kiroproxy:latestUse GitHub Actions → Build KiroProxy image → Run workflow.
Inputs:
image_tag: image tag to publish, defaultlatest.kiroproxy_ref: KiroProxy branch, tag, or commit SHA, defaultmain.platforms: Docker platforms, defaultlinux/amd64.
- The container listens on port
8080by default. HOMEis set to/data, so KiroProxy reads and writes/data/.kiro-proxyand/data/.aws/sso/cache.- The entrypoint starts as root only long enough to create and fix ownership of
/data, then drops privileges to thekiroproxyuser before launching the app. - If imported credentials lack
profileArn, setKIRO_PROFILE_ARNindocker-compose.ymlor the container environment.
After building locally:
IMAGE=ghcr.io/yangchuansheng/kiroproxy:latest ./scripts/smoke-test.shThe smoke test checks GET /api/status and expects HTTP 200.