Logo

Docs

Configuration

Environment variables and the data folder

juuz is configured with environment variables. Booleans accept 1, true, yes, on, 0, false, no and off.

Environment variables

VariableDefaultDescription
JUUZ_ADMIN_PASSWORDrandom, logged oncePassword of the admin user
JUUZ_OMMtrueSet false to stop sending track names to OpenMusicMetadata
JUUZ_LASTFM_API_KEYunsetLast.fm API key. Scrobbling is off without it
JUUZ_LASTFM_SECRETunsetLast.fm shared secret
RUST_LOGjuuz=info,tower_http=warnLog filter
NO_COLORunsetDisable colored log output

Last.fm

Set both JUUZ_LASTFM_API_KEY and JUUZ_LASTFM_SECRET. With only one of them, Last.fm stays disabled and juuz logs a warning.

OpenMusicMetadata

With JUUZ_OMM on, juuz sends track details such as title, artist, album and duration to https://api.vleer.app/metadata/v1 to match songs and fill in missing tags. Nothing is written to your files for matching alone. Set JUUZ_OMM=false to turn it off. See OpenMusicMetadata for the API.

Last.fm

Create an API account at last.fm/api, set both variables and restart. Each user links their account once:

  1. Call juuzLastfmAuthUrl, open the returned url and allow access.
  2. Call juuzLastfmLink?token=<token> with the returned token.

After that every scrobble from any app is forwarded to Last.fm as now playing and as a scrobble.

Folders

In the Docker image the working directory is /, so juuz uses /data and /music. When started elsewhere it uses ./data and ./music relative to the working directory.

PathDescription
music/Your library. Scanned on start and watched for changes
music/.juuz-tmpTemporary files of in-progress uploads
data/juuz.dbSQLite database
data/secret.key32 byte key, created on first start with mode 0600
data/cache/artCover art cache
data/cache/omm-artArtwork fetched through OpenMusicMetadata
data/cache/transcodeTranscoded streams
data/podcastsDownloaded podcast episodes

Keep secret.key

secret.key encrypts the stored passwords used for token login and the Last.fm session keys. Back it up with the database. If it is lost, tokens stop working until each user logs in with a password again, and Last.fm accounts have to be linked again.

Fixed defaults

These are not configurable yet.

SettingValue
Listen address0.0.0.0:4533
Library scanOn start, then watched
Song uploadEnabled, up to 2 GiB
Cover and lyrics uploadUp to 10 MiB
Podcast episode sizeUp to 2 GiB
Podcasts from private hostsBlocked
Lyrics providerhttps://lrclib.net/api

On this page