Created
July 10, 2018 11:34
-
-
Save elbosso/7d5a62686be9edd7f095165ce677366b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//https://ircama.github.io/osm-carto-tutorials/tile-server-ubuntu/ | |
CONTAINERNAME=osm | |
PROCESSORCOUNT=$(cat /proc/cpuinfo | grep processor | wc -l) # used to speed up make | |
lxc-create -n $CONTAINERNAME -t download -- --arch amd64 --dist ubuntu --release xenial | |
lxc-start -n $CONTAINERNAME | |
lxc-attach -n $CONTAINERNAME -- apt-get update | |
lxc-attach -n $CONTAINERNAME -- apt-get -y upgrade | |
lxc-attach -n $CONTAINERNAME -- apt-get -y install joe screen conky-cli openssh-server curl unzip gdal-bin tar wget bzip2 build-essential clang git autoconf libtool libxml2-dev libbz2-dev libgeos-dev libgeos++-dev libproj-dev gdal-bin libgdal-dev g++ libmapnik-dev mapnik-utils python-mapnik libxml2-dev libfreetype6-dev libjpeg-dev libpng-dev libproj-dev libtiff-dev libcairo2 libcairo2-dev python-cairo python-cairo-dev libgdal-dev build-essential python-dev libbz2-dev libicu-dev libboost-all-dev apache2 apache2-dev python-yaml python-pip mapnik-utils fonts-noto-cjk fonts-noto-hinted fonts-noto-unhinted fonts-hanazono ttf-unifont fontconfig fonts-dejavu-core nodejs-legacy npm postgresql postgis pgadmin3 postgresql-contrib osm2pgsql | |
lxc-attach -n $CONTAINERNAME -- apt-get clean | |
lxc-attach -n $CONTAINERNAME -- useradd -m tileserver | |
lxc-attach -n $CONTAINERNAME -- passwd tileserver | |
lxc-attach -n $CONTAINERNAME -- usermod -aG sudo tileserver | |
ssh tileserver@$CONTAINERNAME | |
export LANGUAGE=en_US.UTF-8 | |
export LANG=en_US.UTF-8 | |
export LC_ALL=en_US.UTF-8 | |
test -d ~/src || mkdir ~/src ; cd ~/src | |
git clone https://github.com/openstreetmap/mod_tile.git | |
git clone https://github.com/gravitystorm/openstreetmap-carto.git | |
git clone https://github.com/googlei18n/noto-emoji.git | |
mapnik-config -v | |
python -c "import mapnik;print mapnik.__file__" | |
curl localhost| grep 'It works!' | |
cd mod_tile | |
./autogen.sh && ./configure && make -j$PROCESSORCOUNT && sudo make install && sudo make install-mod_tile && sudo ldconfig | |
cd ~/src/ | |
sudo cp noto-emoji/fonts/NotoColorEmoji.ttf noto-emoji/fonts/NotoEmoji-Regular.ttf /usr/share/fonts/truetype/noto | |
sudo fc-cache -fv | |
fc-list | |
fc-list | grep Emoji | |
cd openstreetmap-carto | |
scripts/get-shapefiles.py | |
sudo npm install -g [email protected] | |
cd ~/src/openstreetmap-carto | |
carto -a "3.0.0" project.mml > style.xml | |
ls -l style.xml | |
export PGHOST=localhost | |
export PGPORT=5432 | |
export PGUSER=postgres | |
export PGPASSWORD=postgres_007% | |
sudo -u postgres psql postgres | |
\password postgres | |
\q | |
export PGPASSWORD=postgres_007% | |
HOSTNAME=localhost # set it to the actual ip address or host name | |
sudo mkdir /mnt/db # Suppose this is the tablespace location | |
sudo chown postgres:postgres /mnt/db | |
ls -l /mnt # add a host directory and use it instead: https://gist.github.com/julianlam/07abef272136ea14a627 | |
psql -U postgres -h $HOSTNAME -c "CREATE TABLESPACE gists LOCATION '/mnt/db'" | |
psql -U postgres -h $HOSTNAME -c "CREATE DATABASE gis TABLESPACE gists" | |
psql -U postgres -h $HOSTNAME -c "\connect gis" | |
psql -U postgres -h $HOSTNAME -d gis -c "CREATE EXTENSION postgis" | |
psql -U postgres -h $HOSTNAME -d gis -c "CREATE EXTENSION hstore" | |
sudo su - | |
sudo -i -u postgres | |
createuser tileserver | |
psql | |
grant all privileges on database gis to tileserver; | |
\q | |
exit | |
exit | |
sudo joe /etc/postgresql/9.5/main/pg_hba.conf | |
--host all all <your IP set>/<your netmask> md5 | |
sudo joe /etc/postgresql/9.5/main/postgresql.conf | |
--listen_addresses = 'localhost' | |
sudo /etc/init.d/postgresql restart | |
sudo joe /etc/postgresql/9.5/main/postgresql.conf | |
--shared_buffers = 2GB | |
--work_mem = 128MB | |
--maintenance_work_mem = 1GB | |
--wal_level = minimal | |
--synchronous_commit = off | |
--min_wal_size = 1GB | |
--max_wal_size = 2GB | |
--checkpoint_timeout = 15min | |
--checkpoint_completion_target = 0.9 | |
--default_statistics_target = 1000 | |
--autovacuum = off | |
--fsync = off | |
sudo /etc/init.d/postgresql stop | |
sudo /etc/init.d/postgresql start | |
cd ~/ | |
wget -c http://download.geofabrik.de/europe/germany/thueringen-latest.osm.pbf | |
HOSTNAME=localhost | |
cd ~/src/openstreetmap-carto/ | |
osm2pgsql -s -C 2048 -c -G --number-processes $PROCESSORCOUNT --hstore --style openstreetmap-carto.style --tag-transform-script openstreetmap-carto.lua -d gis -H $HOSTNAME -U postgres -k ~/thueringen-latest.osm.pbf | |
HOSTNAME=localhost | |
cd ~/src/openstreetmap-carto | |
scripts/indexes.py | psql -U postgres -h $HOSTNAME -d gis | |
sudo joe /usr/local/etc/renderd.conf | |
--XML=/home/tileserver/src/openstreetmap-carto/style.xml | |
--HOST=localhost | |
--plugins_dir=/usr/lib/mapnik/3.0/input/ | |
sudo cp ~/src/mod_tile/debian/renderd.init /etc/init.d/renderd | |
sudo chmod a+x /etc/init.d/renderd | |
sudo joe /etc/init.d/renderd | |
--DAEMON=/usr/local/bin/$NAME | |
--DAEMON_ARGS="-c /usr/local/etc/renderd.conf" | |
--RUNASUSER=tileserver | |
sudo mkdir -p /var/lib/mod_tile | |
sudo chown tileserver:tileserver /var/lib/mod_tile | |
sudo systemctl daemon-reload | |
sudo systemctl start renderd | |
sudo systemctl enable renderd | |
sudo joe /etc/apache2/mods-available/mod_tile.load | |
--LoadModule tile_module /usr/lib/apache2/modules/mod_tile.so | |
sudo ln -s /etc/apache2/mods-available/mod_tile.load /etc/apache2/mods-enabled/ | |
sudo joe /etc/apache2/sites-enabled/000-default.conf | |
--# Load all the tilesets defined in the configuration file into this virtual host | |
--LoadTileConfigFile /usr/local/etc/renderd.conf | |
--# Socket where we connect to the rendering daemon | |
--ModTileRenderdSocketName /var/run/renderd/renderd.sock | |
--# Timeout before giving up for a tile to be rendered | |
--ModTileRequestTimeout 3 | |
--# Timeout before giving up for a tile to be rendered that is otherwise missing | |
--ModTileMissingRequestTimeout 60 | |
sudo systemctl restart apache2 | |
wget --spider http://localhost/osm_tiles/0/0/0.png | |
##replace by another area: | |
cd ~/ | |
wget -c http://download.geofabrik.de/europe/germany/hessen-latest.osm.pbf | |
HOSTNAME=localhost | |
cd ~/src/openstreetmap-carto/ | |
export PGPASSWORD=postgres_007% | |
osm2pgsql -s -C 2048 -c -G --number-processes $PROCESSORCOUNT --hstore --style openstreetmap-carto.style --tag-transform-script openstreetmap-carto.lua -d gis -H $HOSTNAME -U postgres -k ~/hessen-latest.osm.pbf | |
HOSTNAME=localhost | |
cd ~/src/openstreetmap-carto | |
scripts/indexes.py | psql -U postgres -h $HOSTNAME -d gis | |
sudo rm -rf /var/lib/mod_tile/default |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment