Skip to content

Instantly share code, notes, and snippets.

@eduwass
Last active August 17, 2026 01:35
Show Gist options
  • Select an option

  • Save eduwass/712b4403702bf64e43fd26d65f484f98 to your computer and use it in GitHub Desktop.

Select an option

Save eduwass/712b4403702bf64e43fd26d65f484f98 to your computer and use it in GitHub Desktop.
Omarchy new-box bootstrap (tailscale → keys → dotfiles → replay)
#!/bin/bash
# Guided first-boot setup for a NEW Omarchy machine (e.g. the future Beelink).
# Walks through: tailscale → SSH keys (GitHub + devbox) → dotfiles → replay.
# On the fresh box (dotfiles repo is private, so fetch via the public gist):
# curl -fsSL https://gist.githubusercontent.com/eduwass/712b4403702bf64e43fd26d65f484f98/raw/bootstrap.sh | bash
# Canonical copy lives here; after editing, re-sync the gist:
# gh gist edit 712b4403702bf64e43fd26d65f484f98 -f bootstrap.sh scripts/omarchy/bootstrap.sh
set -uo pipefail
step() { printf '\n\033[1;33m== %s\033[0m\n' "$*"; }
pause() { read -rp "$* — press Enter when done... "; }
step "1/5 Tailscale"
if ! command -v tailscale >/dev/null; then sudo pacman -S --noconfirm tailscale && sudo systemctl enable --now tailscaled; fi
if ! tailscale status >/dev/null 2>&1; then
sudo tailscale up # prints a login URL — approve on any logged-in device
fi
tailscale status | head -3
step "2/5 SSH key"
[ -f ~/.ssh/id_ed25519 ] || ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519 -q
echo "This machine's public key:"; echo; cat ~/.ssh/id_ed25519.pub; echo
echo " a) Add it to GitHub: https://github.com/settings/ssh/new"
echo " b) Authorize on devbox — run on an EXISTING machine:"
echo " ssh devbox \"echo '$(cat ~/.ssh/id_ed25519.pub)' >> ~/.ssh/authorized_keys\""
pause "Do both"
ssh -o StrictHostKeyChecking=accept-new -T git@github.com 2>&1 | head -1
step "3/5 devbox shorthand"
mkdir -p ~/.ssh && grep -q "Host devbox" ~/.ssh/config 2>/dev/null || printf "Host devbox\n HostName devbox\n User eduwass\n" >> ~/.ssh/config
chmod 600 ~/.ssh/config
echo "Try: ssh devbox (asks for your TOTP)"
step "4/5 dotfiles"
mkdir -p ~/Sites
[ -d ~/Sites/dotfiles ] || git clone git@github.com:eduwass/dotfiles.git ~/Sites/dotfiles
[ -d ~/Sites/monotheme ] || git clone git@github.com:eduwass/monotheme.git ~/Sites/monotheme
cd ~/Sites/dotfiles && ./install.sh
step "5/5 personal layer (packages, keyd, ghostty, helium)"
./scripts/omarchy/replay.sh
command -v bun >/dev/null && (cd ~/Sites/monotheme && bun run src/cli.ts set shades-of-purple-super-dark || true)
step "Done"
echo "Reload: hyprctl reload · cheatsheet: Super+K · docs: docs/omarchy-box.md"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment