Skip to main content

homebutler install

Installs a self-hosted app with Docker Compose, and stops or removes it later.

install <app> runs prerequisite checks, writes a Compose file under ~/.homebutler/apps/<app>/, and runs docker compose up -d. App data lives in the same folder. An app counts as installed when ~/.homebutler/apps/<app>/docker-compose.yml exists.

The human-readable output of install list, status, uninstall, and purge goes to standard error. Redirect with 2>&1 to capture it.

For the app list and what each install creates, see Install apps.

CommandWhat it does
listLists the apps you can install.
purgeStops an app and deletes its data.
statusReports whether an installed app is running.
uninstallStops an app and removes its containers, and keeps its data.

install​

Installs the app named on the command line. The apps are gitea, portainer, jellyfin, stirling-pdf, speedtest-tracker, mealie, plex, vaultwarden, filebrowser, adguard-home, nginx-proxy-manager, uptime-kuma, it-tools, homepage, and pi-hole.

homebutler install <app> [options]
homebutler install [command]
ArgumentDescription
appApp name, from homebutler install list.
FlagTypeDefaultDescription
--dry-runbooleanfalsePrint the Compose file and the command that would run, and change nothing.
--mediastring-Host folder to mount as the media library. Used by jellyfin; the mount is read-only.
--portstring-Host port for the app. Each app has its own default container port, shown in the dry run.

Preview an install on a custom port. Nothing is installed.

homebutler install uptime-kuma --dry-run --port 8504
🔍 Checking prerequisites for uptime-kuma...
✅ All checks passed

📦 Installing uptime-kuma
Port: 8504 (default: 3001)
Path: /home/you/.homebutler/apps/uptime-kuma

✨ [Dry Run] Rendered docker-compose.yml for uptime-kuma:

services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: unless-stopped
ports:
- "8504:3001"
volumes:
- "/home/you/.homebutler/apps/uptime-kuma/data:/app/data"
environment:
- PUID=501
- PGID=1000

✨ [Dry Run] Would run: docker compose -f /home/you/.homebutler/apps/uptime-kuma/docker-compose.yml up -d

An unknown app name lists the available apps.

homebutler install nothing
error: unknown app "nothing". Available: it-tools, uptime-kuma, stirling-pdf, speedtest-tracker, mealie, portainer, plex, filebrowser, jellyfin, gitea, homepage, pi-hole, adguard-home, vaultwarden, nginx-proxy-manager

install list​

Lists the apps you can install.

homebutler install list [flags]

Alias: ls.

homebutler install list 2>&1
📦 Available apps (15):

it-tools Collection of developer utilities (JSON, Base64, Hash, etc.)
speedtest-tracker Internet speed test tracker with historical data and graphs
stirling-pdf All-in-one PDF manipulation tool (merge, split, convert, OCR)
mealie Self-hosted recipe manager and meal planner
filebrowser Web-based file manager. Its upstream project is archived and gets no further releases or security fixes
uptime-kuma A self-hosted monitoring tool
plex Plex Media Server - organize and stream your media
vaultwarden Lightweight Bitwarden-compatible password manager
homepage Modern dashboard for your homelab with service integration
pi-hole Network-wide ad blocking via DNS filtering
portainer Docker management GUI with container, image, and volume control
nginx-proxy-manager Reverse proxy with SSL termination and web UI for managing hosts
jellyfin Free software media system for streaming movies, TV, and music
gitea Lightweight self-hosted Git service
adguard-home DNS-based ad blocker and privacy protection

Usage: homebutler install <app>

install purge​

Stops an app and deletes its data.

homebutler install purge <app> [flags]
ArgumentDescription
appApp name.
Purge deletes data

purge runs docker compose down -v, removes the app's unused anonymous volumes, and deletes the folder ~/.homebutler/apps/<app>/ with the data in it.

For an app that is not installed, the command is an error.

homebutler install purge uptime-kuma
⚠️ Purging uptime-kuma (containers + data)...
error: uptime-kuma is not installed

install status​

Reports whether an installed app is running.

homebutler install status <app> [flags]
ArgumentDescription
appApp name.

For an app that is not installed, the command is an error.

homebutler install status uptime-kuma
error: uptime-kuma is not installed

install uninstall​

Stops an app and removes its containers, and keeps its data.

homebutler install uninstall <app> [flags]

Alias: rm.

ArgumentDescription
appApp name.

For an app that is not installed, the command is an error.

homebutler install uninstall uptime-kuma
🛑 Stopping uptime-kuma...
error: uptime-kuma is not installed