bandregie

Bandsoftware op je eigen server

Eén band. Eén plek. Geen dienst ertussen.

Een aanvraag wordt doorgerekend, per contract afgesproken, gespeeld en gefactureerd — zonder het programma te verlaten. Plus data, setlists, nummers, bandkas, equipment en een openbare bandpagina. Bandregie draait op je eigen server — geen account bij wie dan ook, geen abonnement, niemand anders die jullie gegevens heeft.

Demo proberen Bekijk op GitHub

PHP en een database. Geen framework, geen buildstap, geen afhankelijkheden — één keer installeren en over vijf jaar draait het nog.

Hoe het anders gaat

Een band van zes draait op een groepsapp, drie spreadsheets en één persoon die alles onthoudt. Het antwoord op elke vraag staat érgens — je moet alleen weten wie het heeft en wanneer diegene weer op de telefoon kijkt.

Elk scherm in Bandregie bestaat omdat iemand precies die vraag ooit in de groepsapp zette en toen ging wachten.

  • Wie kan er op de 14e spelen?
  • Wat hebben we daar de vorige keer gespeeld?
  • Kost de oefenruimte meer dan we inleggen?
  • In welke case ligt de grootmembraanmicrofoon — en wat kostte die?
  • Weet de organisator hoe laat we opbouwen?

Waarvoor het gebouwd is

Eén band, geen platform

Een installatie hoort bij één band. Geen accounts over banden heen, geen andere band in dezelfde database, geen dienst ertussen die kan verdwijnen. De server, de database en de gegevens zijn van de band.

Antwoorden, geen lijsten

Niet nóg een programma om gegevens in te typen. Elke pagina beantwoordt een vraag die anders in de groepsapp blijft hangen — meteen en voor iedereen hetzelfde.

Niets wat onderhouden moet worden

Geen framework om bij te werken, geen buildstap, geen pakketlijst, geen script van derden. Wie dit installeert, moet het over vijf jaar nog kunnen draaien zonder dat iemand eraan gewerkt heeft.

Wat privé is, blijft privé

Wat iemand voor zijn eigen materiaal betaalde, wat hij inlegt, wat van hem is — zichtbaar voor hem, niet voor de band. Wie iets niet mag zien, krijgt niet alleen de knop verborgen: de pagina blijft voor hem dicht, ook als hij het adres kent. Een invaller ziet de data waarvoor hij gevraagd is en verder niets.

Wat erin zit

De afbeeldingen tonen de meegeleverde demogegevens — een verse installatie ziet er meteen zo uit.

Openbare bandpagina met komende optredens en fotogalerij

Openbare bandpagina

Wat organisatoren en publiek zien: komende optredens, foto's, muziek, contact. Bandnaam, logo en achtergrond komen uit de instellingen. Heb je al een site? Zet de openbare pagina op doorverwijzen — het ledengedeelte, de agenda-feed en de juridische pagina's blijven bereikbaar.

Optredencontract met organisator, gage en tekst die niet meer verandert

Een contract, geen mailwisseling

Zo werken de meeste bands: contract eruit, getekend terug, klaar. Datum, plaats, speeltijd en gage staan al bij de datum — het contract haalt ze daar op en jullie vullen de tekst aan. De partij die tekent is niet de zaal: die heet "Stadsfeest", geboekt wordt er via een bureau twee dorpen verderop, en dat bureau tekent. Daarom zijn organisatoren eigen gegevens, los van de locatie. Wat verstuurd en getekend is, blijft woordelijk staan, ook als iemand het sjabloon later aanpast. Elektronische handtekeningen zijn er bewust niet — er wordt op papier getekend en de scan gaat naar de datum.

Calculatie van een optreden met posten, korting en totaalbedrag

Wat het optreden moet kosten

Uitgerekend uit jullie eigen prijslijst in plaats van uit het hoofd: het eerste uur met op- en afbouw, verdere speeltijd, reis per kilometer, eigen installatie, een gasttechnicus. Daaronder de korting voor het dorpsfeest, de btw, het totaal — en wat er per lid overblijft. Eén knop zet het bedrag als gage bij de datum, zodat er niet twee getallen naast elkaar leven die uit elkaar lopen. Het is alleen nodig voor de organisator die de prijs wil weten voordat hij zich vastlegt — daarom is het een aparte stap die je aanzet, en niet de weg die iedereen moet gaan.

Overzicht van afspraken met beschikbaarheid per lid

Optredens en beschikbaarheid

Eén klik op ✔ ? ✘ en iedereen ziet wie kan. Drie tijden per afspraak — verzamelen, podium, einde — status van aangevraagd tot bevestigd, gage, opmerkingen, voorprogramma. Wie weg is, valt op voordat iemand vertrekt.

Locatie met adres, navigatieknop, tellers en de data die daar waren

Locaties met geheugen

Adres, contactpersoon en hoe het de vorige keer was — podiumgrootte, stroom, toegang. „Adres zoeken" vraagt desgewenst bij OpenStreetMap na en vult de coördinaten in, het navigatiepictogram opent de kaartenapp van je toestel. Het moet eerst in de instellingen worden toegestaan — anders blijft de knop grijs en verlaat er niets de server. Elke locatie telt mee hoe vaak jullie er hebben gespeeld, wat er nog aankomt, wat alleen is aangevraagd en wat is afgezegd; afgezegde data liggen ingeklapt onder de data die wel doorgingen.

Setlist met nummers, pauzes en toegiftenblok

Setlists

Pauzes, aankondigingen en toegiften op de juiste plek, speelduur in beeld, kopiëren in plaats van opnieuw bouwen. Een accolade vat meerdere nummers samen onder één aankondiging. Voor het podium is er een printweergave — je kiest wat erop komt —, de teleprompter start rechtstreeks vanuit de set, en wat gespeeld is blijft als geschiedenis staan.

Podium-teleprompter met gekleurde secties en tempo in BPM

Een teleprompter voor het podium

Songtekst en akkoordblad schermvullend, scrollen vanzelf — secties in kleur, het scherm blijft aan. Gestart vanuit de setlist, nummer voor nummer, het tempo in BPM. Elke muzikant schakelt naar zijn eigen blad.

Nummerlijst met zoekveld, statusfilter, liveteller en beoordeling

Nummers met een levensloop

Elk nummer heeft een levensloop — van idee via „in het programma" tot afgevoerd — en een teller hoe vaak het live klonk. Songtekst en het akkoordblad van de gitarist horen erbij, op het podium leesbaar in de teleprompter. Een zoekveld over titel en origineel en een filter op status vinden dat ene nummer ook in een lange lijst — de keuze staat in het adres, dus je kunt hem doorgeven en de terugknop doet wat hij moet doen. De status "Demo" zit tussen voorstel en in voorbereiding.

Bandkas met boekingen, doorlopende opdrachten en saldi

Bandkas

Doorlopende opdrachten boeken zichzelf, de inleg van de leden staat tegenover de huur van de oefenruimte, openstaande gages vallen op. Wie de kas mag zien, bepaalt het rechtenbeheer.

Materiaallijst met geneste onderdelen en termijnen

Materiaal

Alles in elkaar, van de flightcase tot de capsule — elk onderdeel met eigenaar, standplaats en staat (nieuw, B-stock, gebruikt). De aankoopprijs is van wie betaald heeft en van niemand anders; de factuur ligt er als eigen bewijsstuk bij. Terugkerende termijnen — keuring, onderhoud — melden zichzelf.

Podiumplan met posities van de leden en kanaallijst

Podiumplan en rider

Uit de leden en hun instrumenten ontstaat een plan dat de organisator echt kan lezen — met kanaallijst en ingangen in plaats van een schets op een servet.

Onderwerp in de bandchat met berichten en de markering voor het eerste ongelezene Onderwerp in de bandchat met berichten en de markering voor het eerste ongelezene

Praten, zonder groepsapp

Eén onderwerp per zaak, de berichten eronder — en je komt binnen bij het eerste bericht dat je nog niet hebt gelezen, gemarkeerd met "nieuw vanaf hier". Geen gescrol door driehonderd berichten op zoek naar de plek waar je was gebleven. Wat ongelezen is, staat als getal op het app-icoon.

Ledenlijst met rollen en rechten

Leden en rechten

Wie wat mag zien en wijzigen bepaalt een fijnmazig rechtenbeheer — niet iedereen ziet de bandkas. Invallers krijgen alleen wat hun optredens nodig hebben en vallen uit de sjabloon voor het podiumplan.

Profielkeuze van wat offline op de telefoon blijft

Offline op het podium

Geen bereik, en toch staat alles er: elk lid kiest in het profiel wat op de eigen telefoon komt — optredens, setlists met afdrukweergave, nummers met tekst en akkoorden, de rider, de patchlijst. Het werkt zichzelf op de achtergrond bij; een los optreden gaat met één knop mee.

Meldingsinstellingen met onderwerpen per apparaat

Weten zonder te kijken

Push voor nieuwe data, reacties, toe- en afzeggingen — per onderwerp en per toestel aan of uit. Wat nog openstaat, staat als getal op het app-icoon. Wie een week niet binnenkijkt, krijgt 's avonds een mail met wat hij nog niet heeft gezien: nieuwe items, ongelezen berichten, eigen openstaande taken, optredens waarop hij niet heeft geantwoord. Wat niet tot de avond kan wachten — het optreden is verzet, de repetitie gaat niet door — wordt als belangrijk gemarkeerd en gaat meteen de deur uit. Een afgezegd of verzet optreden meldt zichzelf; elke andere wijziging blijft stil, zodat een melding het lezen waard is.

Profielsectie voor de tweede factor bij het inloggen

Inloggen zonder wachtwoordzorgen

Inloggen met een passkey — via vingerafdruk, gezicht of apparaat-pin, helemaal zonder wachtwoord. Liever een wachtwoord? Beveilig het met een tweede factor: een zescijferig getal dat elke 30 seconden verandert. Wie het wachtwoord kent, komt er zo nog niet in.

Fotobeheer met zoeken, toewijzing aan optreden en mappen per jaar

Een fotogalerij die zichzelf ordent

Eén zoekveld over alles — omschrijving, herkomst, optreden, labels. De dertig foto's van een optreden vink je aan en wijs je in één keer aan het optreden toe; gesorteerd op jaar, optreden en fotograaf. Een gekoppelde OneDrive-map wordt dagelijks gecontroleerd, nieuwe foto's komen er vanzelf bij — de bestanden blijven waar ze staan. Eén vinkje zet een foto op de openbare pagina. De galerij houdt de voorvertoning en daarnaast de mappenboom waarin de foto's toch al staan.

De factuur voor een optreden

Na het optreden wordt er afgerekend. De factuur ontstaat uit het contract — organisator, prestatie, gage en btw-tarief staan er al — krijgt een doorlopend nummer en gaat als openstaande post naar de bandkas tot het geld binnen is. Er wordt nergens in de toepassing betaald: ze schrijft de factuur en onthoudt wat openstaat.

Een toegang voor het boekingsbureau

Wie jullie optredens regelt, krijgt een eigen account — en ziet minder dan de band. Jullie bepalen of het bureau de data met inhoud ziet of alleen dat een dag bezet is; van de contracten ziet het alleen de eigen. De instelling begint aan de gesloten kant, want een rol die met alles open binnenkomt, heeft al doorgegeven voordat iemand erover nadenkt.

Taken die van meerdere mensen zijn

Posters plakken doen drie mensen. Een taak hoort daarom bij zoveel leden als nodig is, met een getal erbij: allemaal, of één, of twee. Iedereen vinkt voor zichzelf af, en je ziet wie zijn deel al heeft gedaan — in plaats van dat één iemand voor iedereen afvinkt en niemand weet waar hij aan toe is. Een taak hangt aan datgene waar het over gaat: een datum, een nummer, een locatie.

De bandmailbox

Aanvragen komen per mail — en blijven liggen tot iemand er een optreden van maakt. Bandregie haalt de mailbox op via IMAP, alleen lezend, en maakt van een aanvraag een voorstel dat je controleert voordat het in de agenda staat. Antwoorden schrijf je ter plekke en ze blijven bij het gesprek, bijlagen verhuizen naar het optreden waar ze bij horen.

Gasten voor één avond

Een geluidstechnicus, een blazerssectie, een invaller — wie voor één avond meedoet, heeft geen account nodig. Gasten staan in een contactenlijst en worden op een optreden geboekt; de uitnodiging is een link waarmee ze toe- of afzeggen. Na de toezegging is diezelfde link hun toegang tot draaiboek, rider en setlist — alleen voor dat optreden, alleen lezen, tot de middag erna. Een afzegging maakt hem meteen ongeldig. Elke boeking krijgt een beoordeling; de lijst toont het gemiddelde.

En verder

  • Afwezigheden met een waarschuwing bij conflicten met data
  • Belastingoverzicht over de inkomsten van een jaar
  • Agenda-abonnement (iCal) voor telefoon en computer — met plaats en een aantikbare navigatielink
  • Markeringen op alles wat nieuw of gewijzigd is, tot ieder lid het heeft gezien
  • Geïllustreerde hulp die de weg van aanvraag tot gage uitlegt
  • Back-ups met herstel en een systeemcontrole

Live uitproberen

Een volledige installatie met een verzonnen band: optredens, nummers, setlists, kas, materiaal. Meld je aan als beheerder om alles te zien — of als lid en als invaller, om te zien hoeveel minder die twee te zien krijgen.

De demo wordt elk heel uur teruggezet. Alles wat je aanmaakt, wijzigt of verwijdert is daarna weg — probeer dus gerust alles uit.

Demo openen

Inloggegevens — voor elke bezoeker dezelfde
Beheerder admin@example.com demo
Lid lisa@example.com demo
Invaller nora@example.com demo

Zes talen

De interface is er in het Duits, Engels, Nederlands, Frans, Spaans en Italiaans. Bandteksten en juridische pagina's worden per taal onderhouden, ontbreekt een vertaling, dan verschijnt de tekst in de eerstvolgende taal in plaats van een lege plek. Welke talen verschijnen bepaalt de band, en elke tekst is in het bandgedeelte bij te werken.

Jullie site, niet de onze

Bandnaam, logo, achtergrond en favicon staan in de instellingen. Naar buiten toe wijst niets op Bandregie als jullie dat niet willen — de openbare pagina is van jullie.

Licentie

Bandregie staat onder de Functional Source License 1.1 met Apache 2.0 als toekomstige licentie. Alles is toegestaan behalve concurrerend gebruik: Bandregie zelf aanbieden als commercieel product of gehoste dienst. Twee jaar na elke uitgave vervalt ook die beperking en valt die versie onder Apache 2.0.

Gratis voor je eigen band: installeren, draaien, aanpassen, doorgeven — ook als de band met optredens geld verdient.

Dit is een licentie met openbare broncode, maar geen door de OSI erkende opensourcelicentie, omdat opensource per definitie commercieel gebruik niet mag beperken. GitHub toont hem daarom als “Other”.

Aan de slag

PHP 8.1 of nieuwer met pdo_mysql en fileinfo, MariaDB 10.4+ of MySQL 8, en een webserver. Geen build, geen pakketinstallatie, geen Node.

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

Toegangsgegevens invullen en de pagina openen: de toepassing maakt zelf de tabellen aan en importeert de vertalingen, en ze vertelt je hoe je de eerste keer inlogt. Eén knop in de instellingen vult de installatie met demogegevens, een tweede verwijdert precies die regels weer.

Naar de installatiehandleiding

Huidige versie: 2.50.1