Command Line Usage#
This project includes a Makefile
that provides a variety of
commands to manage your deployment.
homelab
and homelab-compose
You will see the make
command and homelab
used interchangeably
in this documentation. The homelab
command is a convenience wrapper
around make
so you can easily run the Makefile from anywhere.
Add this to your .bashrc
/ .zshrc
to use the homelab
command:
If you'd like to use the docker compose
command from anywhere, you can
do so with the following alias:
homelab help
Usage: homelab [target] (APP=service-name)
* pass APP=service-name to specify the service
* pass ARGS=arguments to specify additional arguments
Homelab 🐳
update Update the service(s) *
pull Pull the latest image(s)*
up Start the service(s)*
down Stop the service(s)*
stop Stop the service(s)*
logs Show the logs*
restart Restart the service(s)*
ps Show the status of the service(s)*
config Show the configuration of the service(s)*
Core Services 🧠
core-up Start just the core services (traefik, oauth2, etc).
core-down Stop just the core services (traefik, oauth2, etc).
core-logs Show the logs for the core services (traefik, oauth2, etc).
Media Services 📺
media-up Start just the media services (plex, sonarr, radarr, etc).
media-down Stop just the media services (plex, sonarr, radarr, etc).
media-logs Show the logs for the media services (plex, sonarr, radarr, etc).
Configuration 🪛
config-acme Initialize the acme.json file.
Backup 🗂️
backup Backup the homelab repo to the ${BACKUP_DIR}.
backup-no-timestamp Backup the homelab repo to the ${BACKUP_DIR} without a timestamp.
Development 🛠
docs Build the documentation.
lint Lint the code with pre-commit.
General 🌐
version Show the version of the project.
help Show this help message and exit
Commands#
The APP
flag
Notice that some commands accept an APP
flag. This flag is used to specify
which docker compose service to run on. If not specified these commands default
to all services.
The ARGS
flag
Some commands accept an ARGS
flag to pass additional flags to docker compose.
If not specified these arguments default to empty.
Homelab 🐳#
update#
Update the homelab service(s) to the latest versions.
* Defaults to all, accepts the APP
flag * Accepts the ARGS
flag
pull#
Pull the latest images for the homelab service(s).
* Defaults to all, accepts the APP
flag * Accepts the ARGS
flag
up#
Start the homelab service(s).
* Defaults to all, accepts the APP
flag * Accepts the ARGS
flag
down#
Stop the homelab service(s).
* Defaults to all, accepts the APP
flag * Accepts the ARGS
flag
stop#
Stop the homelab service(s).
* Defaults to all, accepts the APP
flag * Accepts the ARGS
flag
logs#
Show the logs for the homelab service(s).
* Defaults to all, accepts the APP
flag * Accepts the ARGS
flag
restart#
Restart the homelab service(s).
* Defaults to all, accepts the APP
flag * Accepts the ARGS
flag
ps#
Show the status of the homelab service(s).
config#
Show the configuration of the homelab service(s).
* Defaults to all, accepts the APP
flag * Accepts the ARGS
flag
Core Services 🧠#
core-up#
Start just the core services (traefik, oauth2, etc).
core-down#
Stop just the core services (traefik, oauth2, etc).
core-logs#
Show the logs for the core services (traefik, oauth2, etc).
Media Services 📺#
media-up#
Start just the media services (plex, sonarr, radarr, etc).
media-down#
Stop just the media services (plex, sonarr, radarr, etc).
media-logs#
Show the logs for the media services (plex, sonarr, radarr, etc).
Configuration 🪛#
config-acme#
Initialize the acme.json
file for traefik.
Backup 🗂️#
backup#
Backup the appdata
directory with a timestamp (appdata_YYYYMMDDHHMM.tar.gz
).
* You must provide the BACKUP_DIR
variable
See the backup script documentation
backup-no-timestamp#
Backup the appdata
directory without a timestamp. This
overwrites the previous backup (appdata.tar.gz
)
* You must provide the BACKUP_DIR
variable
See the backup script documentation
Development 🛠#
docs#
Build the documentation.
lint#
Lint the code with pre-commit.
General 🌐#
version#
Show the version of the project.
help#
Show this help message and exit.