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.

euterpe logo

Self-host euterpe

v1.6.3

Self-hosted music streaming server with web UI and REST API

ReleaseOpen SourceGPL-3.0
Updated10 months ago
LanguageGo
Setup difficultyEasy
MobileNative app
ThemeDark mode
Stars
572
Ports
9996 (HTTP/HTTPS server), 443 (HTTPS (configurable))
Docker
ironsmile/euterpe
Install with Docker
Euterpe Web UI in dark mode showing music library browserEuterpe Web UI in light mode showing music library browserEuterpe mobile app interface on Android/iOSEuterpe login page with authenticationEuterpe Rhythmbox plugin integrated in GNOME desktopEuterpe GTK standalone client for Linux desktop and mobile

What is euterpe?

Euterpe is a self-hosted music streaming server designed for personal use, giving you full control over your music library without subscription fees or tracking. It indexes your local music files and serves them over HTTP/HTTPS with a built-in web UI that supports searching, browsing, playlists, and album downloads. The server is a single Go binary with no external database dependencies, using SQLite for metadata storage. It supports common audio formats including MP3, FLAC, OGG, WAV, M4A, and Opus. Features include automatic album artwork from Cover Art Archive, artist images from Discogs, HTTP Basic and Bearer token authentication, a stable REST API for third-party clients, and media key control on macOS via BeardedSpice. Native mobile apps for iOS/Android (React Native), a GTK client for Linux desktop/mobile, and a Rhythmbox plugin are available. Deployment options include Docker, binary releases, and systemd service. The project has been in active development since 2013 and is licensed under GPL-3.0.

Should you self-host euterpe?

euterpe scores 53/100 on selfhost.directory (how scoring works) and ranks #18 of 59 in Music Streaming. It has 572 GitHub stars.

It shipped 1 stable release in the past year. The latest, v1.6.3, came out on 1 January 2026.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is GPL-3.0-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is Navidrome Music Server (80/100, 24 411 stars). It scores higher overall, so compare the two before you pick. See euterpe vs Navidrome Music Server side by side.

Features

  • Album artwork
  • Album download
  • Artist images
  • Authentication
  • Desktop clients
  • HTTPS Support
  • Media key controlRequires third-party BeardedSpice app
  • Multiple Audio Formats
  • Music Streaming
  • Playlists
  • REST API
  • Search
  • Single Binary
  • Web UI

euterpe README

How to install euterpe

Install euterpe with Docker

Docker

docker run -v "${HOME}/Music/:/root/Music" -p 8080:9996 ironsmile/euterpe:latest euterpe

Mount music directory and map port 8080 to container port 9996

How to configure euterpe

  • authenticationUser, password, and JWT secret for authentication

    User, password, and JWT secret for authentication

    values: object with user, password, secret

  • basic_authenticatetrueRequire HTTP basic authentication on every request

    Require HTTP basic authentication on every request

    values: true, false

  • discogs_auth_tokenPersonal access token for Discogs API to fetch artist images

    Personal access token for Discogs API to fetch artist images

    values: string token

  • download_artworkfalseAutomatically fetch album artwork from Cover Art Archive and artist images from Discogs

    Automatically fetch album artwork from Cover Art Archive and artist images from Discogs

    values: true, false

  • gzipEnable gzip compression for HTTP responses

    Enable gzip compression for HTTP responses

    values: true, false

  • librariesArray of filesystem paths to scan for media files

    Array of filesystem paths to scan for media files

    values: array of strings

  • listen:443Address and port on which Euterpe will listen (e.g., :443, 127.0.0.1:8080)

    Address and port on which Euterpe will listen (e.g., :443, 127.0.0.1:8080)

    values: hostname[:port] format

  • log_fileLog file name (relative to config directory)

    Log file name (relative to config directory)

    values: string path

  • max_header_bytesMaximum size of request headers in bytes

    Maximum size of request headers in bytes

    values: integer

  • read_timeoutMaximum seconds to read incoming requests

    Maximum seconds to read incoming requests

    values: integer

  • sqlite_databaseSQLite database file name for media metadata

    SQLite database file name for media metadata

    values: string path

  • ssltrueEnable HTTPS using certificate from ssl_certificate

    Enable HTTPS using certificate from ssl_certificate

    values: true, false

  • ssl_certificatePaths to certificate and key files

    Paths to certificate and key files

    values: object with crt and key paths

  • write_timeoutMaximum seconds to send response to client

    Maximum seconds to send response to client

    values: integer

euterpe releases & version history

More in Audio Streaming

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…