* Bundler
* Javascript Runtime
-These can be installed on Ubuntu 16.04 or later with:
+These can be installed on Ubuntu 18.04 or later with:
```
-sudo apt-get install ruby2.5 libruby2.5 ruby2.5-dev \
+sudo apt-get update
+sudo apt-get install ruby2.5 libruby2.5 ruby2.5-dev bundler \
libmagickwand-dev libxml2-dev libxslt1-dev nodejs \
- apache2 apache2-dev build-essential git-core \
+ apache2 apache2-dev build-essential git-core phantomjs \
postgresql postgresql-contrib libpq-dev postgresql-server-dev-all \
- libsasl2-dev imagemagick libffi-dev
+ libsasl2-dev imagemagick libffi-dev libgd-dev libarchive-dev libbz2-dev
sudo gem2.5 install bundler
```
For Fedora, you can install the minimum requirements with:
```
-sudo yum install ruby ruby-devel rubygem-rdoc rubygem-bundler rubygems \
+sudo dnf install ruby ruby-devel rubygem-rdoc rubygem-bundler rubygems \
libxml2-devel js \
gcc gcc-c++ git \
postgresql postgresql-server postgresql-contrib postgresql-devel \
- perl-podlators ImageMagick libffi-devel
+ perl-podlators ImageMagick libffi-devel gd-devel libarchive-devel \
+ bzip2-devel nodejs-yarn
```
If you didn't already have PostgreSQL installed then create a PostgreSQL instance and start the server:
bundle install
```
+## Node.js modules
+
+We use [Yarn](https://yarnpkg.com/) to manage the Node.js modules required for the project.
+
+```
+bundle exec rake yarn:install
+```
+
+## Storage setup
+
+The Rails port needs to be configured with an object storage facility - for
+development and testing purposes you can use the example configuration:
+
+```
+cp config/example.storage.yml config/storage.yml
+```
+
## Database setup
The Rails Port uses three databases - one for development, one for testing, and one for production. The database-specific configuration
bundle exec rails server
```
-You can now view the site in your favourite web-browser at `http://localhost:3000/`
+You can now view the site in your favourite web-browser at [http://localhost:3000/](http://localhost:3000/)
Note that the OSM map tiles you see aren't created from your local database - they are just the standard map tiles.