Pipe-Bomb

Pipe-Bomb

Official

Docker app from Pipe Bomb's Repository

Overview

A self-hosted music streaming platform with a plugin system, flexible attribute schema, and an app-quality client. This is the all-in-one image — the API server, frontend, and nginx proxy all run inside a single container.

Pipe Bomb Docker

Docker Compose setup for running Pipe Bomb. Includes the API server, frontend, and an Nginx reverse proxy that ties them together under a single port.

Getting Started

Docker Compose (recommended)

Suitable for Linux servers or any platform with Docker Compose support.

Download docker-compose.yml:

curl -o docker-compose.yml https://raw.githubusercontent.com/Pipe-Bomb/docker/master/docker-compose.yml

And run it!

docker compose up -d

That's it. Pipe Bomb will be available by default on port 9193. You can configure Pipe Bomb under Docker Compose using the following environment variables:

Variable Default Description
PUBLIC_URL (unset) Only needed if CORS is causing issues. Set to the exact URL you use to access Pipe Bomb (e.g. http://192.168.1.100).
HTTP_PORT 9193 The port nginx listens on.
DATA_PATH ./data/data Where Pipe Bomb stores its database and core data.
RESOURCES_PATH ./data/resources Where Pipe Bomb stores resources such as cover art and thumbnails.
AUDIO_CACHE_PATH ./data/cache Where Pipe Bomb caches audio streams. Safe to clear; audio will be slower to serve until rebuilt.
PLUGIN_CACHE_PATH ./data/plugin-cache Where Pipe Bomb stores plugin-specific cached data. Safe to clear.
PLUGINS_PATH ./data/plugins Where Pipe Bomb loads plugins from.
TEMP_PATH ./data/temp Temporary files used during processing. Does not need to be persisted.
SECRETS_PATH ./data/secrets JWT signing key and other secrets. Must be kept on persistent storage.
MUSIC_PATH ./data/music Path to a local music directory. See Local Music Library.

Single container

Suitable for Unraid, Portainer, and platforms without Docker Compose support.

docker run -d \
  --name pipe-bomb \
  -p 9193:80 \
  -v /path/to/data:/data \
  -v /path/to/resources:/resources \
  -v /path/to/cache:/audio-cache \
  -v /path/to/plugin-cache:/plugin-cache \
  -v /path/to/plugins:/plugins \
  -v /path/to/temp:/temp \
  -v /path/to/music:/music:ro \
  ghcr.io/pipe-bomb/pipe-bomb:latest

Data Storage

Each volume path can be configured independently regardless of how you install your Pipe Bomb. Here's what each one stores:

Volume Persistent Description
data The SQLite database. Contains all users, tracks, artists, albums, playlists, etc. Deleting this effectively resets the server.
resources Stores buffer attribute data such as cover art. Clearing this causes all images to disappear until re-fetched.
audio-cache 🔶 Caches processed audio streams. Safe to clear, but audio may be slower to serve until rebuilt.
plugin-cache 🔶 Stores plugin-specific cached data (e.g. API responses). Safe to clear, but responses will be slower until warmed up again.
plugins Plugin code. Clearing this removes all installed plugins.
temp Temporary files used by plugins during processing. Cleared on server start - does not need to be persisted.
secrets Sensitive files used by the server. Should not be cleared.
music Example volume for passing through local music files. Should not be cleared.

Local Music Library

To expose a local music directory to Pipe Bomb, set MUSIC_PATH in your .env to the path of your music folder. The Local Library plugin will then be able to scan /music inside the container.

Credits & Contributing

Pipe Bomb is conceptualised and developed by eyezah, but contributions are welcome!

Install Pipe-Bomb on Unraid in a few clicks.

Find Pipe-Bomb in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Pipe-Bomb Review the template variables and paths Click Install

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/pipe-bomb/pipe-bomb
Last Updated2026-09-09
First Seen2026-09-09

Runtime arguments

Web UI
http://[IP]:[PORT:9193]/
Network
bridge
Shell
bash
Privileged
false

Template configuration

Web PortPorttcp

Port Pipe Bomb will be accessible on.

Target
9193
Default
9193
Value
9193
Data PathPathrw

Where Pipe Bomb stores its database and core data.

Target
/data
Default
/mnt/user/appdata/pipe-bomb/data
Value
/mnt/user/appdata/pipe-bomb/data
Resources PathPathrw

Where Pipe Bomb stores resources such as album art and thumbnails.

Target
/srv/api/resources
Default
/mnt/user/appdata/pipe-bomb/resources
Value
/mnt/user/appdata/pipe-bomb/resources
Audio Cache PathPathrw

Where Pipe Bomb caches audio files. Recommended to place on a fast drive (e.g. your cache pool).

Target
/srv/api/audio-cache
Default
/mnt/cache/appdata/pipe-bomb/cache
Value
/mnt/cache/appdata/pipe-bomb/cache
Plugin Cache PathPathrw

Where Pipe Bomb stores plugin-related cache files.

Target
/srv/api/plugin-cache
Default
/mnt/user/appdata/pipe-bomb/plugin-cache
Value
/mnt/user/appdata/pipe-bomb/plugin-cache
Plugins PathPathrw

Where Pipe Bomb loads plugins from.

Target
/srv/api/plugins
Default
/mnt/user/appdata/pipe-bomb/plugins
Value
/mnt/user/appdata/pipe-bomb/plugins
Temp PathPathrw

Where Pipe Bomb writes temporary files. Can safely point to fast or ephemeral storage.

Target
/srv/api/temp
Default
/mnt/user/appdata/pipe-bomb/temp
Value
/mnt/user/appdata/pipe-bomb/temp
Secrets PathPathrw

Where Pipe Bomb stores secrets such as the JWT signing key. Keep this on persistent storage.

Target
/srv/api/.secrets
Default
/mnt/user/appdata/pipe-bomb/secrets
Value
/mnt/user/appdata/pipe-bomb/secrets
Music Library PathPathro

Path to your local music library for the local-library plugin.

Target
/music
Default
/mnt/user/Music
Value
/mnt/user/Music
Public URLVariable

Only needed if CORS is causing issues. Set to the exact URL you use to access Pipe Bomb (e.g. http://192.168.1.100 or http://pipebomb.local).

Target
CORS