mirror of
https://github.com/lrnselfreliance/wrolpi.git
synced 2026-10-26 19:01:39 -04:00
commit 26bde0fb48d59a86c2fb9f53a7218d49f22d4860
Author: Roland <roland@learningselfreliance.com>
Date: Tue Mar 8 13:25:56 2022 -0700
Using osm2pgsql append to preserve other imported maps.
commit c6c52623eaf02e691b1e75dcf39c3a8334ead55a
Author: Roland <roland@learningselfreliance.com>
Date: Tue Mar 8 08:20:38 2022 -0700
Using placeholder instead of loader when table is loading.
commit 44fec6490e26603c88a98f6bc70fc18686e17f09
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 20:58:34 2022 -0700
Simplifying tableRow function.
commit 11b8b57f1fa59556397620f3cad9a33a0237501d
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 20:53:51 2022 -0700
Removing scientific humanFileSize.
commit 0a09d0a6963afebed7f388aad71bbdd3151d2e9e
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 20:46:22 2022 -0700
Fixing active loader.
commit 07f4deeac861351d7483ef57278eb2e0941e31fb
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 20:40:44 2022 -0700
Increasing recommended map file size.
commit af3ac492c81f4c8f84563a448bc272ae9334d32d
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 20:35:13 2022 -0700
Reworking logic order for simplicity. Fetching downloads on interval.
commit 3d9d31fcec87ed02ced7f67c34907faa5a3b54e5
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 20:24:39 2022 -0700
Handling when pbf import status are loading.
commit 3798961a48e7c9eb165ca4e4051f239dbb088d0c
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 19:53:50 2022 -0700
Fetching import status every 30 seconds.
commit f7a8193b0955d14ead8090aa74ce3c5a681b57ec
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 19:33:17 2022 -0700
Stopping renderd during installation.
commit 5bf050b59e0a6e391184596f5e6f0737dea1221d
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 19:26:59 2022 -0700
Removing duplciate serve.
commit 892e3315eeeb5d2516996b901a32a73a66dae078
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 19:22:14 2022 -0700
Setting bash flags in sub-install script.
commit d5d2acd2cd85e089c78aa85a27c5d966222a1347
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 19:20:19 2022 -0700
Moving bulk of installation script into separate script so the latest code will be used during initial installation.
commit ab030d8af834a4a8772edd06df360c51e72fbb02
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 18:40:34 2022 -0700
Removing mod_tile/ajt directory instead of entire contents of mod_tile. Showing import as relative to media directory.
commit c05199db4ecf56f4d096051b58689457882af12a
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 18:39:59 2022 -0700
Remvoing marker from map.
commit ba5df4cf62d61b55281277a6254836e973c766ae
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 11:57:41 2022 -0700
Creating import_map.sh script.
commit 1a16e46130e775efe375adb22917ba12e44855cd
Author: Roland <roland@learningselfreliance.com>
Date: Mon Mar 7 11:11:01 2022 -0700
Increasing ram usage during import to avoid hanging import.
commit 0f5ce1a9f806f1c0878dd804b04587b6340ffd16
Author: Roland <roland@learningselfreliance.com>
Date: Sat Mar 5 19:19:47 2022 -0700
Increasing map_file.size size.
commit eb6e01512af59fb4a18ab15643c7bc61f3d48e53
Author: Roland <roland@learningselfreliance.com>
Date: Sat Mar 5 18:55:55 2022 -0700
Copying leaflet js/css files into docker container and to Apache directory so they will be available offline.
commit 5b687324e119f021673f42e8d079b83034b70d53
Author: Roland <roland@learningselfreliance.com>
Date: Sat Mar 5 18:36:06 2022 -0700
Matching tab height on Map page.
commit 8031786d672e18366e9a2eb2d7bdfcd8611d27f3
Author: Roland <roland@learningselfreliance.com>
Date: Sat Mar 5 18:34:20 2022 -0700
Shrinking HelpPopup Icon.
commit 5ea94488e43bbc5c414e61c9173a3cfa908c7104
Author: Roland <roland@learningselfreliance.com>
Date: Sat Mar 5 18:31:30 2022 -0700
Testing if no PBFs are requested to be imported.
commit c4e86be1faed78bd3af1f3487471c01a1958a433
Author: Roland <roland@learningselfreliance.com>
Date: Sat Mar 5 18:18:48 2022 -0700
Using Icon instead of Button for HelpPopup.
commit 51d94f6d85885803813544fea16a56372babaa82
Author: Roland <roland@learningselfreliance.com>
Date: Sat Mar 5 18:07:03 2022 -0700
PBF files are sorted by the api.
commit 40f3a7ff04a83db0153f64a88a37f1d56ce043aa
Author: Roland <roland@learningselfreliance.com>
Date: Fri Mar 4 18:35:51 2022 -0700
Adding help popup.
commit 1da8d9fa403ec2a3b3c16c11a3937de37c895a35
Author: Roland <roland@learningselfreliance.com>
Date: Fri Mar 4 09:41:01 2022 -0700
Moving message up. Clearing cached tiles after import.
commit 3192adf95192554c194c9e0a8aeb149822462682
Author: Roland <roland@learningselfreliance.com>
Date: Thu Mar 3 21:37:13 2022 -0700
Removing osm2pgsql from api docker because it seems to be unsupported.
commit 0e10522f3cdc7edd374c14f230bb2dbd68ab1a94
Author: Roland <roland@learningselfreliance.com>
Date: Thu Mar 3 21:36:39 2022 -0700
Disabling import button for docker. Adding download instructions.
commit e1d8f55d159fb4d4ef2ece859ef7cc1059885791
Author: Roland <roland@learningselfreliance.com>
Date: Thu Mar 3 21:14:55 2022 -0700
Map files can be imported on RPi.
commit 3128530e09968430a71b27cd2e75a567f85a708b
Author: Roland <roland@learningselfreliance.com>
Date: Thu Mar 3 15:31:54 2022 -0700
Adding shm_size to increase size to render large map tiles.
commit f3cf80fae0ce46f44ea9ac5033f68a32d0197ae3
Author: Roland <roland@learningselfreliance.com>
Date: Wed Mar 2 10:39:18 2022 -0700
Can get status of map imports.
commit 3b7bbce004cd55a5d89980c2c09124b72c450bc6
Author: Roland <roland@learningselfreliance.com>
Date: Tue Mar 1 20:51:13 2022 -0700
Adding map link to 50x.html. Swapping links using hostname to make it easier on the user.
commit a8b6b60fe182233f40c2f1ecd825636c3d37fd23
Author: Roland <roland@learningselfreliance.com>
Date: Tue Mar 1 12:01:50 2022 -0700
Moving Inventory link to end.
commit c5346b8dc2ff83262d6fd153130912809dfd7574
Author: Roland <roland@learningselfreliance.com>
Date: Tue Mar 1 12:00:47 2022 -0700
Squashed commit of the following:
commit 39f0b8f3fc049fffd140d551cd91d7d9dba6d416
Author: Roland <roland@learningselfreliance.com>
Date: Tue Mar 1 12:00:13 2022 -0700
Starting map refresh function.
commit 2fac9ddf07e378389ddd85ca972f33b3323d30ac
Author: Roland <roland@learningselfreliance.com>
Date: Mon Feb 28 16:43:47 2022 -0700
Updating readme with map requirements.
commit 8325e1ea89537128329e313ab4b5588f8809d1c9
Author: Roland <roland@learningselfreliance.com>
Date: Mon Feb 28 16:05:35 2022 -0700
Fixing order of map db init scripts. Creating index.html to display map. Using :8084 index file to display the map.
commit 8f81539dd9d25fc26607f472c156d41ddcfc11f5
Author: Roland <roland@learningselfreliance.com>
Date: Sun Feb 27 19:17:14 2022 -0700
Installing apache2.
commit c7aaef07f8291070aeaf5e7df553e34aca0719ec
Author: Roland <roland@learningselfreliance.com>
Date: Sun Feb 27 18:41:07 2022 -0700
Always configure postgres extensions. Initialize gis with dc.
commit aa725ed4b8ec46d17accebd96dd41508ea2d9caf
Author: Roland <roland@learningselfreliance.com>
Date: Sun Feb 27 15:48:20 2022 -0700
Map is displayed as iframe.
commit de9bb92dcaf44996e7727adce7774f01895ddf52
Author: Roland <roland@learningselfreliance.com>
Date: Sun Feb 27 12:16:56 2022 -0700
Running script in openstreetmap directory.
commit f277388095d2221aa6407643ab655f26dc349eb7
Author: Roland <roland@learningselfreliance.com>
Date: Sun Feb 27 12:06:41 2022 -0700
Bumping version for map.
commit afd4aaeffb2aced2dc5c1a8f94038885c8287265
Author: Roland <roland@learningselfreliance.com>
Date: Sun Feb 27 11:59:31 2022 -0700
Checking that the installation script is on an rpi.
commit a799382ceac3c201fc01d41fd63e37607282831a
Author: Roland <roland@learningselfreliance.com>
Date: Sun Feb 27 11:49:21 2022 -0700
Only running mod_tile install once.
commit 0b98bb19cd4d86c9630a863cab4eb46410d1c9d1
Author: Roland <roland@learningselfreliance.com>
Date: Fri Feb 25 11:31:21 2022 -0700
Building out map install script.
commit 7c799775c11df573fa6cd65451adea28c0832cb0
Author: Roland <roland@learningselfreliance.com>
Date: Thu Feb 24 12:16:53 2022 -0700
Creating OSM installation script.
commit d3b93a3ee97d1ae4a00b6a0423ed59ea8b897ccd
Author: Roland <roland@learningselfreliance.com>
Date: Tue Feb 22 15:39:04 2022 -0700
Removing unused map module.
193 lines
6.9 KiB
Bash
Executable file
193 lines
6.9 KiB
Bash
Executable file
#! /usr/bin/bash
|
|
# This script installs OpenStreetMap tile server.
|
|
# This server uses Apache2, renderd and mod_tile to render and display map tiles.
|
|
|
|
set -x
|
|
set -e
|
|
|
|
# Install map dependencies.
|
|
apt install -y libboost-all-dev git tar unzip wget bzip2 build-essential autoconf libtool libxml2-dev libgeos-dev \
|
|
libgeos++-dev libpq-dev libbz2-dev libproj-dev munin-node munin protobuf-c-compiler libfreetype6-dev libtiff5-dev \
|
|
libicu-dev libgdal-dev libcairo2-dev libcairomm-1.0-dev libagg-dev liblua5.2-dev ttf-unifont lua5.1 liblua5.1-0-dev \
|
|
postgis postgresql-12-postgis-3 postgresql-12-postgis-3-scripts osm2pgsql gdal-bin libmapnik-dev mapnik-utils \
|
|
python3-mapnik apache2 apache2-dev libcurl4-gnutls-dev libiniparser-dev libmemcached-dev librados-dev \
|
|
fonts-noto-cjk fonts-noto-hinted fonts-noto-unhinted postgresql-contrib
|
|
|
|
/usr/bin/npm install -g carto
|
|
/usr/bin/carto -v
|
|
|
|
# Create `gis` database for map.
|
|
sudo -u postgres psql -c '\l' | grep gis || sudo -u postgres createdb -E UTF8 -O wrolpi gis
|
|
sudo -u postgres psql -d gis -c "CREATE EXTENSION postgis;" || :
|
|
sudo -u postgres psql -d gis -c "CREATE EXTENSION hstore;" || :
|
|
sudo -u postgres psql -d gis -c "ALTER TABLE geometry_columns OWNER TO wrolpi;"
|
|
sudo -u postgres psql -d gis -c "ALTER TABLE spatial_ref_sys OWNER TO wrolpi;"
|
|
|
|
# Install Ubuntu 20.04 compatible mod_tile.
|
|
git clone -b switch2osm git://github.com/lrnselfreliance/mod_tile.git /tmp/mod_tile || :
|
|
if [ ! -f /usr/lib/apache2/modules/mod_tile.so ]; then
|
|
(cd /tmp/mod_tile && ./autogen.sh && ./configure && make -j4 && make install && make install-mod_tile && ldconfig)
|
|
fi
|
|
# Install init/systemd config to start map service on startup.
|
|
cp /tmp/mod_tile/debian/renderd.init /etc/init.d/renderd
|
|
sudo chmod +x /etc/init.d/renderd
|
|
cp /tmp/mod_tile/debian/renderd.service /lib/systemd/system/
|
|
sed -ie 's/^RUNASUSER.*/RUNASUSER=wrolpi/' /etc/init.d/renderd
|
|
chmod +x /etc/init.d/renderd
|
|
[ ! -d /var/lib/mod_tile ] && mkdir /var/lib/mod_tile
|
|
chown wrolpi /var/lib/mod_tile
|
|
|
|
# Initialize gis database.
|
|
git clone git://github.com/lrnselfreliance/openstreetmap-carto.git /opt/openstreetmap-carto || :
|
|
chown -R wrolpi:wrolpi /opt/openstreetmap-carto
|
|
cd /opt/openstreetmap-carto
|
|
if [[ ! -f /opt/openstreetmap-carto/mapnik.xml || ! -s /opt/openstreetmap-carto/mapnik.xml ]]; then
|
|
/usr/bin/carto project.mml >/opt/openstreetmap-carto/mapnik.xml
|
|
fi
|
|
# Use D.C. to initialized DB because it is so small.
|
|
wget --continue https://download.geofabrik.de/north-america/us/district-of-columbia-latest.osm.pbf \
|
|
-O /tmp/district-of-columbia-latest.osm.pbf
|
|
sudo -u wrolpi /usr/bin/osm2pgsql -d gis --create --slim -G --hstore --tag-transform-script \
|
|
/opt/openstreetmap-carto/openstreetmap-carto.lua -C 2000 --number-processes 4 \
|
|
-S /opt/openstreetmap-carto/openstreetmap-carto.style /tmp/district-of-columbia-latest.osm.pbf
|
|
# Initialize indexes and global polygons.
|
|
sudo -u wrolpi psql -d gis -f /opt/openstreetmap-carto/indexes.sql
|
|
sudo -u wrolpi /opt/openstreetmap-carto/scripts/get-external-data.py -d gis -U wrolpi
|
|
|
|
cat >/usr/local/etc/renderd.conf <<'EOF'
|
|
[renderd]
|
|
num_threads=4
|
|
tile_dir=/var/lib/mod_tile
|
|
stats_file=/var/run/renderd/renderd.stats
|
|
|
|
[mapnik]
|
|
plugins_dir=/usr/lib/mapnik/3.0/input
|
|
font_dir=/usr/share/fonts/truetype
|
|
font_dir_recurse=1
|
|
|
|
[ajt]
|
|
URI=/hot/
|
|
TILEDIR=/var/lib/mod_tile
|
|
XML=/opt/openstreetmap-carto/mapnik.xml
|
|
HOST=localhost
|
|
TILESIZE=256
|
|
MAXZOOM=20
|
|
EOF
|
|
|
|
# Enable mod_tile.
|
|
cat >>/etc/apache2/conf-available/mod_tile.conf <<'EOF'
|
|
LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so
|
|
EOF
|
|
/usr/sbin/a2enconf mod_tile
|
|
|
|
# Configure Apache2 to listen on 8084.
|
|
cat >/etc/apache2/ports.conf <<'EOF'
|
|
# If you just change the port or add more ports here, you will likely also
|
|
# have to change the VirtualHost statement in
|
|
# /etc/apache2/sites-enabled/000-default.conf
|
|
|
|
Listen 8084
|
|
|
|
<IfModule ssl_module>
|
|
Listen 443
|
|
</IfModule>
|
|
|
|
<IfModule mod_gnutls.c>
|
|
Listen 443
|
|
</IfModule>
|
|
|
|
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
|
|
EOF
|
|
|
|
cat >/etc/apache2/sites-available/000-default.conf <<'EOF'
|
|
<VirtualHost *:8084>
|
|
# The ServerName directive sets the request scheme, hostname and port that
|
|
# the server uses to identify itself. This is used when creating
|
|
# redirection URLs. In the context of virtual hosts, the ServerName
|
|
# specifies what hostname must appear in the request's Host: header to
|
|
# match this virtual host. For the default virtual host (this file) this
|
|
# value is not decisive as it is used as a last resort host regardless.
|
|
# However, you must set it for any further virtual host explicitly.
|
|
#ServerName www.example.com
|
|
|
|
ServerAdmin webmaster@localhost
|
|
|
|
LoadTileConfigFile /usr/local/etc/renderd.conf
|
|
ModTileRenderdSocketName /var/run/renderd/renderd.sock
|
|
# Timeout before giving up for a tile to be rendered
|
|
ModTileRequestTimeout 0
|
|
# Timeout before giving up for a tile to be rendered that is otherwise missing
|
|
ModTileMissingRequestTimeout 30
|
|
|
|
DocumentRoot /var/www/html
|
|
|
|
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
|
|
# error, crit, alert, emerg.
|
|
# It is also possible to configure the loglevel for particular
|
|
# modules, e.g.
|
|
#LogLevel info ssl:warn
|
|
|
|
ErrorLog ${APACHE_LOG_DIR}/error.log
|
|
CustomLog ${APACHE_LOG_DIR}/access.log combined
|
|
|
|
# For most configuration files from conf-available/, which are
|
|
# enabled or disabled at a global level, it is possible to
|
|
# include a line for only one particular virtual host. For example the
|
|
# following line enables the CGI configuration for this host only
|
|
# after it has been globally disabled with "a2disconf".
|
|
#Include conf-available/serve-cgi-bin.conf
|
|
</VirtualHost>
|
|
|
|
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
|
|
EOF
|
|
|
|
cat >/var/www/html/index.html <<'EOF'
|
|
<!DOCTYPE HTML>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<script src="/leaflet.js"></script>
|
|
<link rel="stylesheet" href="/leaflet.css" />
|
|
<style>
|
|
html, body {
|
|
height: 100%;
|
|
padding: 0;
|
|
margin: 0;
|
|
}
|
|
#map {
|
|
/* configure the size of the map */
|
|
width: 100%;
|
|
height: 100%;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="map"></div>
|
|
<script>
|
|
// initialize Leaflet
|
|
var map = L.map('map').setView({lon: 0, lat: 0}, 2);
|
|
|
|
// add the OpenStreetMap tiles
|
|
L.tileLayer(`http://${window.location.hostname}:8084/hot/{z}/{x}/{y}.png`, {
|
|
maxZoom: 19,
|
|
attribution: '© <a href="https://openstreetmap.org/copyright">OpenStreetMap contributors</a>'
|
|
}).addTo(map);
|
|
|
|
// show the scale bar on the lower left corner
|
|
L.control.scale({imperial: true, metric: true}).addTo(map);
|
|
</script>
|
|
</body>
|
|
</html>
|
|
EOF
|
|
|
|
# Copy Leaflet files to Apache's directory so they can be used offline.
|
|
cp /opt/wrolpi/modules/map/leaflet.js /var/www/html/leaflet.js
|
|
cp /opt/wrolpi/modules/map/leaflet.css /var/www/html/leaflet.css
|
|
|
|
systemctl enable renderd
|
|
systemctl stop renderd
|
|
systemctl start renderd
|
|
|
|
systemctl stop apache2
|
|
systemctl start apache2
|