Payment providers
Enter a Stripe, Square or SumUp API key in admin settings. The webhook endpoint configures itself rather than being registered by hand.
Managed sites are created after payment and set up through an emailed link. Self-hosted sites follow five documented steps. Both run the same product with every feature already included.
Payment assigns a separate ticketing site and sends its setup link by email. Opening that link sets the first owner login and password, and the country the site operates in, which determines its currency.
Each site has its own database, its own encryption key and its own hosted address. Chobble deploys the software and its updates.
There is no separate onboarding stage in which features are switched on. Every current feature is present when the site opens, and the settings pages configure them.
The recommended self-hosted path uses Bunny Edge Scripting, a service that runs a single JavaScript file on Bunny's network instead of on a server the operator maintains. The README lists five steps:
DB_URL, DB_TOKEN, DB_ENCRYPTION_KEY and
SCHEDULED_TASK_KEY as secrets in the Bunny dashboard.BUNNY_SCRIPT_ID and BUNNY_ACCESS_KEY as GitHub Actions
secrets in that repository.Pushes to main then trigger the deploy workflow. Image uploads need two
further Bunny secrets, STORAGE_ZONE_NAME and STORAGE_ZONE_KEY.
There is no separate migration command to run before the first visit. The
database schema migrates itself on the first request, and the site is
then ready at /setup/ for the first owner login, password and country.
Docker deployments follow the same pattern against local SQLite or a remote libSQL database.
The repository carries deployment configuration for several hosts beside
Bunny. There is a Dockerfile, a fly.toml for Fly, a render.yaml for
Render and an app.json for platforms that read that format.
That configuration covers one-click deploys to DigitalOcean, Heroku,
Koyeb and Render, and fly launch for Fly. Any host that runs a Docker
image will run Chobble Tickets, and these hosts run the image for the
operator rather than leaving them a server to keep.
Each declares the same short list of variables, and only two of them are required: the database URL and the encryption key. A database token is needed for a remote database, and everything else, including payment providers and email, is configured later in the admin area.
A shell script in deploy/ provisions a Bunny edge script from the
latest release and sets its secrets, for operators setting up more than
one site.
A Bunny edge script is not running between requests, so an idle site
consumes no compute. The supplied fly.toml sets min_machines_running
to zero and lets Fly stop and start machines on demand, which has the
same effect on that host.
This makes a second copy cheap to keep. A staging site can sit unused between deployments and cost only its database and storage, which is what makes it practical to try an update somewhere else first.
The Bunny path has no server administration in it. There is no virtual private server to rent or provision, no reverse proxy to configure, no TLS certificate to obtain or renew, no operating system to patch, no process manager to keep the application running, and no SSH access to set up.
The whole deployment runs through the Bunny dashboard and a GitHub repository: a database, an edge script, a handful of secrets and the Actions workflow that ships each push. Nobody has to edit application code to get a working site.
This is the main practical difference from ticketing software that installs onto a host. Those deployments are capable and widely used, but they leave someone responsible for the machine underneath them for as long as the site runs.
Enter a Stripe, Square or SumUp API key in admin settings. The webhook endpoint configures itself rather than being registered by hand.
Each site works on its supplied address straight away, and a custom domain can be pointed at it by CNAME. Up to three URLs are active at once, counting the supplied subdomain and the underlying script address.
Choose Resend, Postmark, SendGrid or Mailgun and enter its key. Confirmation templates can be edited in Liquid syntax.
Export listings and groups from an existing site as JSON and import them into a new one, including prices, memberships and packages.
Copy one listing, or duplicate a whole group with name replacement and date shifting, rather than building each event from scratch.
Set the header image, site title and theme colours. Booking pages and emails carry no Chobble branding by default.
There are two routes, and they carry different things.
A backup is a zip holding every table, so a restore brings back listings, attendees, answers, settings and the ledger. Three things have to travel with it.
DB_ENCRYPTION_KEY, which covers listing and site
details, email settings and payment-provider secrets.STORAGE_ZONE_NAME
and STORAGE_ZONE_KEY for that zone, or for the copy it points at.A restore reports the source-code version that matches the restored data.
The in-app update button refuses to run unless a backup of that site was
taken within the last hour, and the site builder applies the same gate to
the sites it updates. Deploying by pushing to main does not check for a
backup, so an operator on that path takes one before shipping a change
that alters the schema.
Catalogue export moves event setup rather than a whole site. It produces versioned JSON covering listings and groups with their prices, memberships, packages and parent references.
This suits copying a programme into a different site rather than recreating the one you had.
Chobble Tickets includes a site builder for technical providers who host sites for other organisers. It provisions a new site on Bunny Edge or Deno Deploy and creates its database and its own encryption key.
Each site records the build it is running, so a host can see which sites are behind and redeploy them from the latest release. Sites can be put on alpha, beta or release update channels.