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.
Self-hosted band software
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.
PHP and a database. No framework, no build step, no dependencies — install it once and it still runs in five years.
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.
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.
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.
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 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.
The screenshots show the demo data that ships with the project — a fresh installation looks like this straight away.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
| Admin | admin@example.com |
demo |
|---|---|---|
| Member | lisa@example.com |
demo |
| Stand-in | nora@example.com |
demo |
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.
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.
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”.
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.
Current version: 1.246.1