admin-scripts/justfile

94 lines
3.9 KiB
Makefile
Raw Permalink Normal View History

2024-08-19 15:12:48 -05:00
## Justfile (https://github.com/casey/justfile)
##
## Helps automate various homelab tasks.
set export
2024-08-19 15:12:48 -05:00
distro := `grep -G "\bID\b" /etc/os-release | awk -F= '{print $2}'`
id_like := `grep -G "\bID_LIKE\b" /etc/os-release | awk -F= '{print $2}'`
2024-08-19 15:12:48 -05:00
release := `grep "VERSION_CODENAME" /etc/os-release | awk -F= '{print $2}'`
run_user := env_var("USER")
2025-01-31 21:54:43 -06:00
install-caddy:
2024-10-24 23:52:32 -05:00
#!/usr/bin/env bash
if [ "$distro" == "debian" ]; then
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
elif echo "$id_like" | grep "rhel"; then
sudo dnf install -y 'dnf-command(copr)'
sudo dnf copr enable -y @caddy/caddy
sudo dnf install -y caddy
elif [ "$distro" == "freebsd" ]; then
sudo pkg install -y caddy
fi
2024-08-19 15:12:48 -05:00
2025-01-31 21:54:43 -06:00
install-thelounge:
2024-10-24 23:52:32 -05:00
#!/usr/bin/env bash
if [ "$distro" == "debian" ]; then
curl -s https://api.github.com/repos/thelounge/thelounge-deb/releases/latest | grep "browser_download_url.*deb" | cut -d : -f 2,3 | tr -d '"' | wget -qi -
sudo apt install -y ./thelounge*.deb
rm -fv ./thelounge*.deb
else
echo "This justfile only supports The Lounge on Debian systems."
fi
2024-08-19 15:12:48 -05:00
2025-01-31 21:54:43 -06:00
install-tailscale:
2024-08-19 15:12:48 -05:00
curl -fsSL https://tailscale.com/install.sh | sh
rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
neovim:
sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
mkdir -p "${HOME}/.config/nvim"
wget https://files.hyperreal.coffee/init.vim -O "${HOME}/.config/nvim/init.vim"
2025-02-19 13:44:04 -06:00
nvim -c PlugInstall -c q -c q
2024-08-19 15:12:48 -05:00
neovim-root:
sudo sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'
sudo mkdir -p /root/.config/nvim
sudo wget https://files.hyperreal.coffee/init.vim -O /root/.config/nvim/init.vim
2025-02-19 13:44:04 -06:00
sudo nvim -c PlugInstall -c q -c q
2024-10-27 17:24:58 -05:00
install-dust:
#!/usr/bin/env bash
set -euo pipefail
dl_url=$(curl -s "https://api.github.com/repos/bootandy/dust/releases/latest" | jq '.assets | .[].browser_download_url' | grep "x86_64-unknown-linux-gnu.tar.gz" | tr -d '"')
wget "$dl_url"
filename=$(basename -s .tar.gz dust*)
tar xvf "${filename}.tar.gz"
sudo cp -v "${filename}/dust" /usr/local/bin/
sudo chown root:root /usr/local/bin/dust
rm -rf "$filename" "${filename}.tar.gz"
2024-11-24 07:11:59 -06:00
install-fzf:
#!/usr/bin/env bash
set -euo pipefail
curl -s https://api.github.com/repos/junegunn/fzf/releases/latest | grep "browser_download_url" | grep "linux_$(dpkg --print-architecture)" | cut -d : -f 2,3 | tr -d '"' | wget -qi -
curl -s https://api.github.com/repos/junegunn/fzf/releases/latest | grep "browser_download_url" | grep "checksums.txt" | cut -d : -f 2,3 | tr -d '"' | wget -qi -
if [ $(grep "linux_$(dpkg --print-architecture)" *checksums.txt | sha256sum -c | awk '{print $2}') = "OK" ]; then
tar xvf fzf*.tar.gz
sudo mv fzf /usr/bin/fzf
fi
rm -v fzf*.txt fzf*.tar.gz
2025-01-31 21:54:43 -06:00
auto-podman-compose:
#!/usr/bin/env bash
2025-02-19 13:44:04 -06:00
containers(anonymous-overflow breezewiki dumb freshrss gothub lingva-translate privatebin redlib searxng shaarli)
COMPOSE_DIR="${HOME}/podman-services"
2025-01-31 21:54:43 -06:00
for ctn in "${containers[@]}"; do
cd "${COMPOSE_DIR}/${ctn}"
podman-compose down
podman-compose pull
podman-compose up -d
done
cd "${COMPOSE_DIR}/shaarli"
podman cp material shaarli_shaarli_1:/var/www/shaarli/tpl