Structure the installers explicitly with clearly defined segments

This commit is contained in:
David Heinemeier Hansson
2025-07-25 16:48:53 -04:00
parent 25acc313b1
commit b5f60f78a8
29 changed files with 67 additions and 44 deletions

View File

@ -0,0 +1,8 @@
#!/bin/bash
yay -S --noconfirm --needed \
cargo clang llvm mise \
imagemagick \
mariadb-libs postgresql-libs \
github-cli \
lazygit lazydocker-bin

View File

@ -0,0 +1,22 @@
#!/bin/bash
yay -S --noconfirm --needed docker docker-compose docker-buildx
# Limit log size to avoid running out of disk
sudo mkdir -p /etc/docker
echo '{"log-driver":"json-file","log-opts":{"max-size":"10m","max-file":"5"}}' | sudo tee /etc/docker/daemon.json
# Start Docker automatically
sudo systemctl enable docker
# Give this user privileged Docker access
sudo usermod -aG docker ${USER}
# Prevent Docker from preventing boot for network-online.target
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/no-block-boot.conf <<'EOF'
[Unit]
DefaultDependencies=no
EOF
sudo systemctl daemon-reload

View File

@ -0,0 +1,26 @@
#!/bin/bash
if ! command -v ufw &>/dev/null; then
yay -S --noconfirm --needed ufw ufw-docker
# Allow nothing in, everything out
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Allow ports for LocalSend
sudo ufw allow 53317/udp
sudo ufw allow 53317/tcp
# Allow SSH in
sudo ufw allow 22/tcp
# Allow Docker containers to use DNS on host
sudo ufw allow in on docker0 to any port 53
# Turn on the firewall
sudo ufw enable
# Turn on Docker protections
sudo ufw-docker install
sudo ufw reload
fi

View File

@ -0,0 +1,12 @@
#!/bin/bash
if ! command -v nvim &>/dev/null; then
yay -S --noconfirm --needed nvim luarocks tree-sitter-cli
# Install LazyVim
rm -rf ~/.config/nvim
git clone https://github.com/LazyVim/starter ~/.config/nvim
cp -R ~/.local/share/omarchy/config/nvim/* ~/.config/nvim/
rm -rf ~/.config/nvim/.git
echo "vim.opt.relativenumber = false" >>~/.config/nvim/lua/config/options.lua
fi

View File

@ -0,0 +1,8 @@
#!/bin/bash
# Install Ruby using gcc-14 for compatibility
yay -S --noconfirm --needed gcc14
mise settings set ruby.ruby_build_opts "CC=gcc-14 CXX=g++-14"
# Trust .ruby-version
mise settings add idiomatic_version_file_enable_tools ruby

View File

@ -0,0 +1,8 @@
#!/bin/bash
yay -S --noconfirm --needed \
wget curl unzip inetutils impala \
fd eza fzf ripgrep zoxide bat jq \
wl-clipboard fastfetch btop \
man tldr less whois plocate bash-completion \
alacritty