Last active
August 17, 2026 01:35
-
-
Save eduwass/712b4403702bf64e43fd26d65f484f98 to your computer and use it in GitHub Desktop.
Omarchy new-box bootstrap (tailscale → keys → dotfiles → replay)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/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