Skip to content

Configure GHCR for HA add-on image publishing #1

@cayossarian

Description

@cayossarian

Context

The HA add-on build pipeline (.github/workflows/build-addon.yaml) builds multi-arch Docker images and pushes them to GHCR at ghcr.io/spanpanel/simulator/{arch}:{version}. The HA Supervisor pulls these images when a user installs the add-on.

The workflow triggers on pushes to main but will fail until GHCR permissions are configured.

Required Setup

1. Enable GitHub Packages for the organization

In the SpanPanel org settings:

  • Settings > Packages > Package creation — ensure members can publish packages

2. Grant the repository write access to packages

The workflow uses GITHUB_TOKEN with packages: write permission. This requires:

  • Repo Settings > Actions > General > Workflow permissions — set to "Read and write permissions"

3. Verify the first image push

After the above is configured:

  • Manually trigger the workflow via Actions > Build HA Add-on Image > Run workflow (or push any change to main that touches a path in the trigger list)
  • Verify images appear at https://github.com/orgs/SpanPanel/packages
  • Two packages should be created:
    • simulator/aarch64 (ARM64)
    • simulator/amd64 (x86-64)

4. Make packages public

Since the repo is public, GHCR packages should be public so HA Supervisor can pull without authentication:

  • Go to the package settings page for each package
  • Verify visibility is Public

Verification

Once images are published, test the full add-on install flow:

  1. In HA, go to Settings > Add-ons > Add-on Store > Repositories
  2. Add https://github.com/SpanPanel/simulator
  3. SPAN Panel Simulator should appear in the store
  4. Install it — the Supervisor should pull the image for the correct architecture
  5. Configure options and start — verify the simulator runs and the span-panel integration discovers it

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions