Skip to content

Terminal

This page is for the owner, when you are already logged in to the server over SSH and don't want a browser: the shell aliases the repository ships, the terminal tools they open, and how to load them in zsh or bash.

The aliases

scripts/aliases.zsh defines them:

Alias Runs For
health scripts/stack-health One-shot status of the whole stack (Troubleshooting)
update scripts/stack-update Snapshot, update, health check; update --rollback <service> (Updates)
leaktest scripts/vpn-leak-test Proves torrent traffic exits through the VPN (VPN and ports)
indexers scripts/indexers-check Which indexers work (Indexers)
drive-off scripts/drive-off Stops the stack and unmounts the media drive before you switch it off (Storage and boot)
stack cd $MEDIA_STACK_DIR Jump to the repository
qbt qbt-tui What is downloading: torrents, speed, peers, progress
arr managarr Radarr, Sonarr and Lidarr: library, queue, history, blocklist
dock lazydocker Every container: status, logs, CPU and memory, restart

btop needs no alias: run btop for the server's CPU, memory, temperature and processes.

Loading them

The aliases are plain alias lines, so zsh and bash both read them. Add one line to your shell's startup file:

echo 'source ~/homelab-media-stack/scripts/aliases.zsh' >> ~/.zshrc     # zsh
echo 'source ~/homelab-media-stack/scripts/aliases.zsh' >> ~/.bashrc    # bash

Open a new shell (or source the file) to use them. They point at ~/homelab-media-stack unless MEDIA_STACK_DIR is set before the source line (export MEDIA_STACK_DIR=/path/to/homelab-media-stack).

The tools

The repository doesn't install the four terminal tools; install them with your package manager or from their releases. Their settings live in your home folder, and the nightly backup keeps ~/.config/managarr and ~/.config/qbt-tui.

qbt: what is downloading

A live list of every torrent: name, progress, speed, seeds and peers, time left. Arrow keys move, Enter shows details (files, trackers, peers), q quits.

It talks to qBittorrent's API on 127.0.0.1:8080 and needs no login: requests from the Docker network and the tailnet skip it, while the home network must always log in. vpn-port-sync keeps that setting in place.

arr: Radarr, Sonarr and Lidarr

Managarr browses the library, the queue, history and the blocklist, and starts searches, without the web pages. Tab switches between the apps, ? shows the keys. It also works as a plain command, handy in scripts:

managarr radarr list movies
managarr sonarr list series

Its settings, ~/.config/managarr/config.yml, hold API keys: keep it chmod 600.

dock: every container

lazydocker is the quickest answer to "is something broken?": pick a container to see its live logs, CPU and memory; r restarts it and s stops it. The same logs are in Dozzle in the browser (Dashboards).

On a Raspberry Pi 5, use the released binary rather than a local build, which has a known display bug there.

Restarting from here is a real restart: check that nothing is playing in Jellyfin first.

What has no terminal tool

No maintained terminal interface exists for Prowlarr, Bazarr or Jellyfin; Managarr lists Prowlarr and Bazarr as planned. Use their web pages, or Homepage for a summary (Dashboards).