How to publish your charm on Charmhub

Publishing your charm enables other people to deploy your charm with juju deploy <charm-name>. Anyone who knows your charm’s name can also see the Charmhub page for your charm.

Review metadata and add an icon

Before publishing your charm, review the charmcraft.yaml file to make sure you’ve provided appropriate metadata. The metadata controls what appears on the Charmhub page for your charm. See Charmcraft | Configure package information.

To add icon to your charm, create a file called icon.svg in the same directory as charmcraft.yaml, then use the Dump plugin to include the icon. In charmcraft.yaml:

parts:
  charm:
    plugin: uv
    source: .
    build-snaps:
      - astral-uv
  extra-files:
    plugin: dump
    source: .
    stage:
      - icon.svg

See Charmcraft | Manage icons.

If your charm uses the Charm plugin, you don’t need to use the Dump plugin to include the icon. Charmcraft automatically includes icon.svg. However, you should avoid using the Charm plugin if possible. Instead, migrate to the uv plugin or the Poetry plugin.

Publish your charm

To publish your charm, follow the instructions in Charmcraft | Publish a charm.

If your charm depends on resources, also follow the instructions in Charmcraft | Publish a resource.

Manage tracks and channels

Consider whether you need multiple “tracks” for your charm. By default, you’ll have a track called latest, which is intended to correspond to the latest version of your charm’s workload. Some charm developers choose to have a numbered track instead.

If your charm supports multiple workload versions, consider maintaining a track for each major version or major.minor version. See Charmcraft | Manage tracks after publishing your charm.

Charmhub creates four “channels”:

  • latest/stable

  • latest/candidate

  • latest/beta

  • latest/edge

These channels represent different risk levels for users of your charm. Users who deploy from latest/stable expect a production-ready, extensively tested, safe release with release notes. Users who deploy your charm from latest/edge expect to receive a new revision each time you push to your repository’s main branch.

To control which revision of your charm is available from each channel, follow the instructions in Charmcraft | Manage revisions.

Next steps

Published charms don’t automatically show up in searches on Charmhub, or general web searches. If your charm is suitable for wider use, you can request public listing. See: