homebutler

(β˜… 229)

🏠 Manage your homelab from chat. Single binary, zero dependencies.

File Explorer

ZIP Download
  • .gitignore
  • .golangci.yml
  • .goreleaser.yaml
  • CHANGELOG.md
  • CLAUDE.md
  • CONTRIBUTING.md
  • Dockerfile
  • glama.json
  • go.mod
  • go.sum
  • homebutler.example.yaml
  • install.sh
  • LICENSE
  • llms.txt
  • main.go
  • Makefile
  • README.md
  • server.json

# Use via CDN

jsDelivr

jsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.

Command Glossary

Commands referenced in this DOCs, explained below.

πŸ”

brew install

View Details β–Ό

Install a Homebrew formula or cask.

brew install {{formula|cask}}

Install a formula/cask:

brew install {{[-s|--build-from-source]}} {{formula}}

Build and install a formula from source (dependencies will still be installed from bottles):

brew install {{[-n|--dry-run]}} {{formula|cask}}

Download the manifest, print what would be installed but don't actually install anything:

πŸ”

docker compose up

View Details β–Ό

Start and run Docker services defined in a Compose file.

docker compose up

Start all services defined in the docker-compose file:

docker compose up {{[-d|--detach]}}

Start services in the background (detached mode):

docker compose up --build

Start services and rebuild images before starting:

πŸ”

docker logs

View Details β–Ό

This command is an alias of `docker container logs`.

tldr docker container logs

View documentation for the original command:

πŸ”

docker stop

View Details β–Ό

This command is an alias of `docker container stop`.

tldr docker container stop

View documentation for the original command:

πŸ”

docker

View Details β–Ό

Manage Docker containers and images.
Some subcommands such as `container` and `image` have their own usage documentation.

docker {{[ps|container ls]}} {{[-a|--all]}}

List all Docker containers (running and stopped):

docker {{[run|container run]}} --name {{container_name}} {{image}}

Start a container from an image, with a custom name:

docker container {{start|stop}} {{container_name}}

Start or stop an existing container:

πŸ”

filebrowser

View Details β–Ό

Simple HTTP web server to manage files and directories.

filebrowser

Start a new server instance serving the current directory:

filebrowser {{[-r|--root]}} {{path/to/directory}}

Start a new server instance serving a specific root directory:

filebrowser {{[-a|--address]}} {{host}} {{[-p|--port]}} {{port}} {{[-r|--root]}} {{path/to/directory}}

Start an instance with different host address (defaults to `127.0.0.1`) and port (defaults to `8080`):

πŸ”

git clone

View Details β–Ό

Clone an existing repository.

git clone {{remote_repository_location}} {{path/to/directory}}

Clone an existing repository into a new directory (the default directory is the repository name):

git clone --recursive {{remote_repository_location}}

Clone an existing repository and its submodules:

git clone {{[-n|--no-checkout]}} {{remote_repository_location}}

Clone only the `.git` directory of an existing repository:

πŸ”

gitea

View Details β–Ό

Administer Gitea, a lightweight Git hosting server.
Requires a configured `app.ini` file or environment variables.

gitea web

Run the Gitea web server using the default configuration:

gitea migrate

Create the necessary database schema and tables:

gitea admin {{user list}}

Run administrative subcommands for user management or authentication management:

πŸ”

go install

View Details β–Ό

Compile and install packages named by the import paths.

go install

Compile and install the current package:

go install {{path/to/package}}

Compile and install a specific local package:

go install {{golang.org/x/tools/gopls}}@{{latest}}

Install the latest version of a program, ignoring `go.mod` in the current directory:

πŸ”

npm install

View Details β–Ό

Install Node packages.

npm {{[i|install]}}

Install dependencies listed in `package.json`:

npm {{[i|install]}} {{package_name}}@{{version}}

Download a specific version of a package and add it to the list of dependencies in `package.json`:

npm {{[i|install]}} {{package_name}} {{[-D|--save-dev]}}

Download the latest version of a package and add it to the list of dev dependencies in `package.json`:

πŸ”

npx

View Details β–Ό

This command is an alias of `npm exec`.

tldr npm exec

View documentation for the original command:

πŸ”

tar

View Details β–Ό

Archiving utility.
Often combined with a compression method, such as `gzip` or `bzip2`.

tar cf {{path/to/target.tar}} {{path/to/file1 path/to/file2 ...}}

[c]reate an archive and write it to a [f]ile:

tar czf {{path/to/target.tar.gz}} {{path/to/file1 path/to/file2 ...}}

[c]reate a g[z]ipped archive and write it to a [f]ile:

tar czf {{path/to/target.tar.gz}} {{[-C|--directory]}} {{path/to/directory}} .

[c]reate a g[z]ipped (compressed) archive from a directory using relative paths:

πŸ”

timeout

View Details β–Ό

Run a command with a time limit.

timeout 3s sleep 10

Run `sleep 10` and terminate it after 3 seconds:

timeout {{[-s|--signal]}} {{INT|HUP|KILL|...}} {{5s}} {{sleep 10}}

Send a signal to the command after the time limit expires (`TERM` by default, `kill -l` to list all signals):

timeout {{[-v|--verbose]}} {{0.5s|1m|1h|1d|...}} {{command}}

Send verbose output to `stderr` showing signal sent upon timeout:

πŸ”

watch

View Details β–Ό

Execute a program periodically and monitor the output in full-screen mode.

watch {{command}}

Repeatedly run a command and show the result:

watch {{[-n|--interval]}} 60 {{command}}

Re-run a command every 60 seconds:

watch {{[-d|--differences]}} df

Monitor disk space, highlighting differences as they appear:

πŸ”

ports

View Details β–Ό

Update/list the ports tree on a CRUX system.

ports -u

Update the ports tree:

ports -l

List the ports in the current tree:

ports -d

Check the differences between installed packages and the ports tree:

// repository documentation