X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/c3d7cfd7ff90879511ff1c8b54a5d280e2e15057..a71b8af4d1bded364c0ba7f05c8dd851a4a19859:/CONFIGURE.md diff --git a/CONFIGURE.md b/CONFIGURE.md index 7feae6a1e..c165c6d46 100644 --- a/CONFIGURE.md +++ b/CONFIGURE.md @@ -2,11 +2,25 @@ After [installing](INSTALL.md) this software, you may need to carry out some of these configuration steps, depending on your tasks. +## Application configuration + +Many settings are available in `config/settings.yml`. You can customize your installation of The Rails Port by overriding these values using `config/settings.local.yml` + ## Populating the database -Your installation comes with no geographic data loaded. You can either create new data using one of the editors (Potlatch 2, iD, JOSM etc) or by loading an OSM extract. +Your installation comes with no geographic data loaded. You can either create new data using one of the editors (iD, JOSM etc) or by loading an OSM extract. + +After installing but before creating any users or data, import an extract with [Osmosis](https://wiki.openstreetmap.org/wiki/Osmosis) and the [``--write-apidb``](https://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage#--write-apidb_.28--wd.29) task. + +``` +osmosis --read-pbf greater-london-latest.osm.pbf \ + --write-apidb host="localhost" database="openstreetmap" \ + user="openstreetmap" password="" validateSchemaVersion="no" +``` + +Loading an apidb database with Osmosis is about **twenty** times slower than loading the equivalent data with osm2pgsql into a rendering database. [``--log-progress``](https://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage#--log-progress_.28--lp.29) may be desirable for status updates. -* Use this [yet-to-be-written script](https://github.com/openstreetmap/openstreetmap-website/issues/282) +To be able to edit the data you have loaded, you will need to use this [yet-to-be-written script](https://github.com/openstreetmap/openstreetmap-website/issues/282). ## Managing Users @@ -14,7 +28,7 @@ If you create a user by signing up to your local website, you need to confirm th ``` $ bundle exec rails console ->> user = User.find_by_display_name("My New User Name") +>> user = User.find_by(:display_name => "My New User Name") => #[ ... ] >> user.status = "active" => "active" @@ -29,11 +43,11 @@ To give administrator or moderator permissions: ``` $ bundle exec rails console ->> user = User.find_by_display_name("My New User Name") +>> user = User.find_by(:display_name => "My New User Name") => #[ ... ] ->> user.roles.create( {:role => "administrator", :granter_id => user.id}, :without_protection => true) +>> user.roles.create(:role => "administrator", :granter_id => user.id) => #[ ... ] ->> user.roles.create( {:role => "moderator", :granter_id => user.id}, :without_protection => true) +>> user.roles.create(:role => "moderator", :granter_id => user.id) => #[ ... ] >> user.save! => true @@ -44,11 +58,10 @@ $ bundle exec rails console Three of the built-in applications communicate via the API, and therefore need OAuth consumer keys configured. These are: -* Potlatch 2 * iD * The website itself (for the Notes functionality) -For example, to use the Potlatch 2 editor you need to register it as an OAuth application. +For example, to use the iD editor you need to register it as an OAuth application. Do the following: * Log into your Rails Port instance - e.g. http://localhost:3000 @@ -56,25 +69,25 @@ Do the following: * Click on "my settings" on the user page * Click on "oauth settings" on the My settings page * Click on 'Register your application'. -* Unless you have set up alternatives, use Name: "Local Potlatch" and URL: "http://localhost:3000" +* Unless you have set up alternatives, use Name: "Local iD" and URL: "http://localhost:3000" * Check the 'modify the map' box. * Everything else can be left with the default blank values. * Click the "Register" button * On the next page, copy the "consumer key" -* Edit config/application.yml in your rails tree -* Uncomment and change the "potlatch2_key" configuration value +* Edit config/settings.local.yml in your rails tree +* Add the "id_key" configuration key and the consumer key as the value * Restart your rails server -An example excerpt from application.yml: +An example excerpt from settings.local.yml: ``` # Default editor -default_editor: "potlatch2" -# OAuth consumer key for Potlatch 2 -potlatch2_key: "8lFmZPsagHV4l3rkAHq0hWY5vV3Ctl3oEFY1aXth" +default_editor: "id" +# OAuth consumer key for iD +id_key: "8lFmZPsagHV4l3rkAHq0hWY5vV3Ctl3oEFY1aXth" ``` -Follow the same process for registering and configuring iD (`id_key`) and the website/Notes (`oauth_key`), or to save time, simply reuse the same consumer key for each. +Follow the same process for registering and configuring the website/Notes (`oauth_key`), or to save time, simply reuse the same consumer key for each. ## Troubleshooting @@ -84,7 +97,7 @@ Rails has its own log. To inspect the log, do this: tail -f log/development.log ``` -If you have more problems, please ask on the [rails-dev@openstreetmap.org mailing list](http://lists.openstreetmap.org/listinfo/rails-dev) or on the [#osm-dev IRC Channel](http://wiki.openstreetmap.org/wiki/IRC) +If you have more problems, please ask on the [rails-dev@openstreetmap.org mailing list](https://lists.openstreetmap.org/listinfo/rails-dev) or on the [#osm-dev IRC Channel](https://wiki.openstreetmap.org/wiki/IRC) ## Maintaining your installation @@ -100,7 +113,7 @@ bundle exec rake db:migrate ## Testing on the osm dev server -For example, after developing a patch for the rails_port, you might want to demonstrate it to others or ask for comments and testing. To do this one can [set up an instance of the rails_port on the dev server in ones user directory](http://wiki.openstreetmap.org/wiki/Using_the_dev_server#Rails_Applications). +For example, after developing a patch for the rails_port, you might want to demonstrate it to others or ask for comments and testing. To do this one can [set up an instance of the rails_port on the dev server in ones user directory](https://wiki.openstreetmap.org/wiki/Using_the_dev_server#Rails_Applications). # Contributing @@ -110,8 +123,11 @@ For information on contributing changes to the codes, see [CONTRIBUTING.md](CONT If you want to deploy The Rails Port for production use, you'll need to make a few changes. -* It's not recommended to use `rails server` in production. Our recommended approach is to use [Phusion Passenger](https://www.phusionpassenger.com/). +* It's not recommended to use `rails server` in production. Our recommended approach is to use [Phusion Passenger](https://www.phusionpassenger.com/). Instructions are available for [setting it up with most web servers](https://www.phusionpassenger.com/documentation_and_support#documentation). * Passenger will, by design, use the Production environment and therefore the production database - make sure it contains the appropriate data and user accounts. * Your production database will also need the extensions and functions installed - see [INSTALL.md](INSTALL.md) * The included version of the map call is quite slow and eats a lot of memory. You should consider using [CGIMap](https://github.com/zerebubuth/openstreetmap-cgimap) instead. -* The included version of the GPX importer is slow and/or completely inoperable. You should consider using [the high-speed GPX importer](http://git.openstreetmap.org/gpx-import.git/). +* Make sure you generate the i18n files and precompile the production assets: `RAILS_ENV=production rake i18n:js:export assets:precompile` +* Make sure the web server user as well as the rails user can read, write and create directories in `tmp/`. +* If you want to use diff replication then you might want to consider installing the shared library special SQL functions for the `xid_to_int4` function. A pure SQL version is available, but may become a performance issue on large databases with a high rate of changes. Note that you will need a version of PostgreSQL < 9.6 (yes, _less than_) to use `xid` indexing, whether pure SQL or shared library. +* If you expect to serve a lot of `/changes` API calls, then you might also want to install the shared library versions of the SQL functions.