Self-serving dotfiles installer for Linux/Debian boxes (SSH / remote VMs / devcontainers). One command sets up Oh-My-Zsh, zsh plugins, and my config files (zsh, tmux, vim, htop, and Claude Code).
curl -fsSL https://setup.decentturing.com | zshAn interactive run prompts you to pick a tagged version (use immutable tags for
reproducible installs). It is safe to re-run — anything it would overwrite is
copied to ~/.dotfiles-backup-<timestamp>/ first.
- Installs Oh-My-Zsh pinned to a commit SHA (no piping an upstream installer to
sh). - Installs zsh plugins, each cloned by tag and verified against a pinned commit SHA
(detects moved/tampered tags):
zsh-syntax-highlighting,zsh-autosuggestions,you-should-use.gitandkubectlare built-in Oh-My-Zsh plugins. - Fetches config files for this ref:
zshrc→~/.zshrc,fernandoataoldotcom-functions.zsh(custom functions, e.g.go-rebase),tmux.conf,vimrc(+ vim-plug),htoprc, andclaude-settings.json→~/.claude/settings.json. - Runs
vim +PlugInstallifvimis present. - Installs the Claude Code CLI (skipped if already present): via
npmwhen a Node toolchain exists, otherwise via Anthropic's official native installer (user-local, no Node/sudo). Runclaudeonce afterwards to authenticate.
It does not install system packages. Install these yourself if missing:
tmux (>=3.2) gh jq kubectl vimClaude Code: the installer places ~/.claude/settings.json and installs the
claude CLI (via npm, or the official native installer when Node is absent).
Authentication isn't automated — run claude once after install to sign in. The
native installer is fetched with curl ... | bash; if you'd rather not run a
remote installer, install the CLI yourself and the script will detect and skip it.
REPO_RAW=<url>— explicit config source (overrides everything; e.g.file:///repofor tests).DOTFILES_REF=<tag>orzsh -s -- <tag>— pick a ref non-interactively (no TTY).DOTFILES_RESOLVE_ONLY=1— dry run: print the resolvedREPO_RAWand exit.
setup.decentturing.com serves the install script via Cloudflare Pages:
- Pages → Create a project → Connect to Git, select this repo. No build command;
output directory = repo root (
/). _headersforcesContent-Type: text/plainso the browser renders the script andcurl | zshstays clean._redirectsrewrites/→/install(200) so the root URL serves the installer (no path needed).- Custom domains → Set up a domain →
setup.decentturing.com(DNS + TLS are automatic since the zone is on Cloudflare).
Cut a tag to enable the version picker and reproducible installs:
git tag v1 && git push --tagsThis repo is public and the deployed files are public by design (a bootstrap script
is fetched unauthenticated). Never commit secrets. ~/.zshrc references
GH_PAT/GITHUB_TOKEN by environment variable only — no values are stored here.
Dependencies are version-pinned for supply-chain safety; bump them deliberately.