Installation
on a local virtualbox
- Clone this repo
- Install Vagrant and VirtualBox
vagrant up
vagrant ssh
This will create a clean dev environment with the newest GHC and Cabal. It also includes haskell-vim-now, a vim configured to be a Haskell IDE.
on a public pair programming server
- Clone this repo
- Install Vagrant
- Sign up at DigitalOcean
- Fill out your DigitalOcean client ID and API key in
Vagrantfile
vagrant plugin install vagrant-digitalocean
vagrant box add digital_ocean https://github.com/smdahlen/vagrant-digitalocean/raw/master/box/digital_ocean.box
vagrant up --provider=digital_ocean
vagrant ssh
You'll be logged in to a newly created DigitalOcean "droplet."
ps: for some reason I had to create a ssh key with a password otherwise I could not get ssh access to the box
Included software
- Ubuntu 16.04
- New GHC via Stack
- haskell-vim-now
- SixArm git config
- Firewall, hardened OpenSSH, Fail2ban
- Oh My ZSH, Tmux/wemux
- Mumble voice chat server (port 64738)
Pairing
To pair program with someone you can give them login access by running
pair github_name
They connect to your server by ssh-add
'ing their Github SSH key
and running ssh friend@[your-server-ip]
.
When you're done working with them, run
unpair
Tmux Keybindings
C-a | | Split vertically |
C-a _ | Split horizontally |
C-h | Move to leftward pane |
C-l | Move to rightward pane |
C-j | Move to downward pane |
C-k | Move to upward pane |
C-a [ | Detach cursor to scroll (ENTER stops) |
C-a c | Create new window |
C-a [0-9] | Switch to numbered window |
SSH agent forwarding
To access your github repos on the pairing server while keeping your credentials safe on your lacal machine use agent forwarding.
Edit your local ~/.ssh/config
file and add an entry for your
pair server host.
Host [ip address]
ForwardAgent yes
Before ssh'ing into the pairing server run
ssh-add ~/.ssh/[keyname]
and it will be available remotely. To test agent forwarding run this remotely
ssh -T [email protected]