Skip to content
FloslisPublic

About

Live mic and position display for churches and events. Self-hosted on any PHP webspace, Raspberry Pi or desktop. No cloud, no accounts.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

MicBoard

English · Deutsch

Who's on which mic? MicBoard shows it live on any screen or as an OBS browser source. A volunteer assigns people to mics in the admin panel, every display updates within a second. Built for our church, used every Sunday.

👉 Try the demo: micboard.flotech.dev (password demo, resets every night)

Display

Support me on Ko-fi

Features

  • Live sync: assignments show up on every display in under a second, the admin panel updates instantly
  • Multiple displays: speaker screen, band screen, livestream scene, each with its own slots (Preacher, Vox 1, Guitar …) and aspect ratio (16:9, 21:9, 32:9)
  • Photos per person, with crop and zoom
  • Quick add: create a guest right in the assignment dialog, removed automatically when unassigned
  • Self-hosted: your data stays on your server. No accounts, no cloud services, no build secrets
  • Runs anywhere: any PHP webspace, a Raspberry Pi or a desktop computer

Admin

Install

Download micboard.zip from the latest release and unpack it. Then pick one:

A) PHP webspace (any host with PHP 7.4+)

  1. Upload the folder's contents via FTP/SFTP, e.g. to micboard/
  2. Open the address in the browser and set the admin password
  3. Done. Data lives in daten/ (locked by .htaccess), photos in images/

B) Raspberry Pi or desktop (Node.js 18+)

cd micboard
node server.mjs            # → http://<this-computer>:8080
PORT=80 node server.mjs    # other port

On a Raspberry Pi, run it as a service so it starts on boot (/etc/systemd/system/micboard.service):

[Unit]
Description=MicBoard
After=network-online.target
[Service]
WorkingDirectory=/home/pi/micboard
ExecStart=/usr/bin/node server.mjs
Restart=always
User=pi
[Install]
WantedBy=multi-user.target

sudo systemctl enable --now micboard

Raspberry Pi as a display (1–2 monitors)

One Pi 4/5 drives two screens. Flash Raspberry Pi OS Lite, then run werkzeuge/raspi/einrichten.sh over SSH: it boots straight into full-screen displays, no cursor, no screen blanking, nightly restart.

Displays

Open https://your-address/#/display/<id> on the screen, or use it as an OBS browser source. The admin panel shows the link for each display.

How it works

  • React app (Vite, Tailwind) talks to a tiny server: api/index.php on a webspace or server.mjs with Node. Both offer the same API and store everything in JSON files
  • Displays ask once per second whether anything changed. The answer is a few bytes unless something did
  • The admin password is stored hashed. A login gives the browser a key valid for 30 days
  • Demo mode: a demo/db.json next to the app sets the password to demo and restores the data every night

Development

npm install
npm run server   # API on :8080 (data in .dev/)
npm run dev      # app on :5173, forwards /api to :8080

Moving from the old Firebase version: werkzeuge/umzug-firebase.py.

License

AGPL-3.0: free to use, change and share. Anyone who distributes it or offers it as a web service must publish their source code under the same license. © 2026 Florian Hogrebe. Versions up to 1.0.0 were released under MIT. · A project by FLOTECH

About

Live mic and position display for churches and events. Self-hosted on any PHP webspace, Raspberry Pi or desktop. No cloud, no accounts.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages