Sequshii

Open beta · v0.9.4

Point it at your music. Open a tab.

Sequshii is a small streaming server for people who keep their own audio files. It reads the folders you already have, leaves your tags alone, and plays everything in the browser.

docker run -p 4533:4533 -v /music:/data sequshii/server

Runs on anything with 512 MB of RAM. No account, no upload step, no rewriting of your files.

Kanto no. 4 Hiroshi Yoshimura FLAC 24/96
1:02 / 4:34

What it does

It reads your library. That's the whole idea.

Most players want you to import, convert, or upload first. Sequshii scans what's on disk and serves it.

FILES

Nothing gets rewritten

Tags, folder structure, and embedded art are read, never modified. The index lives in a separate SQLite file you can delete.

FORMATS

FLAC, ALAC, Opus, MP3, WavPack, DSF

Lossless goes out untouched when the browser can take it. Everything else transcodes on the fly to a per-device profile.

PLAYBACK

Gapless, actually gapless

Pre-buffers the next track and matches the encoder delay, so live albums and DJ mixes play through without the click.

CLIENTS

Subsonic API on the side

Apps that already speak Subsonic can point at Sequshii and work. Useful if you want something native on a phone.

USERS

Separate play state per person

Each account gets its own queue, position, and history. Share the server with the household without sharing a listening record.

SCROBBLING

Last.fm and ListenBrainz

Optional, per user, off by default. Queued locally when the upstream is unreachable and flushed when it comes back.

Getting started

Two files and a folder

Point the volume at wherever your audio lives. The first scan runs at roughly 2,000 tracks a minute on a small VPS; after that it watches for changes.

Full setup, reverse proxy examples, and the configuration reference are in the documentation.

# docker-compose.yml
services:
  sequshii:
    image: sequshii/server:0.9.4
    ports:
      - "127.0.0.1:4533:4533"
    volumes:
      - ./data:/var/lib/sequshii
      - /srv/music:/data:ro
    environment:
      SEQ_SCAN_INTERVAL: 15m
      SEQ_TRANSCODE: auto
    restart: unless-stopped

Specifications

The boring numbers

Sample rates44.1 – 192 kHz, 16/24/32-bit, passed through unchanged where the client supports it
TranscodingOpus, AAC, MP3 via ffmpeg; per-device bitrate ceiling; segments cached on disk
IndexSQLite with FTS5. Around 90 MB per 100,000 tracks including cached artwork.
MemoryIdle 48 MB. Under eight concurrent streams, about 210 MB.
Storage backendsLocal disk, NFS, SMB. S3 is read-only and still rough.
BrowsersFirefox 115+, Chrome 110+, Safari 16.4+. iOS Safari works, background playback is limited.
LicenceFree during beta. Source release once the storage layer settles.