Javis OS
Javis OS는 기업가를 돕는 에이전시 AI로, 업무를 지원하고 함께 성장합니다
밴드 일정·리허설·가능시간·레퍼토리·세트리스트·장비·재정 관리 한 곳에서, 무료 오픈소스 자체 호스팅
Your band's whole running order in one place: rehearsals, availability, repertoire, setlists, equipment, finances. Free, open source, self-hosted.
비즈니스TypeScript · HTMLGitHub @maxxs78온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Self-hosted web app to organize a band — events, availability, repertoire, setlists, files, equipment and finances in one place. Next.js + SQLite, AGPL-3.0.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
🇩🇪 Dieses README gibt es auch auf Deutsch.
Bandplaner is a self-hosted, open-source band management web app. Rehearsals and gigs, who's available, the repertoire with keys and sheet music, setlists, equipment and packing lists, the band's finances, venues, and shared files — all in one place, instead of scattered across email, WhatsApp groups, and spreadsheets. It runs on your own server, a NAS, or a Raspberry Pi; there is no cloud and no subscription, and your data stays with you.
Built with Next.js and SQLite, packaged as a single Docker container. Interface in English and German.README 전문 보기 ↗🇩🇪 Dieses README gibt es auch auf Deutsch.
Bandplaner is a self-hosted, open-source band management web app. Rehearsals and gigs, who's available, the repertoire with keys and sheet music, setlists, equipment and packing lists, the band's finances, venues, and shared files — all in one place, instead of scattered across email, WhatsApp groups, and spreadsheets. It runs on your own server, a NAS, or a Raspberry Pi; there is no cloud and no subscription, and your data stays with you.
Built with Next.js and SQLite, packaged as a single Docker container. Interface in English and German.
A user account can be a member of several bands and switch between them. Within each band there is a role model: Administrator (full rights including member and role management), Member, and Guest/Substitute with time-limited access (an "access until" date). New members and guests are added via an invitation link. Open self-registration is disabled by default — only the first account and invited people can register; set REGISTRATION_ENABLED=true for open registration (see INSTALLATION.md).
Independently of that, any number of people can be flagged as finance admin — deliberately decoupled from the role, so that the same person can be both administrator and finance admin, and so that several people can look after the finances. Finance admins are the only ones who see the complete financial overview, and they additionally get admin-equivalent rights for songs, equipment, files, and events — but no access to member management or the management page.
Sign-in works with either an email address or a username. All users can change their own password in their profile; admins can additionally set a new initial password for a member, which that member must change at the next login. After 5 consecutive failed login attempts an account is automatically locked for 2 days (protection against brute-force attempts); the lock then expires on its own or is lifted immediately by an admin password reset.
The interface is available in German and English, switchable via a language picker in the header. The choice is stored permanently in the user profile and applies across all bands; before login the app detects the language automatically from the browser settings.
An illustrated, English-language user handbook is linked from the info icon (ⓘ) in the header of every page (handbook, link to the source-code repository, license note, and current app version) and is also available as a standalone HTML file at public/docs/handbook/index.html.
Modules currently implemented:
The complete, more detailed functional specification – including planned, not-yet-implemented extensions such as polls / to-dos and AI-assisted setlist suggestions – is in Funktionsspezifikation-Bandplaner.md (German).
Larger modules can be enabled/disabled per band under Band → Management, so that the interface stays limited to what the group actually uses:
| Module | Default | Note |
|---|---|---|
| Equipment | on | – |
| Packing lists | on | requires Equipment |
| Finances | off | whoever enables it automatically becomes a finance admin if the band has none yet |
| Communication | off | sending mail additionally needs SMTP (see INSTALLATION.md) |
| Chat | off | one group chat per band plus private 1:1 messages, live update via polling |
| Media player | off | only controls playback; files and links remain usable regardless |
| within it: key detection | on | sub-toggle, only effective when the media player is active |
| Venues | off | without the module enabled, events keep just a free-text location field, as before |
Disabled modules disappear from the navigation but delete no data – everything is available again unchanged as soon as the module is re-enabled. The one deliberate exception: disabling public file links also blocks links that already exist, since it is meant as a security barrier.
A band is the central starting point: almost every other object belongs to exactly one band.
erDiagram
BAND }o--o{ MEMBER : "membership (role)"
BAND ||--o{ EVENT : has
BAND ||--o{ SONG : has
BAND ||--o{ SETLIST : has
BAND ||--o{ PACKING_LIST : has
BAND ||--o{ VENUE : has
BAND ||--o{ FINANCE_ENTRY : has
BAND ||--o{ FILE : has
BAND |o--o{ EQUIPMENT : "band-owned"
MEMBER |o--o{ EQUIPMENT : "personally owned"
MEMBER }o--o{ EVENT : "availability"
MEMBER }o--o{ SONG : "voting & notes"
MEMBER }o--o{ FINANCE_ENTRY : "fee / cost share"
EVENT |o--o| VENUE : "takes place at"
EVENT }o--o{ SETLIST : uses
EVENT }o--o{ PACKING_LIST : uses
EVENT ||--o{ FINANCE_ENTRY : causes
EVENT }o--o{ FILE : has
SETLIST }o--o{ SONG : "contains (ordered)"
SONG }o--o{ FILE : has
PACKING_LIST }o--o{ EQUIPMENT : contains
EQUIPMENT }o--o{ FILE : has
VENUE }o--o{ FILE : has
Reading aid:
(Not shown, to keep the overview readable: invitations, personal song notes, stage cues on setlist entries, finance-admin assignment.)
Is Bandplaner free? Yes. It is open-source software under the GNU AGPL-3.0. There is no subscription, no paid tier, and no account on anyone else's server.
Does it need the cloud or an internet connection? No. Bandplaner is self-hosted — it runs entirely on your own machine and all data stays there. The only optional outbound calls are the new-song assistant's metadata lookups (MusicBrainz, Discogs, Spotify) and venue address search (OpenStreetMap); each can be left disabled.
Can it run on a Synology NAS or a Raspberry Pi?
Yes. The Docker image is multi-arch (linux/amd64 + linux/arm64), so it runs on x86 servers, most modern Synology/QNAP NAS models, and a Raspberry Pi 4/5.
Is it a self-hosted alternative to BandHelper, Set List Maker, or Gig-o-Matic? It covers much of the same ground — shared repertoire with keys, setlists, scheduling, availability, and files — with a practice player on top. The trade-off: you host and update it yourself, and in return it is free, private, and has no per-seat pricing.
How many bands and members can I have? Unlimited. One account can belong to several bands and switch between them; each band has its own members, repertoire, and settings.
Is there a hosted version or a public demo? No. Bandplaner is self-hosted only — you run your own instance. Setup with Docker takes about a minute (see below).
Is there a mobile app? No native app. The interface is responsive and works in a phone browser; you can "Add to Home Screen" for an app-like shortcut.
What about GDPR / my members' data? Since you host it, you are the data controller. Bandplaner includes a personal data export and self-service account deletion for every user.
Next.js 16 (App Router), Prisma 7 with SQLite (better-sqlite3 adapter), NextAuth (Auth.js) v5, TypeScript, Tailwind CSS.
npm install
cp .env.example .env # adjust values, see the comments in the file
npx prisma migrate dev
npm run dev
Open http://localhost:3000. On first start, create an account via /register; the first band member automatically becomes the administrator of the first band they create.
For production use, a prebuilt multi-arch Docker image (amd64/arm64) is published at ghcr.io/maxxs78/bandplaner – no local build needed.
Quick start (details, HTTPS/reverse proxy, and platform-specific steps in the installation guide):
mkdir bandplaner && cd bandplaner
curl -fsSLO https://raw.githubusercontent.com/maxxs78/bandplaner/main/docker-compose.yml
curl -fsSL https://raw.githubusercontent.com/maxxs78/bandplaner/main/.env.example -o .env
# edit .env: set AUTH_SECRET (openssl rand -base64 32) and NEXT_PUBLIC_APP_URL
docker compose up -d
Updates: docker compose pull && docker compose up -d. Database migrations run automatically at start; data lives in three named volumes and survives updates.
To modify the code yourself, build the image locally – see docker-compose.build.yml and CONTRIBUTING.md.
Bandplaner is a hobby project, built in spare time.
Bug reports and feature requests are welcome – via the issues using the provided templates. There is no guarantee whether or when anything is implemented.
Pull requests are not accepted. Reviewing and taking responsibility for external code is more than a one-person hobby project can sustain; PRs from forks are closed automatically with a pointer to the issues. Forking and modifying under the AGPL-3.0 is of course allowed. Details: CONTRIBUTING.md.
Please report security vulnerabilities privately – see SECURITY.md, not as a public issue. Code of conduct: CODE_OF_CONDUCT.md.
Bandplaner is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only). Anyone who makes a modified version available over a network must provide its complete source code to users (AGPL § 13); for unmodified use, a pointer to this repository is sufficient.
The software is provided without any warranty, and use is at your own risk (see LICENSE, sections 15–17). For production use and hosting on behalf of others, backups, data protection, and availability are entirely the operator's responsibility.
.zip, and restore it later – as a copy on the same server, or on a different Bandplaner instance to migrate the band. Restoring always creates a brand-new band; nothing is ever overwritten.