diff --git a/docs/installation/production/configuration.md b/docs/installation/production/configuration.md index cc320d23..cdb7c89d 100644 --- a/docs/installation/production/configuration.md +++ b/docs/installation/production/configuration.md @@ -1,6 +1,6 @@ # Configuration -Open the tools container, which includes all the tools needed: +Open the [tools container](../../runbooks/tools-container.md), which includes all the tools needed: === "Docker" diff --git a/docs/runbooks/tools-container.md b/docs/runbooks/tools-container.md new file mode 100644 index 00000000..11640108 --- /dev/null +++ b/docs/runbooks/tools-container.md @@ -0,0 +1,36 @@ +# Tools container + +The tools container makes it easy to get all of the dependencies needed to interact with the homelab. + +## How to open it + +You can use the default Docker wrapper, or use Nix if you have Nix installed + +=== "Docker" + + ```sh + make tools + ``` + +=== "Nix" + + ```sh + nix-shell + ``` + +It will open a shell like this: + +``` +[nix-shell:/home/khuedoan/Documents/homelab]# echo hello +hello +``` + +## How it works + +- All dependencies are defined in `./shell.nix` +- When you run `make tools`, it will run a thin Docker wrapper with the `nixos/nix` image (because not everyone has Nix installed) and mount some required volumes +- `nix-shell` will start an interactive shell based on the Nix expression in `./shell.nix` and install everything from there + +## Known issues + +- If your Docker engine is not running in rootless mode, all files created by the tools container will be owned by `root` diff --git a/mkdocs.yml b/mkdocs.yml index 79466134..c0e7baef 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -64,6 +64,7 @@ nav: - runbooks/documentation.md - runbooks/gitea.md - runbooks/longhorn.md + - runbooks/tools-container.md - runbooks/vault.md - troubleshooting.md - User guide: