From OpenStreetMap Wiki
Jump to: navigation, search

Creating an applicance

Install VMWare Server

Get a registration key

Get a (free) registration key on [VMWare's website]

Get and install VMWare server

Download VMWare server from [VMWare] Installation is not covered in this document

Create an empty VMWare image

  • Start VMWare:
sudo vmware
  • Connect to localhost
  • Create a new virtual machine
  • Start a typical creation - all the options are the default options, except:
    • Guest OS is Linux, Version is Other Linux 2.6 kernel
    • Select an installation path where you have at least 10 GB of free space
    • Do NOT allocate all disk space now

Install Debian

Get the netboot iso

Download the netboot image from Debian's website (total size is about 6 MB):


Boot on the iso

Edit the setting of the VM you just created - for the CDROM, select use ISO image and select your mini.iso file. At the same time, you can increase the memory settings of your VM to 1024 MB. You can now click on "Power on this image" Do the regular installation... all default options, except:

  • At the Boot: prompt, use the following boot option: "install fb=false". This will disabled the frame buffer, which is much more efficient (in my case at least)
  • Select your own keyboard layout
  • Hostname is osm
  • Select a Debian mirror close to you
  • Create a first user named osm
  • Install NO software
  • Install GRUB
  • Once the installation is over, do a minimal cleanup with:
apt-get clean
apt-get install sudo

Add the following line at the end of the file:


The result is available [here]. Root's password is osm and there is a osm user with password osm.

Populate the PostgreSQL DB

# Install the basic packages:
sudo apt-get install postgresql-postgis subversion
# Install the OpenStreetmap source tree
svn co
# Create the DB, grant access to the osm user, install the PostGIS extensions and fill up the DB
sudo su
sudo su postgres
createdb -EUNICODE osm
createuser -S -D -R osm
echo "GRANT ALL ON SCHEMA PUBLIC TO osm;" | psql osm 
echo "create language plpgsql;" | psql osm
psql osm < /home/osm/
echo "grant all on geometry_columns to osm;" | psql osm
echo "grant all on spatial_ref_sys to osm;" | psql osm
# Download a planet.osm dump (as user "osm")
cd; mkdir planet.osm; cd $_
# Compile the Sanitizer
sudo apt-get install build-essential
cd /home/osm/ && make
# Sanitize the dump
sudo apt-get install bzip2
bzcat /home/osm/planet.osm/planet-070221.osm.bz2 | ./UTF8sanitizer > /home/osm/planet.osm/planet-070221-sanitzied.osm
# Compile osm2psql
sudo apt-get install libxml2-dev libgeos-dev libgeos2c2a
cd /home/osm/

Edit the Makefile and remove all references to /opt/geos

# Generate the .sql
cd /home/osm/planet.osm
/home/osm/ planet-070221-sanitzied.osm > planet-070221-sanitzied.sql
echo "commit;" >> planet-070221-sanitzied.sql
cat planet-070221-sanitzied.sql | psql osm

At this point, the DB is filled with OSM data and ready to be used for rendering.


sudo apt-get install libwww-perl libgd-gd2-perl inkscape xmlstarlet
cd /home/osm/
cp tilesAtHome.conf.linux tilesAtHome.conf
cp authentication.conf.example authentication.conf

Edit authentication.conf to reflect your username / password

./ loop

Cleaning up and reclaiming space

sudo apt-get clean
rm -rf /home/osm/planet.osm/*

Then poweroff the VM:

sudo /sbin/shutdown -h now