No description
  • Shell 89.6%
  • Ruby 9.7%
  • Makefile 0.7%
Find a file
Kevin Sivic 5c6df3790b
All checks were successful
Test / test (push) Successful in 13s
feat: link workspace CLAUDE.md and homelab deploy doc
Documents how app repos, deploy repos and the self-hosted runner fit
together, versioned here so it follows to new machines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0163N8N6e564AmzKJVuH1vdc
2026-10-13 22:17:54 -04:00
.forgejo/workflows ci: run bats tests on push 2026-08-16 22:06:29 -04:00
dotfiles feat: link workspace CLAUDE.md and homelab deploy doc 2026-10-13 22:17:54 -04:00
tests feat: link workspace CLAUDE.md and homelab deploy doc 2026-10-13 22:17:54 -04:00
.gitignore chore: scaffold laptop-setup repo 2026-08-16 21:56:56 -04:00
bootstrap.sh fix: support dnf-based distros in install_linux_build_tools 2026-08-16 22:58:05 -04:00
Brewfile fix: make colima macOS-only in Brewfile 2026-08-16 22:59:31 -04:00
CLAUDE.md chore: scaffold laptop-setup repo 2026-08-16 21:56:56 -04:00
link.sh feat: link workspace CLAUDE.md and homelab deploy doc 2026-10-13 22:17:54 -04:00
macos-defaults.sh feat: apply macOS defaults on Darwin 2026-08-16 22:54:38 -04:00
Makefile chore: scaffold laptop-setup repo 2026-08-16 21:56:56 -04:00
README.md feat: link workspace CLAUDE.md and homelab deploy doc 2026-10-13 22:17:54 -04:00

laptop-setup

Bootstraps a new macOS or Linux laptop to match Kevin's dev setup: packages, shell config, git config, SSH scaffolding, and VS Code settings.

Usage

git clone https://forgejo.sivic.me/kevinsivic/laptop-setup.git
cd laptop-setup
./bootstrap.sh

bootstrap.sh will:

  1. Detect macOS vs Linux (uname -s).
  2. Install Homebrew if it's missing, and oh-my-zsh if it's missing.
  3. Run brew bundle --file=Brewfile to install the curated package list.
  4. On macOS, ask whether to install JetBrains Toolbox (not part of the curated list — it's optional).
  5. Symlink the files in dotfiles/ into place, backing up anything that's already there (see link.sh). This includes .zprofile, which puts Homebrew on PATH for future shell sessions.
  6. On macOS, apply the macos-defaults.sh System Settings (currently just Dock autohide/tilesize — the only settings actually customized on this machine).

Linux support is best-effort via Homebrew-on-Linux and hasn't been run on real Linux hardware yet.

Claude Code config

bootstrap.sh also links the global Claude Code CLAUDE.md and settings.json (including the agent-deck-driven hooks — installed via the Brewfile). The four custom skills (ai-patterns, nullables, refactoring, tdd) are symlinks into a separate repo, kodyfintak-os/skill-factory, which isn't cloned automatically. Clone it to ~/Develop/professional/skill-factory yourself (it needs its own GitHub access) before running bootstrap.sh if you want those skills linked; if it's missing, link.sh just skips them with a warning instead of failing.

It also links a workspace-level CLAUDE.md into ~/Develop/personal/, plus docs/homelab-deploy.md beside it. Together they describe how app repos, deploy repos and the self-hosted Forgejo runner fit together.

Secrets

Nothing in this repo should ever contain tokens or credentials. dotfiles/zshrc sources ~/.zshrc.local (untracked, created manually per machine) for anything machine-specific or secret.

Testing

make test

Runs the bats-core suite in tests/, which covers the symlinking logic in link.sh.