https://github.com/canonical/penpot-operator
penpot-operator - charm repository.
https://github.com/canonical/penpot-operator
charm platform-engineering product-penpot squad-apac
Last synced: about 1 month ago
JSON representation
penpot-operator - charm repository.
- Host: GitHub
- URL: https://github.com/canonical/penpot-operator
- Owner: canonical
- License: apache-2.0
- Created: 2024-06-07T08:18:46.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2026-04-18T21:19:18.000Z (about 2 months ago)
- Last Synced: 2026-04-18T23:28:24.085Z (about 2 months ago)
- Topics: charm, platform-engineering, product-penpot, squad-apac
- Language: Python
- Homepage: https://charmhub.io/penpot
- Size: 3.24 MB
- Stars: 0
- Watchers: 5
- Forks: 2
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
README
# Penpot charm
[](https://charmhub.io/penpot)
[](https://github.com/canonical/penpot-operator/blob/main/.github/workflows/publish_charm.yaml)
[](https://github.com/canonical/penpot-operator/blob/main/.github/workflows/promote_charm.yaml)
[](https://discourse.charmhub.io)
A [Juju](https://canonical.com/juju) [charm](https://documentation.ubuntu.com/juju/3.6/reference/charm/)
for deploying and managing the [Penpot](https://penpot.app) open-source
design tool for design and code collaboration in your systems.
This charm simplifies the configuration and maintenance of Penpot across a
range of environments, allowing designers to create stunning designs and interactive prototypes,
design systems at scale, and make their workflow easy and fast with ready-to-use code.
## Get started
In this section, we will deploy the Penpot charm.
You’ll need a workstation, e.g., a laptop, with sufficient resources to launch a virtual machine with 4 CPUs, 8 GB RAM, and 50 GB disk space.
### Set up
You can follow the [tutorial](https://documentation.ubuntu.com/juju/3.6/howto/manage-your-juju-deployment/set-up-your-juju-deployment-local-testing-and-development/#set-things-up) to set up a test environment for Juju with LXD.
### Deploy
From inside the virtual machine, deploy Penpot charm's dependencies using the `juju deploy` command.
```bash
juju deploy minio --config access-key=minioadmin --config secret-key=minioadmin
juju deploy postgresql-k8s --channel 14/stable --trust
juju deploy redis-k8s --channel latest/edge
juju deploy s3-integrator --config "endpoint=http://minio-endpoints.penpot-test.svc.cluster.local:9000" --config bucket=penpot
juju deploy nginx-ingress-integrator --trust --config service-hostname=penpot.local --config path-routes=/
juju deploy self-signed-certificates
juju integrate self-signed-certificates nginx-ingress-integrator
```
Configure minio to provide a S3 compatible storage for the Penpot charm.
```bash
export AWS_ACCESS_KEY_ID=minioadmin
export AWS_SECRET_ACCESS_KEY=minioadmin
export AWS_ENDPOINT_URL=http://$(juju status --format=json | jq -r '.applications.minio.units."minio/0".address'):9000
aws s3 mb s3://penpot --endpoint-url $AWS_ENDPOINT_URL
juju run s3-integrator/0 sync-s3-credentials --string-args access-key=minioadmin secret-key=minioadmin
```
Deploy the Penpot charm and integrate the Penpot charm with all its dependencies.
```bash
juju deploy penpot --channel latest/edge
juju integrate penpot postgresql-k8s
juju integrate penpot redis-k8s
juju integrate penpot s3-integrator
juju integrate penpot nginx-ingress-integrator
```
### Basic operations
When the Penpot charm has completed deployment and installation, you can access Penpot from a browser.
First, we need to modify the `/etc/hosts` file to point the `penpot.local` domain to the IP address of the virtual machine.
After that, we can access the Penpot instance in the browser using the address `https://penpot.local`.
Note that `https` is required for Penpot to function. You may need to bypass the certificate security warning in the browser, as we are using a self-signed certificate.
Inside the virtual machine, run the following command to create a Penpot account, and use the returned credentials to log in with this account.
```bash
juju run penpot/0 create-profile --string-args email=example@example.com fullname="John Doe"
```
For additional configurations and actions available for the Penpot charm, refer to the [`charmcraft.yaml`](./charmcraft.yaml) file.
## Learn more
* [Read more](https://charmhub.io/penpot)
* [Official webpage](https://penpot.app/)
* [Troubleshooting](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)
## Project and community
* [Issues](https://github.com/canonical/penpot-operator/issues)
* [Contributing](docs/how-to/contribute.md)
* [Matrix](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)