Plexamp Headless is incredible and lets you turn a Raspberry Pi or other Linux-based computer into an excellent music player. Combined with a DAC and your music in Plex Media Server, you really can't go wrong. Plexamp Headless makes a perfect upgrade to your listening room.

Here's how to get it installed:

I will assume a few things: You've already set up a Raspberry Pi and your DAC if you have one (I recommend a HifiBerry DAC2 Pro), and you also know how to use SSH and the command line to move around a Linux system. I will also assume you have a Plex Media Server running and an active PlexPass subscription.

Step 1: Connect via SSH

ssh [email protected]

Step 2: Update and Upgrade

sudo apt-get update && sudo apt-get upgrade

This may take a few minutes. Install any needed updates.

Step 3: Install Node.js

PlexAmp Headless runs on Node.js, version 16 to be specific. So we need to install this first. Run these commands in order to get it installed:

sudo apt-get install -y ca-certificates curl gnupg && sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

NODE_MAJOR=16

echo deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main | sudo tee /etc/apt/sources.list.d/nodesource.list

sudo apt-get update && sudo apt-get install -y nodejs

Step 4: Check Your Node.js Version

node -v

If, for some reason, the version that is installed is not 16.x, you can use Node Version Manager (NVM) to change it:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash

nvm -v

nvm install v16.20.2

nvm use v16.20.2

Step 5: Install Plexamp Headless

Download and unzip Plexamp Headless

curl https://plexamp.plex.tv/headless/Plexamp-Linux-headless-v4.8.4.tar.bz2 > plexamp.tar.bz2

tar -xvf plexamp.tar.bz2

Step 6: Get Your Plexamp Token

Run PlexAmp for the first time manually to input the claim token:

node plexamp/js/index.js

Visit https://plex.tv/claim, copy the claim code, paste it in the Terminal, and follow the prompts.

Step 7: Give it a try!

Run PlexAmp one more time:

node plexamp/js/index.js

Now visit http://<your_IP_or_Hostname>:32500 in your browser, log in, and choose a library as your source. Double-check your audio settings under Settings>Playback>Audio Output>Audio Device if needed.

Step 8: Setup Plexamp Headless to start automatically as a service

Plexamp ships with a service file for systemd. Here's how to install it:

First, open up the unit file and ensure the paths and user are correct:

nano plexamp/plexamp.service

Double-check every location where the username is called out - the default is pi and adjust accordingly.

Note: if you needed to use NVM when installing Node.JS, the ExecStart command should look something like this:

ExecStart=/home/pi/.nvm/versions/node/v16.20.2/bin/node /home/pi/plexamp/js/index.js

Save the file and return back to the prompt. Let's install the service.

cd plexamp
sudo cp plexamp.service /lib/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable plexamp
sudo systemctl start plexamp

And now, perform a restart just to make sure things are working upon startup.

sudo shutdown -r now

Once you are back online, revisit Plexamp at http://<your_IP_or_Hostname>:32500 in your browser to make sure it comes up.

Moving forward, you can also manage the PlexAmp service using commands like:

# Start Service
$ sudo systemctl start plexamp

# Stop Service
$ sudo systemctl stop plexamp

# Restart Service
$ sudo systemctl restart plexamp

# Check Service Status
$ sudo systemctl status plexamp

Enjoy!

There you have it - Headless Plexamp up and running on your Raspberry Pi. Enjoy your music! 🎧