Toolkit · Cassette

How to Install Cassette Player on Mac, Windows, or Linux

Cassette Player runs in Docker. One command, and your music library is live on your local network — ready for the iOS app to connect.

Last updated May 2026 · 10 min read

Prerequisites

Docker

Cassette Player runs inside Docker — a tool that packages software so it works the same way on every computer. If you don't have Docker:

Confirm Docker is running: open Terminal (Mac/Linux) or Command Prompt (Windows) and run docker --version. You should see a version number, not an error.

A music folder

You need a folder on your computer that contains your music files. FLAC, MP3, AAC, OGG, and OPUS are all supported. The files can be organized however you like — by artist, by album, flat — Cassette Player will read the embedded tags and build its own library.

If you don't have music files yet, get some first. The where to buy music guide is a good starting point. Bandcamp and Qobuz both let you download what you purchase as FLAC.

Install Cassette Player

Open Terminal (Mac/Linux) or Command Prompt (Windows). Run this command, replacing the two paths with your actual music folder and a data folder where Cassette Player will store its database:

docker run -d \
  --name cassette-player \
  --restart unless-stopped \
  -v "/path/to/your/music:/music" \
  -v "/path/to/cassette-data:/data" \
  -p 4533:4533 \
  -e ND_MUSICFOLDER=/music \
  -e ND_DATAFOLDER=/data \
  -e ND_SESSIONTIMEOUT=24h \
  -e ND_LOGLEVEL=info \
  deluan/navidrome:latest

Replace /path/to/your/music with the actual path to your music folder. On a Mac this might be /Users/yourname/Music/Library. Replace /path/to/cassette-data with any folder you want to use for the database — for example /Users/yourname/cassette-data. Docker will create it if it doesn't exist.

Screenshot: Terminal after successful install

The first run downloads Cassette Player (about 60 MB). When it finishes, the container starts automatically. Confirm it's running:

docker ps

You should see cassette-player in the list with a status of Up.

First login

Open http://localhost:4533 in your browser. On the first visit, Cassette Player will ask you to create an admin account. Choose a username and password — you'll use these to log in from the iOS app later.

Screenshot: First-run admin setup screen

Add your music

Cassette Player is already watching the music folder you pointed it at. Add or move files into that folder and Cassette Player will pick them up automatically within an hour (or you can trigger a manual scan from Settings → Scanning → Scan Now).

Organize your files however makes sense to you. A common structure is:

Music/
├── Artist Name/
│   ├── Album Title (Year)/
│   │   ├── 01 - Track Title.flac
│   │   ├── 02 - Track Title.flac
│   │   └── ...

Cassette Player reads embedded ID3/Vorbis tags, not folder names, so the structure is just for your own organization. What matters is that the files have proper tags (artist, album, title, year). Most downloads from Bandcamp and Qobuz come correctly tagged.

Verify it works

After a scan completes, you should see your library in the web interface at http://localhost:4533. Browse to an artist, click an album, click a track — it should play in the browser.

Screenshot: Cassette Player library view

If your library doesn't appear: go to Settings → Scanning and trigger a manual scan. Check that the path you used in the Docker command matches where your files actually are.

Next: connect the iOS app

Your library is running. Now put it on your phone.

Set up Cassette for iOS →

You'll need your server address and the credentials you just created.