I am programming a website (Node server) for a friend of mine who created a fantasy world, to promote his books and games.

As a former GIS tech, I really would like to setup a map of his world (using his drawings). I don't have any worries about projection since I'll be using Mercator, and nor about rendering since I can choose between OpenLayers and Leaflet.

My problem is: I don't own a server, nor any computer that could be used as, I rely on Heroku for hosting my apps and websites freely.

Does anyone know of a solution, some kind of WMS host allowing to upload at least georeferenced rasters?

I considered installing Geoserver or Mapserver but I really don't think free plans like I have on Heroku or any other webhost would allow me to install such softwares.

I considered also using npm packages directly in my website backend, but all I can find seems to be vector and no raster

There are about two dozen standard paper (A4) drawings to upload, I am open to any format.

If I find nothing else, I will vectorise the drawings and use a node server.


1 Answer 1


You can avoid completely web map server depending of your requirements.

I've made a recipe (using command line) to produce tiles using

  • MBTiles where you only need a PHP file to serve tiles from a SQLite database so very easy to deploy on Heroku
  • GDAL2Tiles if you prefer an approach with only a file system (hierarchy of directories with png files within)

You can find it at https://gist.github.com/ThomasG77/127c8b7b4781c77528ce6d4827f2dc1a

It will also show how to serve MBTiles using PHP. I do not cover Node for MBTiles use case but you can use https://github.com/tobinbradley/mbtiles-server or https://github.com/DenisCarriere/mbtiles-server#readme to serve MBTiles (it seems you are using Node as you mentioned NPM packages)

FIY, you can also produce both MBTiles or directory of tiles from QGIS "Processing Toolbox" with functions "Generate XYZ tiles (Directory)" and "Generate XYZ tiles (MBTiles)"

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.