selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Nightingale logo

Self-host Nightingale

v1.3.0

Karaoke app with AI stem separation and pitch scoring

ReleaseOpen SourceGPL-3.0
Updatedlast week
LanguageTypescript
Setup difficultyAdvanced
ThemeDark mode
Stars
1 521
Port
8080 (HTTP server inside container)
Docker
razzaru/nightingale
Install with Docker
Nightingale light theme playback screen

What is Nightingale?

Nightingale is a karaoke application that transforms your personal music library into a karaoke experience using machine learning. It separates vocals from instrumentals using UVR Karaoke or Demucs models, finds or transcribes synchronized lyrics via LRCLIB or WhisperX, and provides real-time pitch scoring with star ratings. The app supports local multiplayer for up to four singers with separate microphones, adjustable key and tempo, customizable backgrounds including GPU shaders and Pixabay videos, and player profiles with score tracking. It runs as a native desktop application on Linux, macOS, and Windows, or as a self-hosted web server on Linux accessible from any device on the LAN. The self-hosted mode uses a single binary that downloads its own isolated Python environment and ML models on first launch. No external database or cache services are required — it uses embedded SQLite for the library and caches analysis artifacts locally.

Should you self-host Nightingale?

Nightingale scores 58/100 on selfhost.directory (how scoring works) and ranks #15 of 54 in Media Streaming. It has 1 521 GitHub stars.

It shipped 9 stable releases in the past year. The latest, v1.3.0, came out on 15 October 2026. New versions land roughly every 3 weeks.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is GPL-3.0-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is Invidious (81/100, 25 799 stars). It scores higher overall, so compare the two before you pick. See Nightingale vs Invidious side by side.

Features

  • CJK lyrics with romanization
  • Customizable backgrounds
  • Gamepad and touch support
  • Key and tempo adjustment
  • Local multiplayer
  • Microphone monitoring and latency calibration
  • Player profiles
  • Real-time pitch scoring
  • Self-hosted web mode
  • Session mode queue management
  • Shared analysis cache
  • Synchronized lyrics
  • UltraStar Deluxe importExperimental
  • Vocal Separation

Nightingale README

How to install Nightingale

Install Nightingale with Docker

Docker Engine, NVIDIA Container Toolkit for GPU
Environment variables
NIGHTINGALE_BIND, NIGHTINGALE_DATA_PATH, NIGHTINGALE_LIBRARY_PATH

docker pull razzaru/nightingale:latest docker run -d
--name nightingale
-p 64448:8080
-v nightingale-data:/data
-v /path/to/your/music:/songs:ro
razzaru/nightingale:latest

CPU image supports AMD64 and ARM64. Use razzaru/nightingale:latest-cuda for GPU.

How to configure Nightingale

  • align_backendwhisperxForced-alignment backend

    Forced-alignment backend

    values: whisperx, ctc, or qwen

  • asr_enginewhisperSelects the transcription engine

    Selects the transcription engine

    values: whisper or parakeet

  • auto_analyzeAutomatically queue unanalyzed songs after they finish

    Automatically queue unanalyzed songs after they finish

    values: true or false

  • batch_sizeBatch size for Whisper

    Batch size for Whisper

  • beam_sizeDecoder beam width for Whisper

    Decoder beam width for Whisper

  • lyrics_horizontal_positionPlayback lyrics horizontal placement

    Playback lyrics horizontal placement

    values: left, center, right

  • lyrics_romanization_modeenabledShows or hides romanized readings above CJK lyrics

    Shows or hides romanized readings above CJK lyrics

    values: enabled or disabled

  • lyrics_scale1.0Playback lyrics display scale

    Playback lyrics display scale

    values: 0.5 to 2.5

  • lyrics_vertical_positionPlayback lyrics vertical placement

    Playback lyrics vertical placement

    values: top, center, bottom

  • master_volume1.0Overall playback volume

    Overall playback volume

    values: 0.0 to 1.0

  • mic_latency_compensation_secSpeaker-to-mic latency compensation for pitch scoring

    Speaker-to-mic latency compensation for pitch scoring

  • mic_monitor_gainLive monitor gain when mic monitoring is on

    Live monitor gain when mic monitoring is on

    values: 0.0–2.0

  • NIGHTINGALE_BIND0.0.0.0:8080Address the server listens on inside the container

    Address the server listens on inside the container

  • NIGHTINGALE_DATA_PATH/dataData + config directory (mount this as a volume)

    Data + config directory (mount this as a volume)

  • NIGHTINGALE_LIBRARY_PATH/songsPin the library to a folder at this in-container path (mount your music here)

    Pin the library to a folder at this in-container path (mount your music here)

  • pitch_graph_scale1.0Pitch graph display scale

    Pitch graph display scale

    values: 0.5 to 2.5

  • PIXABAY_API_KEYemptyPixabay API key for video backgrounds

    Pixabay API key for video backgrounds

  • playback_modePlayback mode: classic or session

    Playback mode: classic or session

    values: classic or session

  • RUNTIME_BASEdebian:bookworm-slimBase image for Docker build

    Base image for Docker build

    values: nvidia/cuda:*-runtime-* for GPU

  • separatorkaraokeStem separation model

    Stem separation model

    values: karaoke (UVR) or demucs

  • vocal_detection_threshold_pct0.15RMS threshold that marks where vocals start and end

    RMS threshold that marks where vocals start and end

    values: 0.0–1.0

  • whisper_modellarge-v3Whisper model size

    Whisper model size

    values: large-v3, large-v3-turbo, medium, small, base, tiny

Nightingale releases & version history

More in Audio Processing

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…