Getting Started

Baander is a self-hosted media library server for music, movies, and video. Think of it as your own private Spotify or Netflix — it organizes your collection, enriches it with metadata from external sources like Discogs and MusicBrainz, transcodes video for smooth streaming, and serves it to any device through a modern web interface.

Prerequisites

Installation

git clone <repository-url> baander
cd baander

cp .env.example .env
make build
make start

After the containers start, set a Redis password in .env:

REDIS_PASSWORD=a_secure_password

Then restart: make restart.

Initial Setup

After the containers are running, complete these steps in order.

1. Install PHP dependencies

make composer-install

2. Run database migrations

make migrate

This creates the database schema and runs any pending migrations on both the main and test databases.

3. Create an admin user

echo "your-password" | make exec cmd="php bin/console app:user:create admin@example.com Admin --password --role admin"

See the User Management page and the CLI Reference for details.

4. Configure ports (if needed)

By default Baander listens on port 80 (HTTP) and 443 (HTTPS). If those ports are already in use on your machine, set custom ports in .env before starting:

WEB_PORT_HTTP=8080
WEB_PORT_SSL=8443

Then start with make start and visit http://localhost:8080.

5. Set up OAuth clients

make exec cmd="php bin/console app:auth:setup-clients"

The command prints two environment variables. Add them to your .env file:

AUTH_SPA_CLIENT_ID=<printed-id>
AUTH_ELECTRON_CLIENT_ID=<printed-id>

6. Create a media library

make exec cmd="php bin/console app:library:create \"My Music\" /path/to/your/music"

Replace /path/to/your/music with the absolute path to your media directory on the Docker host. This path must be accessible from inside the container (configured as a volume mount in docker-compose.yml).

7. Scan your library

make exec cmd="php bin/console app:library:scan my-music"

Replace my-music with the slug of the library you created. The scan discovers media files, extracts metadata, and populates the database.

8. Open Baander

Visit http://localhost (or whichever port you configured) in your browser. Log in with the admin account you created.

After logging in you'll see the main dashboard with your media library. From there you can browse albums, artists, movies, and videos. The sidebar provides navigation to playlists, search, and settings. Audio plays inline in a persistent player bar at the bottom of the screen; video opens in a built-in player with quality selection.

What's Next