# Distoolbox Distrobox? Toolbox? Whatever you want. - [Distoolbox](#distoolbox) - [Reese's Arch Distoolbox](#reeses-arch-distoolbox) - [Using Reese's Arch Toolbox](#using-reeses-arch-toolbox) - [CPU Image with Distrobox](#cpu-image-with-distrobox) - [AMD GPU Image with Distrobox](#amd-gpu-image-with-distrobox) - [CPU Image with Toolbox](#cpu-image-with-toolbox) - [AMD GPU Image with Toolbox](#amd-gpu-image-with-toolbox) - [Building Reese's Arch Toolbox](#building-reeses-arch-toolbox) ```bash # Create and use an Arch Toolbox toolbox create --distro arch toolbox enter arch-toolbox-latest ``` I'd recommend adding this alias to your `.bashrc` to make things easier ```bash # Toolbox quick enter alias tbox='SHELL=zsh toolbox enter arch-toolbox-latest' ``` ## Reese's Arch Distoolbox I have a custom arch image based on the default arch-toolbox image. It offers: - zsh with many completions installed/enabled - vim - nslookup - iperf3 - kubectl - helm - nethogs - python, pip, and pipx - ansible - aws cli - podman (connected automatically to the host machine via the unix socket) - tmux - ffmpeg - wine - podman - unzip - bat - btop - jq - yq - imagemagick - code ## Using Reese's Arch Toolbox If you don't know whether to use distrobox or toolbox: - If you're on Fedora, and you haven't used either, toolbox is built-in - If you understand toolbox and you've never used distrobox, try distrobox - If you understand distrobox and you've never used toolbox, try toolbox - If you care what I use: distrobox Copy the relevant aliases below into your `.bashrc`. Run `ntbox` the first time to create a new toolbox. Run `tbox` anytime you want to enter the toolbox. Run `rtbox` to delete the toolbox. ### CPU Image with Distrobox Add the following to your `.bashrc` ```bash # Reese's Toolbox Commands export TBOX_REPO='gitea.reeseapps.com/services' export TBOX_IMAGE='arch-toolbox' export TBOX_TAG='latest' export TBOX_NAME="$TBOX_IMAGE-$TBOX_TAG" # Creates a new toolbox alias ntbox="distrobox create --name $TBOX_NAME --image $TBOX_REPO/$TBOX_IMAGE:$TBOX_TAG" # Enters the toolbox when you want to use it, you'll be running this all the time alias tbox="distrobox enter $TBOX_NAME" # Removes the toolbox alias rtbox="distrobox stop $TBOX_NAME --yes" ``` ### AMD GPU Image with Distrobox This was built and tested for a Framework 16 with GPU module. Add the following to your `.bashrc` ```bash # Reese's Toolbox Commands export TBOX_REPO='gitea.reeseapps.com/services' export TBOX_IMAGE='arch-toolbox-amdgpu' export TBOX_TAG='latest' export TBOX_NAME="$TBOX_IMAGE-$TBOX_TAG" # Creates a new toolbox alias ntbox="distrobox create --name $TBOX_NAME --image $TBOX_REPO/$TBOX_IMAGE:$TBOX_TAG" # Enters the toolbox when you want to use it, you'll be running this all the time alias tbox="distrobox enter $TBOX_NAME -- /bin/zsh" # Removes the toolbox alias rtbox="distrobox stop $TBOX_NAME --yes" ``` ### CPU Image with Toolbox ```bash # Reese's Toolbox Commands export TBOX_REPO='gitea.reeseapps.com/services' export TBOX_IMAGE='arch-toolbox' export TBOX_TAG='latest' export TBOX_NAME="$TBOX_IMAGE-$TBOX_TAG" # Creates a new toolbox alias ntbox="toolbox create -i $TBOX_REPO/$TBOX_IMAGE:$TBOX_TAG" # Enters the toolbox when you want to use it, you'll be running this all the time alias tbox="SHELL=/bin/zsh toolbox enter $TBOX_NAME" # Removes the toolbox alias rtbox="podman container stop $TBOX_NAME && podman container rm $TBOX_NAME" ``` ### AMD GPU Image with Toolbox This was built and tested for a Framework 16 with GPU module. Add the following to your `.bashrc` ```bash # Reese's Toolbox Commands export TBOX_REPO='gitea.reeseapps.com/services' export TBOX_IMAGE='arch-toolbox-amdgpu' export TBOX_TAG='latest' export TBOX_NAME="$TBOX_IMAGE-$TBOX_TAG" # Creates a new toolbox alias ntbox="toolbox create -i $TBOX_REPO/$TBOX_IMAGE:$TBOX_TAG" # Enters the toolbox when you want to use it, you'll be running this all the time alias tbox="SHELL=/bin/zsh toolbox enter $TBOX_NAME" # Removes the toolbox alias rtbox="podman container stop $TBOX_NAME && podman container rm $TBOX_NAME" ``` ## Building Reese's Arch Toolbox You can build and run the image wit this (See `Containerfile` in this directory): ```bash # Build latest image podman build \ --no-cache \ -t gitea.reeseapps.com/services/arch-toolbox:latest \ -f ./infrastructure/graduated/fedora/Containerfile # Test with podman podman run -it --rm gitea.reeseapps.com/services/arch-toolbox:latest ``` In vscode you can set this as your default build task for homelab and trigger it with `ctrl shift B` .vscode/tasks.json ```json { // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "Build arch-toolbox", "type": "shell", "command": "./infrastructure/graduated/fedora/arch-build.sh", "problemMatcher": [], "group": { "kind": "build", "isDefault": true } } ] } ```