bandregie

Self-hosted band software

One band. One place. No service in between.

Events, setlists, songs, the band treasury, equipment and a public band page. Bandregie runs on your own server — no account with anyone, no subscription, nobody else holding your data.

Try the demo View on GitHub

PHP and a database. No framework, no build step, no dependencies — install it once and it still runs in five years.

How it usually goes

A band of six runs on a group chat, three spreadsheets and one person who remembers everything. The answer to every question exists somewhere — you just have to know who has it and when they next look at their phone.

Every screen in Bandregie exists because somebody once typed that exact question into the chat and then waited.

  • Who can play on the 14th?
  • What did we play there last time?
  • Does the rehearsal room cost more than we pay in?
  • Which case is the large-diaphragm mic in — and what did it cost?
  • Does the promoter know when we load in?

What it is built for

One band, not a platform

An installation belongs to a single band. No accounts spanning bands, no tenant separation to get wrong, no service in the middle that can disappear. The band owns the server, the database and the data.

Answers, not lists

Not another tool to type data into. Every page answers a question that would otherwise sit in the chat — right away, and the same for everyone.

Nothing that has to be maintained

No framework to upgrade, no build step, no package lock, no third-party script. A band that installs this should still be able to run it in five years without anyone having touched it.

What is private stays private

What someone paid for their own equipment, what they deposit, what they own — visible to them, not to the band. Permissions are enforced in the route, never only in the interface, and a stand-in sees the dates they were asked for and nothing else.

What you get

The screenshots show the demo data that ships with the project — a fresh installation looks like this straight away.

Public band page with upcoming shows and a photo gallery

Public band page

What promoters and fans see: upcoming shows, photos, music, contact. Band name, logo and background come from the settings. Already have a site? Switch the public page to redirect mode — the member area, the calendar feed and the legal pages stay reachable.

Event overview with an availability poll per member

Events and availability

One click on ✔ ? ✘ and everyone sees who can make it. Three times per event — meet, stage, end — status from requested to confirmed, fee, comments. Whoever is away is flagged before anyone drives anywhere.

A venue with address, navigation button and the events played there

Venues that remember

Address, contact and what it was like last time — stage size, power, access. "Search address" asks OpenStreetMap if you want it to and fills in the coordinates; the navigation icon opens your device's map app. It has to be allowed in the settings first — otherwise the button stays grey and nothing leaves the server.

Setlist with songs, breaks and an encore block

Setlists

Breaks, announcements and encores in the right place, playing time in view, copy instead of rebuild. A brace ties a run of songs under one announcement. There is a print view for the stage — you choose what goes on the sheet — the teleprompter starts straight from the set, and what was played stays on record as history.

Stage teleprompter with colour-coded sections and tempo in BPM

A teleprompter for the stage

Lyrics and chord sheet full-screen, scrolling by themselves — sections colour-coded, the screen kept awake. Launched from the setlist, song by song, the tempo in BPM. Every musician switches to their own sheet.

Song list with status, live-play counter and lyrics

Songs with a life story

Every song has a lifecycle — from idea through "in the set" to retired — and a counter for how often it played live. Lyrics and the guitarist's chord sheet sit with it, readable on stage in the teleprompter.

Band treasury with entries, standing orders and balances

Band treasury

Standing orders book themselves, member deposits are set against the rehearsal room rent, unpaid fees stand out. Who gets to see the treasury is a permission, not a habit.

Equipment list with nested items and deadlines

Equipment

Everything nested, from the flight case down to the capsule — every item with an owner, a location and its condition (new, B-stock or used). The purchase price belongs to whoever paid it and to nobody else; the invoice sits alongside as its own record. Recurring deadlines — testing, servicing — report themselves.

Stage plot with member positions and a channel list

Stage plot and rider

The members and their instruments turn into a plot the promoter can actually read — with a channel list and inputs instead of a sketch on a napkin.

Member list with roles and permissions

Members and permissions

Who may see and change what is set by fine-grained permissions — not everyone sees the treasury, for instance. Stand-ins get only what their events need, and drop out of the stage-plot template.

Profile selection of what stays offline on the phone

Offline on stage

No signal, and it is all still there: each member chooses in their profile what goes onto their own phone — events, setlists with print views, songs with lyrics and chords, the rider, the patch list. It keeps itself fresh in the background; a single event comes along at the push of a button.

Notification settings with topics per device

Notifications on the phone

Push for new events, comments and replies — each topic on or off, per device. What is still open shows as a number on the app icon. Without browser support, nothing changes.

Profile section for the sign-in second factor

Sign in without password worries

Sign in with a passkey — by fingerprint, face or device PIN, no password at all. Prefer a password? Protect it with a second factor: a six-digit number that changes every 30 seconds. Whoever knows the password still cannot get in.

Photo management with search, event assignment and folders by year

A photo library that sorts itself

One search field over everything — description, origin, event, tags. The thirty photos from a gig are ticked and assigned to the event in one go; sorted by year, event and photographer. A linked OneDrive folder is checked daily and new pictures come in by themselves — the files stay where they are. A single tick puts a photo on the public page.

The band mailbox

Booking requests arrive by mail — and sit there until somebody turns them into an event. Bandregie fetches the mailbox over IMAP, read-only, and turns a request into an event proposal you check before it reaches the calendar. Replies are written in place and stay with the thread, and attachments move into the event they belong to.

And also

  • Absences with conflict warnings
  • Tasks and file attachments
  • Calendar feed (iCal) for phone and desktop
  • Discussions on events and topics
  • Backups with restore, plus a system check

Try it live

A complete installation with a fictional band: events, songs, setlists, treasury, equipment. Log in as the admin to see everything — or as a member and as the stand-in to see how much less those two are shown.

The demo resets every hour on the hour. Anything you create, change or delete is gone afterwards — so go ahead and try everything.

Open the demo

Logins — the same for every visitor
Admin admin@example.com demo
Member lisa@example.com demo
Stand-in nora@example.com demo

Six languages

The interface ships in German, English, Dutch, French, Spanish and Italian. Band texts and the legal pages are maintained per language, with a fallback chain: selected language → default language → English → German. Which languages appear is up to the band, and every string can be corrected in the band area.

Your site, not ours

Band name, logo, background image and favicon are configured in the settings. Nothing points back at Bandregie unless you want it to — the public page is yours.

License

Bandregie is released under the Functional Source License 1.1 with Apache 2.0 as the future license. Any use is permitted except a competing use: offering Bandregie itself as a commercial product or hosted service. Two years after each release that restriction lapses as well and the version becomes Apache 2.0.

Free for your own band: install it, run it, change it, pass it on — even if the band earns money with its gigs.

This is a source-available license, not an OSI-approved open source license, because open source by definition may not restrict commercial use. GitHub therefore displays it as “Other”.

Getting started

PHP 8.1 or newer with pdo_mysql and fileinfo, MariaDB 10.4+ or MySQL 8, and a web server. No build, no package install, no Node.

git clone https://github.com/computi71/bandregie.git
cp app/config.example.php app/config.php

Fill in the credentials and open the site: the application creates its tables and imports the translations itself, and the first administrator password ends up in a file outside the web root. One button in the settings fills the installation with demo data, a second removes exactly those rows again.

Installation guide

Current version: 1.246.1