Development VM Image

Brendan Long edited this page Dec 5, 2016 · 16 revisions

Getting Started

In the interest of making it easier to contribute code to LessWrong, the Public Goods Team has commissioned the creation of a virtual machine image configured to host the site. Now, all you have to do is use vagrant to set up the virtual machine and do a little tweaking at the end.

Install VirtualBox, Vagrant, and Ansible:

Note: you will likely need the older versions Virtual Box 5.0 and Vagrant 1.7.4. There appears to be a bug in later versions that is incompatible with the existing Vagrantfile

  • VirtualBox
  • Vagrant
  • Ansible

    • On some machines you will also need to manually install the Ansible roles:

      sudo ansible-galaxy install geerlingguy.apache azavea.postgresql

Make the Virtual Machine:

Before you begin, make sure you're developing on a case-sensitive filesystem. This is almost certainly the case for GNU/Linux users. People developing on OS X should make a case-sensitive disk image using Disk Utility and keep the checkout inside that image.

Check out, clone or fork-and-check-out the lesswrong source. Check out the submodules (except config/cap-tasks, which is only relevant for production):

/path/to/lesswrong$ git submodule init
/path/to/lesswrong$ git submodule deinit config/cap-tasks

If you are planning on merging your work into the master branch and have the necessary credentials to do so, then also run:

/path/to/lesswrong$ git submodule update

The Vagrantfile is in the root of the repository. cd there and run vagrant up, then wait a little. See here if you get the error message "The provider 'libvirt' could not be found, but was requested to back the machine 'default'. Please use a provider that exists.". If you get an error about failing to become user postgres, see the instructions above about installing Ansible roles.

You should now have a running VM, but there's still a couple of things left to do:

Lesswrong likes to be served from a given domain. Make an entry in /etc/hosts:   lesswrong.local

Start the paster server:

/path/to/lesswrong$ vagrant ssh
vagrant@precise64:~$ cd /vagrant/r2
vagrant@precise64:/vagrant/r2$ paster serve --reload development.ini

Initial Configuration

You can now point your browser to http://lesswrong.local:8080 and get sensible-looking pages. An "admin" user has been created with a default password of "swordfish".

Running Tests

The various testing methods (unit tests, manual tests, selenium tests) are all specified in the hacking page.



As you acquaint yourself with the Less Wrong source, consider summarizing your insights in this wiki to lower the barrier to contribution from others.


Bugs/Issues are tracked here:


TrikeApps updates the site based on pull requests through github.

Additional Resources