Living devenv setup: dotfiles plus Ansible roles to provision common tools on a new machine. Targets Ubuntu / Pop!_OS. May not always work!
NOTE: put extra env vars in ~/.envvars rather than ~/.zshrc.
~/.dotfiles/zshrc sources it automatically, and it stays out of anything Ansible or tools manage.
Recommended -- upgrade a fresh installation, the live boot disk is likely out of date.
sudo apt update
sudo apt upgrade
Run this on a new machine to lay the foundation. It installs a couple base tools and gets you ready to run Ansible. Run it as your normal user (not root); it sudos when needed.
curl -fsSL https://raw.githubusercontent.com/emersonknapp/dotfiles/main/bootstrap.sh | bash
Bootstrap doesn't apply any roles so you can pick what this machine needs.
Playbooks live in ansible/, run one by name with just:
just converge polymath-desktop
converge installs the Galaxy collection dependencies, then runs ansible/<name>.yml.
Playbooks compose roles:
polymath-desktop--ek-base,ek-desktop,polymath-dev
Roles (each self-contained):
ek-base-- shell (oh-my-zsh + zsh), git, tmux, vim, revdiff config; base for any machineek-desktop-- GUI tools: Insync, Vivaldi, VS Code, Regolithpolymath-dev-- Docker, GitHub CLI, Vagrant, kubectl, Tailscalemedia-editing-- MKVToolNix, OBS Studio
- Connect Tailscale:
sudo tailscale up - For pushing to git remotes over SSH, add an SSH key to GitHub
(
ssh-keygen, then upload~/.ssh/id_rsa.pubat https://github.com/settings/keys). The clone uses HTTPS, so this is only needed to push. - For the
ghCLI, set theGITHUB_TOKENenvironment variable.