June 17, 2013

Installing reddit on a Vagrant Ubuntu 12.04 box

These instructions assume you have some experience with Vagrant and using Ubuntu from the command line. It should take less than 20 minutes to get your own reddit install up to play with.

empty reddit screenshot

My environment:

Initial Setup

Start setting up a Vagrant machine. Lines like this in your .Vagrantfile give you a good box to start with:

  config.vm.box = "precise32"
  config.vm.box_url = "http://files.vagrantup.com/precise32.box"

In Git Bash, run:

vagrant up

Let the box start up, then run:

vagrant ssh

to log in. Once you are in the virtual machine, run:

sudo apt-get update

to get the latest lists of available packages. The installation script will fail without it.

Installing reddit

Follow the instructions here: https://github.com/reddit/reddit/wiki/reddit-install-script-for-Ubuntu. I used reddit.local as a host name. The install script will spend a few minutes downloading packages, installing applications, and configuring them as reddit requires.

One error

There’s one hiccup in the process. The install scripts wants to setup the reddit DB in a utf8 locale. Ubuntu is set to use en_US though. The script stops with an error like this:

ERROR:  encoding UTF8 does not match locale en_US
DETAIL:  The chosen LC_CTYPE setting requires encoding LATIN1.
CREATE ROLE
+ sudo -u postgres psql reddit
psql: FATAL:  database "reddit" does not exist

To get around this, stop the default PostgreSQL cluster, and start a new one with the correct locale for the reddit install script. I learned this from Ask Ubuntu.

sudo pg_dropcluster --stop 9.1 main
sudo pg_createcluster --locale=en_US.utf8 --start 9.1 main

And start running the install script again with:

sudo ./install-reddit.sh

The script should make it all the way through to more instructions this time.

Viewing your Personal reddit

Update your Windows host file to include the line:

127.0.0.1       reddit.local

This tells your browser to connect to your own computer instead of trying to find reddit.local in the DNS. You may need to grant your Windows user permission to edit the file, or use an administrator account to edit it.

You will also have to enable port connections to port 80 in your .Vagrantfile. Run:

exit

in the terminal to exit your VM and go back to your Windows machine. Add this line to the .Vagrant file:

  config.vm.network :forwarded_port, guest: 80, host: 8080

In the terminal, restart the Vagrant box by running:

vagrant reload

After it starts, visit http://reddit.local:8080 in a Windows-based web browser to see your reddit.

Next steps

You can install the default data as suggested in the instructions. After that, you’ll probably ask “How to login as an admin?”, which is answered along with many other questions here: https://github.com/reddit/reddit/wiki/FAQ