Manage a 12-factor app charm

These guides walk you through all ways you can manage 12-factor app charms, from initialization to usage.

Extensions add customized elements to a charm for specific web app frameworks. While the overall basic logic is the same as managing a charm, the following guides are about the 12-factor app charm workflow.

Initialization

You will need a rock for your 12-factor app charm. Prepare a 12-factor app rock with Rockcraft.

Once you have a rock, use charmcraft init and specify the relevant profile:

charmcraft init --profile django-framework
charmcraft init --profile expressjs-framework
charmcraft init --profile fastapi-framework
charmcraft init --profile flask-framework
charmcraft init --profile go-framework
charmcraft init --profile spring-boot-framework

These profiles use Ubuntu 24.04 LTS by default. To initialize a profile for Ubuntu 26.04 LTS, add --base ubuntu@26.04 to the command.

Charmcraft automatically creates a charmcraft.yaml project file, a pyproject.toml file and source code for the charm in your current directory. Ubuntu 24.04 LTS profiles also include a requirements.txt file.

Configuration

Once your 12-factor app charm has been set up, you can customize many aspects of it using Juju.

Integration

Once deployed, your 12-factor app can be integrated into nearly anything in the Juju ecosystem.

Usage

Now that you’ve initialized and configured your 12-factor app charm, you’re ready to use it.