Skip to content

Latest commit

 

History

39 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bingo

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)

Get started

Deploy

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-k8s

Basic operations

Configure the base URL

Set the public-facing URL for generated paste links:

juju config bingo base-url=https://paste.example.com

Configure paste size limit

juju config bingo max-paste-size-bytes=5242880

Rotate the session secret

If you suspect credential compromise, invalidate all existing sessions:

juju run bingo/0 rotate-secret-key

Integrations

Required relations:

  • postgresql is required for core app functionality (persistent storage).
  • ingress is 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

Terraform module

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).

Project and community

Documentation

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 run

GitHub 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

About

bingo - Go/React pastebin app and its Juju charm for Kubernetes deployment.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages