Difference between revisions of "Setting up tilestream"

From stgo
Jump to: navigation, search
(Setting up TileStream)
 
(9 intermediate revisions by one user not shown)
Line 2: Line 2:
 
----
 
----
  
This page explains how to install TileStream on Ubuntu 12.04. The basic description is taken from [http://github.com/mapbox/tilestream TileStreams Github page].
+
== Setting up TileStream ==
# I took an existing copy of my VirtualBox with Ubuntu 12.04 installed, including Apache2  
+
 
# <code>sudo apt-get update</code>
+
This page documents how to install TileStream, a tile server for MapBox Tiles generated with [http://www.mapbox.com/tilemill/ MapBox TileMill], on Ubuntu 12.04. The basic description is taken from [http://github.com/mapbox/tilestream TileStreams Github page].
# <code>sudo apt-get install curl build-essential libssl-dev libsqlite3-0 libsqlite3-dev git-core</code> This installs curl, sqlite, git etc. When running the command I also got some problems with a repository location so I did add the parameter <code>"--fix-missing"</code> as suggested.  
+
* I took an existing copy of my VirtualBox with Ubuntu 12.04 installed, including Apache2  
# next step is to add a further apt repository, but for that I needed to enable add-apt using <code>sudo apt-get install python-software-properties</code>
+
* <code>sudo apt-get update</code>
# add the node.js repository: <code>sudo apt-add-repository ppa:chris-lea/node.js  
+
* Note: there are '''2 options to install TileStream''', one from source and one from directly (described on the github page a bit below). The latter is useful for running multiple applications that use node.js. As I am having a separate VirtualBox just for that I used Option A (below). '''But''', if TileStream is run on the same server as GeoNode, I think one needs to use [http://github.com/mapbox/tilestream#installation-ubuntu-alternate-procedure Option B - Alternate Procedure] since GeoNode uses Node.js as well.
# update: <code>sudo apt-get update</code>
+
* <code>sudo apt-get install curl build-essential libssl-dev libsqlite3-0 libsqlite3-dev git-core</code> This installs curl, sqlite, git etc. When running the command I also got some problems with a repository location so I did add the parameter <code>"--fix-missing"</code> as suggested.  
# install node.js: <code>sudo apt-get install nodejs</code> Note, the TileStream install instructions say that  ''nodejs''-dev and ''npm'' should be installed too, but [https://chrislea.com/2013/03/15/upgrading-from-node-js-0-8-x-to-0-10-0-from-my-ppa/ this blog entry] says that for nodejs version 0.10.0 these packages don't exist anymore, while they did for node.js 0.8.x.
+
* next step is to add a further apt repository, but for that I needed to enable add-apt using <code>sudo apt-get install python-software-properties</code>
 +
* add the node.js repository: <code>sudo apt-add-repository ppa:chris-lea/node.js  
 +
* update: <code>sudo apt-get update</code>
 +
* install node.js: <code>sudo apt-get install nodejs</code> Note, the TileStream install instructions say that  ''nodejs''-dev and ''npm'' should be installed too, but [http://chrislea.com/2013/03/15/upgrading-from-node-js-0-8-x-to-0-10-0-from-my-ppa/ this blog entry] says that for nodejs version 0.10.0 these packages don't exist anymore, while they did for node.js 0.8.x.
 +
* get TileStream from GitHub: <code>git clone https://github.com/mapbox/tilestream.git</code>
 +
* switch to the folder <code>cd tilestream</code> and install TileStream <code>npm install</code>
 +
** the output I got after was like this
 +
<code>
 +
[sqlite3] Success: "lib/node_sqlite3.node" is installed
 +
sphericalmercator@1.0.2 node_modules/sphericalmercator
 +
 +
step@0.0.5 node_modules/step
 +
 +
underscore@1.3.3 node_modules/underscore
 +
 +
modestmaps@3.3.5 node_modules/modestmaps
 +
 +
wax@6.4.2 node_modules/wax
 +
 +
tilelive@4.3.3 node_modules/tilelive
 +
├── generic-pool@1.0.12
 +
└── optimist@0.3.7 (wordwrap@0.0.2)
 +
 +
bones@1.3.29 node_modules/bones
 +
├── underscore@1.1.7
 +
├── optimist@0.6.1 (wordwrap@0.0.2, minimist@0.0.8)
 +
├── backbone@0.3.3
 +
├── mirror@0.3.3 (uglify-js@1.0.2)
 +
├── express@2.5.11 (qs@0.4.2, mime@1.2.4, mkdirp@0.3.0, connect@1.9.2)
 +
└── jquery@1.6.3 (htmlparser@1.7.7, jsdom@0.10.1)
 +
 +
mbtiles@0.2.9 node_modules/mbtiles
 +
├── underscore@1.5.2
 +
└── sqlite3@2.2.0 (node-pre-gyp@0.2.6)
 +
</code>
 +
 
 +
* start TileStream from ''within'' the tilestream directory <code>./index.js start</code> (or use "--help" to check out the startup option)
 +
* now TileStream should be available in the machines web browser at <code>http://localhost:8888</code> (for a web browser one needs to setup XFCE desktop, etc, as described under: [accessing server infra])  .
 +
* To make the port 8888 of the VM available externally there has to be added a new --natpf1 rule with VBoxManage. Then I started TileStream with <code>./index.js start --host 146.155.17.113</code> to see it in my webbrowser on cedeusgis.
 +
* To see TileStream running at port 80 one should use <code>./index.js start --uiPort=[80]</code> , but this gave me actually an error.
 +
* for running TileStream longer:
 +
** the tile server can be startup using <code>./index.js start --host 146.155.17.113 &</code>. This should return a PID to later use the kill command.
 +
** or (ToDo): Ubuntu settings should be adapted so that TileServer is automatically run on machine startup
 +
* next I copied the Fondef tileset (1.5G with tar) to my TileStream VM into /usr/share/tilestream, so I started TileStream now with <pre>./tilestream/index.js start --host 146.155.17.113 --tiles=/usr/share/tilestream</pre>
 +
Note, if there comes a message like
 +
<pre>events.js:72
 +
        throw er; // Unhandled 'error' event
 +
              ^
 +
Error: listen EADDRINUSE
 +
    at errnoException (net.js:904:11)
 +
    at Server._listen2 (net.js:1042:14)
 +
    at listen (net.js:1064:10)
 +
    at Server.listen (net.js:1138:5)
 +
    at _.extend.start (/home/ssteinig/tilestream/node_modules/bones/server/server.js:34:27)
 +
</pre>
 +
Then the port may be un use already. Check this with <code>netstat -a</code>
 +
 
 +
== TileStream on Lautaro by Daniel ==
 +
* the TileStream on Lautaro serves the following "Fondef" tileset: http://lautaro.ing.puc.cl/map/v2/Fondef/{z}/{x}/{y}.png
 +
* Daniel used the following start params: <code>/bin/sh /srv/www/tilestream/start --uiPort=9876 --tilePort=9877 --tiles=/usr/share/tilestream</code> obtained with htop

Latest revision as of 16:08, 27 February 2014

>> return to Cedeus IDE


Setting up TileStream

This page documents how to install TileStream, a tile server for MapBox Tiles generated with MapBox TileMill, on Ubuntu 12.04. The basic description is taken from TileStreams Github page.

  • I took an existing copy of my VirtualBox with Ubuntu 12.04 installed, including Apache2
  • sudo apt-get update
  • Note: there are 2 options to install TileStream, one from source and one from directly (described on the github page a bit below). The latter is useful for running multiple applications that use node.js. As I am having a separate VirtualBox just for that I used Option A (below). But, if TileStream is run on the same server as GeoNode, I think one needs to use Option B - Alternate Procedure since GeoNode uses Node.js as well.
  • sudo apt-get install curl build-essential libssl-dev libsqlite3-0 libsqlite3-dev git-core This installs curl, sqlite, git etc. When running the command I also got some problems with a repository location so I did add the parameter "--fix-missing" as suggested.
  • next step is to add a further apt repository, but for that I needed to enable add-apt using sudo apt-get install python-software-properties
  • add the node.js repository: sudo apt-add-repository ppa:chris-lea/node.js
  • update: <code>sudo apt-get update
  • install node.js: sudo apt-get install nodejs Note, the TileStream install instructions say that nodejs-dev and npm should be installed too, but this blog entry says that for nodejs version 0.10.0 these packages don't exist anymore, while they did for node.js 0.8.x.
  • get TileStream from GitHub: git clone https://github.com/mapbox/tilestream.git
  • switch to the folder cd tilestream and install TileStream npm install
    • the output I got after was like this

[sqlite3] Success: "lib/node_sqlite3.node" is installed
sphericalmercator@1.0.2 node_modules/sphericalmercator

step@0.0.5 node_modules/step

underscore@1.3.3 node_modules/underscore

modestmaps@3.3.5 node_modules/modestmaps

wax@6.4.2 node_modules/wax

tilelive@4.3.3 node_modules/tilelive
├── generic-pool@1.0.12
└── optimist@0.3.7 (wordwrap@0.0.2)

bones@1.3.29 node_modules/bones
├── underscore@1.1.7
├── optimist@0.6.1 (wordwrap@0.0.2, minimist@0.0.8)
├── backbone@0.3.3
├── mirror@0.3.3 (uglify-js@1.0.2)
├── express@2.5.11 (qs@0.4.2, mime@1.2.4, mkdirp@0.3.0, connect@1.9.2)
└── jquery@1.6.3 (htmlparser@1.7.7, jsdom@0.10.1)

mbtiles@0.2.9 node_modules/mbtiles
├── underscore@1.5.2
└── sqlite3@2.2.0 (node-pre-gyp@0.2.6)

  • start TileStream from within the tilestream directory ./index.js start (or use "--help" to check out the startup option)
  • now TileStream should be available in the machines web browser at http://localhost:8888 (for a web browser one needs to setup XFCE desktop, etc, as described under: [accessing server infra]) .
  • To make the port 8888 of the VM available externally there has to be added a new --natpf1 rule with VBoxManage. Then I started TileStream with ./index.js start --host 146.155.17.113 to see it in my webbrowser on cedeusgis.
  • To see TileStream running at port 80 one should use ./index.js start --uiPort=[80] , but this gave me actually an error.
  • for running TileStream longer:
    • the tile server can be startup using ./index.js start --host 146.155.17.113 &. This should return a PID to later use the kill command.
    • or (ToDo): Ubuntu settings should be adapted so that TileServer is automatically run on machine startup
  • next I copied the Fondef tileset (1.5G with tar) to my TileStream VM into /usr/share/tilestream, so I started TileStream now with
    ./tilestream/index.js start --host 146.155.17.113 --tiles=/usr/share/tilestream

Note, if there comes a message like

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EADDRINUSE
    at errnoException (net.js:904:11)
    at Server._listen2 (net.js:1042:14)
    at listen (net.js:1064:10)
    at Server.listen (net.js:1138:5)
    at _.extend.start (/home/ssteinig/tilestream/node_modules/bones/server/server.js:34:27)

Then the port may be un use already. Check this with netstat -a

TileStream on Lautaro by Daniel

  • the TileStream on Lautaro serves the following "Fondef" tileset: http://lautaro.ing.puc.cl/map/v2/Fondef/{z}/{x}/{y}.png
  • Daniel used the following start params: /bin/sh /srv/www/tilestream/start --uiPort=9876 --tilePort=9877 --tiles=/usr/share/tilestream obtained with htop