Skip to content
Dockerized CartoDB
JavaScript Shell Dockerfile VCL
Branch: master
Clone or download
#59 Compare This branch is 130 commits ahead of fleu42:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
config Updated Varnish to cache SQL API / Windshaft Jul 18, 2019
.dockerignore Ignore cartodb_pgdata dir Jul 1, 2017
.gitignore Ignore cartodb_pgdata dir Jul 1, 2017
CITATION.cff Added CITATION.cff Mar 2, 2018
Dockerfile Changing the Nginx config to a single file Jul 18, 2019
LICENSE Initial commit Nov 14, 2014 Moved build chapter to bottom Sep 20, 2018 Populate docker-cartodb with required files. Nov 15, 2014
create_dev_user Fix Dev_User for MX Record Check Aug 9, 2019 Give user and organization geocoder quota Jul 1, 2017
geocoder_server.sql cdb_service_quota_info() failed due to missing tomtom config Jun 22, 2018 Example how to use foreign data wrapper in CartoDB. Feb 18, 2015 Fix for CartoDB MX Record check Aug 9, 2019 Changing path to nginx proxy conf file Jul 18, 2019 Enabled sync tables for all users + periodically trigger sync tables … Aug 1, 2017


This Docker container image provides a fully working cartodb development solution without the installation hassle.

Just run the commands and then connect to http://cartodb.localhost with your browser.

The default login is dev/pass1234. You may want to change it when you run it for the outside.

It also creates an 'example' organization with owner login admin4example/pass1234. Organization members can be created on http://cartodb.localhost/user/admin4example/organization

How to run the container:

docker run -d -p 80:80 -h cartodb.localhost sverhoeven/cartodb

The CartoDB instance has been configured with the hostname cartodb.localhost, this means the web browser and web server need to be able to resolve cartodb.localhost to an IP adress of the machine where the web server is running. This can be done by adding cartodb.localhost alias to your hosts file. For example

sudo sh -c 'echo cartodb.localhost >> /etc/hosts'

(For Windows it will be C:\Windows\System32\drivers\etc\hosts)

How to use a different hostname:

For example to use as a hostname start with:

docker run -d -p 80:80 -h sverhoeven/cartodb

The chosen hostname should also resolve to an IP adress of the machine where the web server is running.

If you don't have a domain/subdomain pointing to your server yet, you can use the servers external ip address:

docker run -d -p 80:80 -h <servers-external-ip-address> sverhoeven/cartodb

Instead of setting hostname with -h you can also use the CARTO_HOSTNAME environment variable with:

docker run -d -p 80:80 -e CARTO_HOSTNAME=<hostname> sverhoeven/cartodb

Persistent data

To persist the PostgreSQL data, the PostGreSQL data dir (/var/lib/postgresql) must be persisted outside the Cartodb Docker container.

The PostgreSQL data dir is filled during the building of this Docker image and must be copied to the local filesystem and then the container must be started with the local copy volume mounted.

docker create --name cartodb_pgdata sverhoeven/cartodb
# Change to directory to save the Postgresql data dir (cartodb_pgdata) of the CartoDB image
docker cp cartodb_pgdata:/var/lib/postgresql $PWD/cartodb_pgdata
docker rm -f cartodb_pgdata

After this the CartoDB container will have a database that stays filled after restarts. The CartoDB container can be started with

docker run -d -p 80:80 -h -v $PWD/cartodb_pgdata:/var/lib/postgresql sverhoeven/cartodb


The external geocoders like heremaps, mapbox, mapzen or tomtom have dummy api keys and do not work. No attempts have been made or will be made in this Docker image to get the external geocoders to work.

The internal geocoder is configured, but contains no data inside the image.

To fill the internal geocoder run

docker exec -ti <carto docker container id> bash -c /cartodb/script/

This will run the scripts described at It will use at least 5.7+7.8Gb of diskspace to download the dumps and import them.

How to build the image:

The image can be build with

git clone
docker build -t=sverhoeven/cartodb docker-cartodb/

The build uses the master branches of the CartoDB GitHub repositories. A fresh build may fail when code requires newer dependencies then the Dockerfile provides or when code is not stable at the moment of building.

You can’t perform that action at this time.