Octave

Octave

Docker app from johagan's Repository

Overview

Sync Spotify playlists into Jellyfin, request missing albums in Lidarr, and enrich matching with ListenBrainz and Last.fm. Browser-based setup — no config file editing needed.

Runtime arguments

Web UI
http://[IP]:[PORT:8000]
Network
bridge
Shell
bash
Privileged
false

Template configuration

Web UI PortPorttcp

Octave web interface and API.

Target
8000
Default
8000
Value
8000
Config PathPathrw

Stores config.json (non-secret settings: Jellyfin library ID, playlists list).

Target
/app/config
Default
/mnt/user/appdata/octave/config
Value
/mnt/user/appdata/octave/config
Data PathPathrw

Runtime data: SQLite sync history, credentials (settings.json), Spotify PKCE token, track cache.

Target
/app/data
Default
/mnt/user/appdata/octave/data
Value
/mnt/user/appdata/octave/data
Logs PathPathrw

Octave log files (rotated automatically).

Target
/app/logs
Default
/mnt/user/appdata/octave/logs
Value
/mnt/user/appdata/octave/logs
Spotify Client IDVariable

Required to connect Spotify. Create a free app at developer.spotify.com/dashboard, copy its Client ID here (or into Settings later), and add your Octave callback URL — http://SERVER-IP:8000/callback — to that app's Redirect URIs. PKCE is used, so no client secret is needed.

Target
SPOTIFY_CLIENT_ID
Spotify Redirect URIVariable

Optional. Leave blank to let Octave infer the callback URI. Set this explicitly when using a reverse proxy, e.g. https://octave.example.com/callback.

Target
SPOTIFY_REDIRECT_URI
Jellyfin URLVariable

Optional — use 'Sign in to Jellyfin' in the Settings UI to configure automatically. URL reachable from the Octave container, e.g. http://192.168.1.10:8096 or http://jellyfin:8096.

Target
JELLYFIN_URL
Jellyfin API KeyVariable

Optional — auto-filled by 'Sign in to Jellyfin' in Settings. Jellyfin Dashboard → API Keys.

Target
JELLYFIN_API_KEY
Jellyfin User IDVariable

Optional — auto-filled by 'Sign in to Jellyfin' in Settings. The user ID that will own created playlists.

Target
JELLYFIN_USER_ID
Lidarr URLVariable

Optional — leave unset to disable Lidarr integration. URL reachable from the Octave container, e.g. http://lidarr:8686.

Target
LIDARR_URL
Lidarr API KeyVariable

Optional Lidarr API key. Lidarr → Settings → General → Security → API Key.

Target
LIDARR_API_KEY
Auth UsernameVariable

HTTP Basic Auth username for the web UI. Defaults to 'octave'.

Target
AUTH_USERNAME
Default
octave
Value
octave
Auth PasswordVariable

SECURITY: blank = NO authentication (anyone on the network can access Octave). Set a password before exposing Octave beyond a trusted LAN. Leave blank only for an isolated/LAN-trust setup.

Target
AUTH_PASSWORD
Sync ScheduleVariable

Cron schedule for automatic sync (uses container TZ). Default: 2:00 AM daily. Leave blank to disable scheduled sync.

Target
SYNC_SCHEDULE
Default
0 2 * * *
Value
0 2 * * *
Sync On StartupVariable

Set to 'true' to run a sync when the container starts.

Target
SYNC_ON_STARTUP
Default
false
Value
false
Sync All PlaylistsVariable

Set to 'true' to discover and sync every Spotify playlist the connected account can see. Spotify-owned editorial playlists are skipped automatically.

Target
SYNC_ALL_PLAYLISTS
TimezoneVariable

IANA timezone string for logs and scheduled syncs, e.g. Australia/Sydney.

Target
TZ
Default
UTC
Value
UTC
Log LevelVariable

Python logging level: DEBUG, INFO, WARNING, or ERROR.

Target
LOG_LEVEL
Default
INFO
Value
INFO
ListenBrainz TokenVariable

Optional. ListenBrainz user token from listenbrainz.org/profile/ — enables MusicBrainz ID resolution for better Lidarr matching.

Target
LISTENBRAINZ_TOKEN
Last.fm API KeyVariable

Optional. Last.fm API key from last.fm/api/account/create — enables playcounts and similar-artist discovery.

Target
LASTFM_API_KEY
Last.fm UsernameVariable

Optional. Last.fm username for scrobble history lookups.

Target
LASTFM_USERNAME

Details

Repository
ghcr.io/johagan94/octave:latest
Last Updated2026-06-01
First Seen2026-05-28

Run Octave on Unraid.

Octave is listed in Community Apps for Unraid OS. Explore Unraid to build a flexible home server, NAS, or homelab.