Charmcraft

Charmcraft is the command-line tool for building Juju charms.

It provides commands to build, pack, and publish charms and integrates with Ops and Charmhub.

Charmcraft supports popular languages and web app frameworks such as Django, Express, Python, and Go through its extensions. These create language-specific scaffolding so developers can focus on the content of their charms.

Charmcraft is for platform engineers, site reliability engineers, and systems administrators looking to charm an application for their Juju deployment.

In this documentation

Installation and setup

Manage Charmcraft

Vocabulary and syntax

Configure package informationCommandscharmcraft.yamlPart keys

Platform compatibility

Select charm platformsBasesPlatforms

Software integration

PartsManage resourcesManage libraries

12-factor web apps

TutorialsInitializationConfigurationIntegrationUsageExtensions

Debugging

Analyzers and linters

Distribution

Publish a charmManage namesManage tracksManage channelsManage revisions

How this documentation is organized

The Charmcraft documentation embodies the Diátaxis framework.

  • The tutorials are lessons that steps through the main process of packaging a charm.

  • How-to guides contain directions for crafting charms.

  • References describe the structure and function of the individual components in Charmcraft.

  • Explanations aid in understanding the concepts and relationships of Charmcraft as a system.

Project and community

Charmcraft is a member of the Canonical family. It’s an open source project that warmly welcomes community projects, contributions, suggestions, fixes and constructive feedback.

Get involved

Governance and policies