Skip to content

Setting Up Your Development Environment

Alex Richard edited this page Sep 1, 2015 · 15 revisions

Getting Started

Step 1: Install VirtualBox and Vagrant

Step 2: Make the Virtual Machine

Before you begin, make sure you're developing on a case-sensitive filesystem. This is almost certainly the case for Linux users.

If you're on OS X, (1) make a case-sensitive disk image using the application called Disk Utility. Open Disk Utility and create a new disk image like here:

Then cd to that disk image, and git clone the EA Forum within that disk image.

Step 3: Run the following submodules

Check out the submodules (except config/cap-tasks, which is only relevant for production):

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

Step 4: Run the Vagrantfile

The Vagrantfile is in the root of the repository. cd there and run vagrant up, then wait a little. It may take awhile. (Typical runtimes on Alex's laptop are 10-20-ish minutes.)

Step 5: Start the Actual Server

Start the paster server:

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

If you see 2015-07-05 23:00:23 : WSGIServer starting up, that means the server is running -- go to the next step.

Here's an example of the command history from all the above steps, and the full terminal output from this.

Step 6: Browse

You can now point your browser to http://localhost:8080 and get sensible-looking pages. If that address doesn't work, try http://localhost:3000. An admin user has been created with a default password of swordfish.

Step 7: Run Tests

A partial implementation of manual tests is located in test/manual.txt; see issue #35 for the issue relating to automated testing.

Step 8: Contribute!

TrikeApps updates the site based on pull requests through GitHub - Peter is handling these at the moment.

Additional Resources

  • You can see questions and answers with a Less Wrong developer here (note that the deadline has passed for the prize described in the post).

Clone this wiki locally