A Juju charm deploying and managing bingo on Kubernetes. bingo is a 12-Factor Go + React pastebin application that replaces paste.canonical.com, providing paste creation, retrieval, expiry, and optional OIDC authentication via the Canonical Identity Platform.
Like any Juju charm, this charm supports one-line deployment, configuration, integration, scaling, and more. For bingo, this includes:
- Paste creation and retrieval with configurable expiry
- Optional OIDC authentication via the Canonical Identity Platform
- Integration with PostgreSQL for persistent storage
- Ingress support via Traefik
- Observability integrations (Prometheus, Grafana, Loki)
bingo requires a database for persistent storage, and it supports an ingress relation for public HTTP access. Deploy bingo and integrate it with the PostgreSQL and Traefik charms:
juju add-model bingo
juju deploy bingo --resource app-image=<oci-image>
juju integrate bingo postgresql-k8s
juju integrate bingo traefik-k8sSet the public-facing URL for generated paste links:
juju config bingo base-url=https://paste.example.comjuju config bingo max-paste-size-bytes=5242880If you suspect credential compromise, invalidate all existing sessions:
juju run bingo/0 rotate-secret-keyRequired relations:
postgresqlis required for core app functionality (persistent storage).ingressis required only when exposing bingo externally (for public HTTP access via Traefik).
| Endpoint | Interface | Required | Purpose |
|---|---|---|---|
postgresql |
postgresql_client |
Yes | Persistent paste storage |
ingress |
ingress |
Required for external access | External HTTP access via Traefik |
logging |
loki_push_api |
No | Log forwarding to Loki |
metrics-endpoint |
prometheus_scrape |
No | Metrics scraping |
grafana-dashboard |
grafana_dashboard |
No | Pre-built dashboards |
tracing |
tracing |
No | Distributed tracing |
A reusable Terraform module for deploying bingo via the
Juju Terraform provider is available in
terraform/ (application only) and
terraform/product/ (model + application +
bundled dependencies + relations — a full working deployment).
- Issues
- Contributing
- Matrix
- License (Apache 2.0)
Our documentation is stored in the docs directory.
It is based on the Canonical starter pack
and hosted on Read the Docs. In structuring,
the documentation employs the Diátaxis approach.
You may open a pull request with your documentation changes, or you can file a bug to provide constructive feedback or suggestions.
To run the documentation locally before submitting your changes:
cd docs
make runGitHub runs automatic checks on the documentation to verify spelling, validate links and style guide compliance.
You can (and should) run the same checks locally:
make spelling
make linkcheck
make vale
make lint-md