Merge remote-tracking branch 'upstream/pull/2433'
[rails.git] / VAGRANT.md
1 # Installing Vagrant
2
3 On Ubuntu, it should be as simple as:
4
5 ```
6 sudo apt-get install vagrant
7 ```
8
9 Other Linux distributions should have similar installation instructions using `dnf`, `pacman`, or similar.
10
11 Installers are available for Mac OS X and Windows, please see the [Vagrant project download page](https://www.vagrantup.com/downloads.html) for more information.
12
13 We currently support three Vagrant providers, namely `virtualbox`, `lxc` and `libvirt`. You might need to install one of these, for example virtualbox, and specify the provider, e.g. `--provider virtualbox`, when setting up your environment.
14
15 # Setting up openstreetmap-website
16
17 Once Vagrant has been installed, you can start an environment by checking out the openstreetmap-website code if you haven't already, then changing to the directory which contains the Vagrantfile by typing:
18
19 ```
20 git clone git@github.com:openstreetmap/openstreetmap-website.git
21 cd openstreetmap-website
22 vagrant up
23 ```
24
25 This will take a few minutes to download required software from the internet and set it up as a running system. Once it is complete, you should be able to log into the running VM by typing:
26
27 ```
28 vagrant ssh
29 ```
30
31 Within this login shell, you can do development, run the server or the tests. For example, to run the tests:
32
33 ```
34 cd /srv/openstreetmap-website/
35 rake test
36 ```
37
38 To access the web pages you run the following commands then access the site in your [local browser](http://localhost:3000):
39
40 ```
41 vagrant ssh
42 cd /srv/openstreetmap-website/
43 rails server --binding=0.0.0.0
44 ```
45
46 You edit the code on your computer using the code editor you are used to using, then through shared folders the code is updated on the VM instantly.
47
48 You should run the tests before submitting any patch or Pull Request back to the original repository. Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more information.