127 lines
3.6 KiB
Markdown
127 lines
3.6 KiB
Markdown
# OpenStreetMap Server
|
|
|
|
## Build an OpenStreetMap Server
|
|
|
|
![OpenTileServer](docs/OpenStreetMap-Server.png)
|
|
|
|
|
|
* Project page: https://www.acugis.com/opentileserver
|
|
* Documentation: https://www.acugis.com/opentileserver/docs
|
|
|
|
[![Documentation Status](https://readthedocs.org/projects/opentileserver/badge/?version=latest)](https://opentileserver.docs.acugis.com/en/latest/?badge=latest)
|
|
|
|
Installation Options
|
|
|
|
### 1. [Script](https://github.com/AcuGIS/OpenTileServer/blob/master/README.md#1-script)
|
|
### 2. [Docker Compose](https://github.com/AcuGIS/OpenTileServer/blob/master/README.md#2-install-using-docker-compose)
|
|
|
|
This script is for building a basic tile server with OpenStreetMap data.
|
|
|
|
## 1. Install Using Script
|
|
|
|
For demos to work, be sure your hostname is set properly.
|
|
|
|
On a clean Ubuntu 22 install.
|
|
|
|
1. Get the script and make it executable:
|
|
|
|
wget https://raw.githubusercontent.com/AcuGIS/OpenTileServer/master/opentileserver-ubuntu-22.sh && chmod +x opentileserver-ubuntu-22.sh
|
|
|
|
2. If using a non-Latin alphabet, ucomment line 24 below:
|
|
|
|
export LC_ALL=C
|
|
|
|
3. Run the script
|
|
|
|
### Running the script:
|
|
|
|
./opentileserver-ubuntu-22.sh [web|ssl] [bright|carto] pbf_url
|
|
|
|
[web|ssl]: 'web' for http and 'ssl' for https.
|
|
|
|
[bright|carto]: 'carto' for openstreetmap-carto or 'bright' for openstreetmap-bright
|
|
|
|
pbf_url: Complete PBF url from GeoFabrik (or other source)
|
|
|
|
|
|
### Examples:
|
|
|
|
Load Delaware data with openstreetmap-carto style and no SSL:
|
|
|
|
./opentileserver-ubuntu-22.sh web carto http://download.geofabrik.de/north-america/us/delaware-latest.osm.pbf
|
|
|
|
Load Bulgaria data with openstreetmap-bright style and SSL:
|
|
|
|
./opentileserver-ubuntu-22.sh http://download.geofabrik.de/europe/bulgaria-latest.osm.pbf bright
|
|
|
|
Load South America data with openstreetmap-carto style and SSL:
|
|
|
|
./opentileserver-ubuntu-22.sh ssl carto http://download.geofabrik.de/south-america-latest.osm.pbf
|
|
|
|
|
|
### Using SSL:
|
|
|
|
If you select the ssl option and wish to use LetsEncrypt, be sure to do the following:
|
|
|
|
1. Check hostname is set properly. You can set the hostname using hostnamectl as below:
|
|
|
|
hostnamectl set-hostname domain.com
|
|
|
|
2. Run the script, which will provision a dummy SSL certificate.
|
|
|
|
3. Once script completes, enable Python Certbot Apache plugin:
|
|
|
|
apt-get -y install python3-certbot-apache
|
|
|
|
4. Request a certificate using below and
|
|
|
|
certbot --apache --agree-tos --email hostmaster@domain.com --no-eff-email -d domain.com
|
|
|
|
5. select the option "2: Redirect - Make all requests redirect to secure HTTPS access"
|
|
|
|
6. Restart Apache
|
|
|
|
|
|
## 2. Install Using Docker Compose
|
|
|
|
Dockerized OpenTileServer
|
|
|
|
First build the containers, then start PostgreSQL, renderd, and Apache.
|
|
|
|
### Run
|
|
Clone OpenTileServer and change to the OpenTileServer/Docker directoy:
|
|
|
|
git clone https://github.com/AcuGIS/OpenTileServer.git
|
|
cd OpenTileServer/Docker
|
|
docker compose pull
|
|
docker compose up
|
|
|
|
### Add PBF File
|
|
|
|
$ docker ps (to get container id)
|
|
$ docker exec -it ${CONTAINER_ID} bash
|
|
$ root@${CONTAINER_ID}:/home/tile# ./osm_load.sh 'https://download.geofabrik.de/europe/andorra-latest.osm.pbf'
|
|
$ docker compose restart
|
|
|
|
You can access PostgreSQL on 5432 and Apache 80
|
|
|
|
|
|
## Welcome Page
|
|
|
|
Once installation completes, navigate to the IP or hostname of your server.
|
|
|
|
You should see a page as below:
|
|
|
|
![OpenTileServer](docs/OpenStreetMap-Server.png)
|
|
|
|
|
|
|
|
|
|
|
|
Click on both the OpenLayer and Leaflet Examples and check your installation is rendering
|
|
|
|
[Produced by AcuGIS. We Make GIS Simple](https://www.acugis.com)
|
|
|
|
[Cited, Inc. Wilmington, Delaware](https://citedcorp.com)
|
|
|