All apps · 0 apps
Pipe-Bomb
OfficialDocker app from eyezah's Repository
Overview
Readme
View on GitHub
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.
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/pipe-bomb/pipe-bombRuntime arguments
- Web UI
http://[IP]:[PORT:9193]/- Network
bridge- Shell
bash- Privileged
- false
Template configuration
Port Pipe Bomb will be accessible on.
- Target
- 9193
- Default
- 9193
- Value
- 9193
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
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
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
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
Where Pipe Bomb loads plugins from.
- Target
- /srv/api/plugins
- Default
- /mnt/user/appdata/pipe-bomb/plugins
- Value
- /mnt/user/appdata/pipe-bomb/plugins
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
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
Path to your local music library for the local-library plugin.
- Target
- /music
- Default
- /mnt/user/Music
- Value
- /mnt/user/Music
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