This repo contains all my dotfiles and application configurations. I use and maintain this repo for a couple reasons:
- Quickly setting up new machines from scratch
- Syncing configs between workstations
I utilize a combination of GNU Stow and Ansible to manage my setups. Stow quickly creates symlinks between this repo and my home directory without the need for maintaining manual scripts. Ansible uses human-readable .yml
configuration files to install applications and development dependencies in a reproducible way.
If you're interested in trying out my dev environment quickly, there's a Docker container!
docker run -it jessemillar/dotfiles:latest
-
Make sure your current user has
sudo
permissions (either has a password or is marked asNOPASSWD
in/etc/passwd
) -
Run the following commands:
git clone https://github.com/jessemillar/dotfiles.git mv dotfiles ~/.dotfiles cd ~/.dotfiles ./bootstrap.sh
-
Follow "Manual Steps" below
-
Put necessary workstation SSH keys in
~/.ssh/authorized_keys
-
Upload
~/.ssh/id_rsa.pub
to GitHub -
Change the remote URL of local copy of the dotfiles repo to use SSH instead of HTTPS:
git remote set-url origin [email protected]:jessemillar/dotfiles.git
-
Run workstation-specific Ansible playbooks (e.g.
ansible-playbook-work.yml
) -
Install Aseprite from Humble Bundle or via code compilation
ansible-playbook-main.yml
is a combination of multiple playbooks that get my system up to speed quickly with minimal user interaction. There are a few Ansible playbooks included in the repo that are not called as part of ansible-playbook-main.yml
. Depending on which machine I'm configuring, I'll manually run one (or all) of the non-included playbooks via ansible-playbook PLAYBOOK
after the successful completion of ansible-playbook-main.yml
.
I'm most comfortable with Unix systems and mostly use Unix systems. That said, this repo is assumed to be Unix-centric with the exception of the /windows
directory.