Welcome to the geofictician wiki.
HRATE
HRATE is an initialism that stands for "High-resolution alternative to Earth." It is my just-invented generic term for OGF-like systems. It is also an anagram for "Earth."
The planet Ogieff (i.e. OGF - Ogieff is my own name for the unnamed world hosted at OpenGeofiction.net) is an HRATE. So is my Arhet. Both are implemented using the "OSM Stack" of software components, but that isn't a requirement to be an HRATE - in theory other platforms such as that used by Google Maps could be used, if one could get it working (and overcome the proprietary software barriers involved). But in general below I will be discussing the implementation of an HRATE using the OSM software stack.
Introduction
Many people are interested in trying to build their own HRATEs. It is not easy for those not familiar already with Linux server administration and website deployment, but it is possible. I think it should be made easier. So I thought I should start creating some documentation for how to do it, that others could use.
Building an "OSM Stack"
If you want your HRATE to be a public web page, you need control of a Linux server (I rent some Ubuntu servers from a company called Linode - there are many good companies that rent servers).
But if you just want it for personal use you could build an OSM-stack on a home PC running Linux. You could use it but it wouldn't be visible on the internet. It would work fine if it has enough storage but might be a bit slow. This is what I did originally, on my old desktop when I lived in Seoul, before I decided to rent a server.
There are several main parts, that should be put on an Ubuntu (Linux) server - or a group of servers if you're going to end up BIG. I think OSM has many, many servers, and OGF has at least two.
- ) LAMP Stack. This is common - sometimes rent-a-servers come with it pre-installed. This is database, web engine, etc.
- ) postgreSQL database server - the MySQL database server that comes with your LAMP Stack isn't easily compatible with current OSM software, so you need this other database
- ) Railsport. This is the /api that you connect to to edit the map, and the main map website (like my Arhet, here)
- ) tile server. This is map renderer and all the map tiles (thousands or millions of .PNG picture files that are the zoomable map).
LAMP Stack
This part was easy because it's very common on many websites and so there is very good online documention showing you how to do it. Here is what I used for my Linode rent-a-server:
https://www.linode.com/docs/web-servers/lamp/install-lamp-stack-on-ubuntu-18-04/
If you have a LAMP stack on your server, you can do lots of interesting things besides hosting an OSM Stack. This wiki is built on the LAMP Stack using Mediawiki software. My blog is built on the LAMP Stack using wordpress.
postgresql
In fact you can find good documentation and support to just install postgresql alongside your LAMP. For example, I found this:
https://gist.github.com/spara/1232194/db7d0f594f080aef26704688497ff8c562e85d4e
This script includes the postgis package (geographic information system add-on) for postgres that supports the OSM data.
Railsport
This part was easy for me because I have done web-page programming before, but if I didn't have that experience I think it would be quite hard. The Railsport is basically the OSM website software, which happens to be implemented using the programming language called Ruby on Rails, hence "railsport."
Here is the main documentation I used (also where you download the code):
https://github.com/openstreetmap/openstreetmap-website/blob/master/INSTALL.md
UPDATE 2021-10-07: Currently I have initiated my own github "fork" of the OSM rails port:
https://github.com/geofictician/opengeofiction-website
Tile Server
This part was hardest for me - and it still doesn't work well. There is very little online documentation to support how to do it. I wrote about it in my blog here:
http://blog.geofictician.net/?p=49
and
http://blog.geofictician.net/?p=72
For performance reasons, the tileserver should be on a separate server from the Railsport, but right now for Arhet they are both on the same server - along with the wiki, blog, a development MUD, and a bunch of other junk.