jessemillar / dotfiles

A collection of the dotfiles that keep my workstations humming

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

dotfiles

Build Status Docker Pulls

Deploy to Azure

Overview

This repo contains all my dotfiles and application configurations. I use and maintain this repo for a couple reasons:

  1. Quickly setting up new machines from scratch
  2. 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.

Usage

Docker Container

If you're interested in trying out my dev environment quickly, there's a Docker container!

docker run -it jessemillar/dotfiles:latest

General

  1. Make sure your current user has sudo permissions (either has a password or is marked as NOPASSWD in /etc/passwd)

  2. Run the following commands:

    git clone https://github.com/jessemillar/dotfiles.git
    mv dotfiles ~/.dotfiles
    cd ~/.dotfiles
    ./bootstrap.sh
    
  3. Follow "Manual Steps" below

Manual Steps

General

  1. Put necessary workstation SSH keys in ~/.ssh/authorized_keys

  2. Upload ~/.ssh/id_rsa.pub to GitHub

  3. Change the remote URL of local copy of the dotfiles repo to use SSH instead of HTTPS:

    git remote set-url origin git@github.com:jessemillar/dotfiles.git
    
  4. Run workstation-specific Ansible playbooks (e.g. ansible-playbook-work.yml)

  5. Install Aseprite from Humble Bundle or via code compilation

Ansible

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.

Notes

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.

About

A collection of the dotfiles that keep my workstations humming

License:MIT License


Languages

Language:Shell 79.3%Language:Vim Script 17.0%Language:Dockerfile 3.4%Language:HTML 0.3%