Skip to content

ParsonLabs Music is the Self Hosted Audio streaming alternative to YouTube Music, Spotify & Apple Music, providing Unrestricted Access to your library in Uncompressed, Lossless Quality — Head to https://docs.parsonlabs.com/ to get started.

License

Notifications You must be signed in to change notification settings

lineCode/music--

 
 

Repository files navigation

ParsonLabs Music

PWA Shields

ParsonLabs Music is the Self Hosted Audio streaming alternative to YouTube Music, Spotify & Apple Music, providing Unrestricted Access to your library in Uncompressed, Lossless Quality

genres-showcase music-video-home plm-complete genre-selection home-plm music-album-md pfp-showcase music-video updated-lyrics updated-artist ArtistAlbumSearch profile search showcase-home lyrics-showcase music-artist-showcase music-in-your-library music-album-search music-artist-search music-search-did-you-mean music-context-menu music-playlist

Get Started

Docker

Docker Run

docker run -p 1993:1993 ghcr.io/willkirkmanm/music

Docker Compose

services:
  music-server:
    image: ghcr.io/willkirkmanm/music
    container_name: parsonlabs-music
    ports:
      - "1993:1993"
    restart: unless-stopped

Download Precompiled Binaries

You can download the precompiled binaries from the releases page.

Compile From Source

One Liner

git clone https://github.com/WillKirkmanM/music && cd music && OS=$(uname -s) && if [ "$OS" = "Linux" ]; then if [ -f /etc/debian_version ]; then sudo apt-get update && sudo apt-get install -y --no-install-recommends sqlite3 libsqlite3-dev wget make build-essential pkg-config libssl-dev unzip && wget https://www.nasm.us/pub/nasm/releasebuilds/2.16/nasm-2.16.tar.gz && tar xzf nasm-2.16.tar.gz && cd nasm-2.16 && ./configure && make && sudo make install && cd .. && rm -rf nasm-2.16 nasm-2.16.tar.gz && sudo apt-get install -y libssl1.1 && rm -rf /var/lib/apt/lists/* && curl -fsSL https://bun.sh/install | bash && export BUN_INSTALL="$HOME/.bun" && export PATH="$BUN_INSTALL/bin:$PATH" && bun install --global yarn; elif [ -f /etc/arch-release ]; then sudo pacman -Syu --noconfirm sqlite wget make base-devel pkgconf openssl nasm unzip && curl -fsSL https://bun.sh/install | bash && export BUN_INSTALL="$HOME/.bun" && export PATH="$BUN_INSTALL/bin:$PATH" && bun install --global yarn; elif [ -f /etc/fedora-release ]; then sudo dnf install -y sqlite sqlite-devel wget make gcc gcc-c++ kernel-devel pkgconf-pkg-config openssl-devel nasm unzip && curl -fsSL https://bun.sh/install | bash && export BUN_INSTALL="$HOME/.bun" && export PATH="$BUN_INSTALL/bin:$PATH" && bun install --global yarn; elif [ -f /etc/gentoo-release ]; then sudo emerge --sync && sudo emerge --ask sqlite wget make gcc pkgconfig openssl nasm unzip && curl -fsSL https://bun.sh/install | bash && export BUN_INSTALL="$HOME/.bun" && export PATH="$BUN_INSTALL/bin:$PATH" && bun install --global yarn; else echo "Unsupported Linux distribution" && exit 1; fi; else echo "Unsupported OS" && exit 1; fi && bun run build --filter music && cargo build --package music-server --release && cargo run --package music-server --release

Clone the Repository

git clone https://github.com/WillKirkmanM/music

Install Dependencies

Ubuntu

sudo apt-get update && apt-get install -y --no-install-recommends sqlite3 libsqlite3-dev wget make build-essential pkg-config libssl-dev unzip && wget https://www.nasm.us/pub/nasm/releasebuilds/2.16/nasm-2.16.tar.gz && tar xzf nasm-2.16.tar.gz && cd nasm-2.16 && ./configure && make && make install && cd .. && rm -rf nasm-2.16 nasm-2.16.tar.gz && apt-get install -y libssl1.1 && rm -rf /var/lib/apt/lists/* && curl -fsSL https://bun.sh/install | bash && export BUN_INSTALL="$HOME/.bun" && export PATH="$BUN_INSTALL/bin:$PATH" && bun install --global yarn

Arch Linux

sudo pacman -Syu --noconfirm sqlite wget make base-devel pkgconf openssl nasm unzip && curl -fsSL https://bun.sh/install | bash && export BUN_INSTALL="$HOME/.bun" && export PATH="$BUN_INSTALL/bin:$PATH" && bun install --global yarn

Fedora

sudo dnf install -y sqlite sqlite-devel wget make gcc gcc-c++ kernel-devel pkgconf-pkg-config openssl-devel nasm unzip && curl -fsSL https://bun.sh/install | bash && export BUN_INSTALL="$HOME/.bun" && export PATH="$BUN_INSTALL/bin:$PATH" && bun install --global yarn

Gentoo

sudo emerge --sync && sudo emerge --ask sqlite wget make gcc pkgconfig openssl nasm unzip && curl -fsSL https://bun.sh/install | bash && export BUN_INSTALL="$HOME/.bun" && export PATH="$BUN_INSTALL/bin:$PATH" && bun install --global yarn

Build the Website

bun run build --filter music 

Build the Server

cargo build --package music-server --release

Tip

The authentication is handled by JWT Tokens), they require a special JWT_SECRET in order to safely protect your accounts against third parties. It is reccommended to cp .env.example .env and edit the JWT_SECRET= value to something secret, alternatively, you can use openssl to generate a random secret: openssl rand -base64 48.

Run ParsonLabs Music

cargo run --package music-server --release

Note

Done! 🥳. Head to http://localhost:3001/ and setup your music library.

Documentation

Any additional troubleshooting information can be found in the Documentation https://docs.parsonlabs.com.

About

ParsonLabs Music is the Self Hosted Audio streaming alternative to YouTube Music, Spotify & Apple Music, providing Unrestricted Access to your library in Uncompressed, Lossless Quality — Head to https://docs.parsonlabs.com/ to get started.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 61.8%
  • Rust 33.5%
  • MDX 3.3%
  • JavaScript 0.5%
  • Dockerfile 0.4%
  • Astro 0.3%
  • CSS 0.2%