CARTO can be installed on a local server, or set of servers, either directly or using our commercial installer.

Installing CARTO On-Premises Builder

Warning
SELinux must be disabled, otherwise we cannot guarantee the stability of the current installation.

Single Host Installation

The CARTO installer artifact can be used to setup CARTO in a fresh, installed Red Hat server or to upgrade from a previous compatible running version.

1) Unpack the tar.gz file of the Builder installer

1
tar xfz carto-builder-<version>-rhel-7-x86_64.tar.gz

Where version is the version of the file provided.

2) Initialize the configuration database and install the license

1
2
cd carto-builder-<version>-rhel-7-x86_64
sudo ./cartoctl init --license license1.lic
Note
A CARTO license is required in this step. Please, contact CARTO if you need a license.

3) Perform the installation with sudo (or as root):

1
sudo ./cartoctl nodes install

4) If the installation was successful, you will see the message below, otherwise please check ~/carto.log looking for errors.

1
2
The installation has been successfully completed
==> Ready for mapping? Enter the URL "https://carto.lan" into your favourite browser

Pre-Configuration

CARTO installer has some default parameters that will help run all of the components correctly. However, it is recommended to review these parameters and change them before running the installer. Some of the initial configurations cannot be modified once the product is installed.

The config code below is a fragment of the default config for BUILDER stored in ~/.carto/config.yml (see Configuration options for a complete reference) and it is created after executing cartoctl init command (step number (2) in the installation instructions). Prior to execute cartoctl install, any additional configuration option can be added under the env section.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
nodes:
- hostname: node01.carto.lan
  user:
    privileges: true
    ssh_key: id_rsa
    command: /bin/sudo
  role:
  - name: postgresql
    release: ""
    installed: true
    env:
    - name: CARTO_POSTGRES_ADDRESS
      value: 127.0.0.1
    - name: CARTO_POSTGRES_BIND
      value: 127.0.0.1
    - name: CARTO_POSTGRES_PORT
      value: "5432"
    package: []
    task: []
Note
The PostgreSQL server will be opened by default if PostgreSQL is not binding to 127.0.0.1 (CARTO\_POSTGRES\_BIND); allowing connections from any host. This is a common scenario in a distributed installation. Ensure that your database is behind a FW that blocks undesirable access.

Installation configuration option keys reference

CARTO BUILDER is highly configurable on installation time. The different sections of the documentation mention many option keys that modify the behaviour of the product. The following table contains a reference of the keys that can be found in ~/.carto/config.yml setup file and whether they’re modifiable or not.

Note
To get the default value for any given option key, please execute `/opt/carto/tools/bin/cartoctl registry`
Variable name Modifiable Description
CARTO_USER Yes User that will be created on installation time
CARTO_PASSWORD Yes Password to authenticate CARTO_USER
CARTO_EMAIL Yes email for CARTO_USER
CARTO_ORG Yes Organization CARTO_USER will be owner
CARTO_DOMAIN Yes Domain to reach BUILDER. It is important to set this correctly so that different roles can connect
CARTO_DISK_QUOTA Yes User disk quota (in megabytes)
CARTO_ORG_SEATS Yes Number of seats in CARTO_ORG
CARTO_ORG_VIEWER_SEATS Yes Number of viewer seats in CARTO_ORG
CARTO_MAX_IMPORT_FILE_SIZE Yes Maximum import file size (in bytes)
CARTO_MAX_IMPORT_TABLE_ROW_COUNT Yes Maximum row number in an import
CARTO_DATA_ROOT_PATH Yes Filesystem path where data and config will be stored
CARTO_SNAPSHOT_ROOT_PATH Yes Filesystem path where upgrade snapshots will be stored
CARTO_SHARED_DIR_PATH Yes Filesystem path where files shared between Builder and Resque will be placed: this is important in distributed installations
CARTO_TMP_DIR_PATH Yes Filesystem path for temporal files, e.g. import transient files, exports, etc
CARTO_LOG_PATH Yes Filesystem path for logs
CARTO_BACKUP_PATH Yes Filesystem path for backups done with backup tool
CARTO_REDIS_ADDRESS Yes Redis server address
CARTO_REDIS_BIND Yes Redis process bind address
CARTO_REDIS_PORT Yes Redis process bind port
CARTO_POSTGRES_ADDRESS Yes Postgres server address
CARTO_POSTGRES_BIND Yes Postgres process bind address
CARTO_POSTGRES_PORT Yes Postgres process bind address
CARTO_NGINX_ADDRESS Yes Nginx server address
CARTO_NGINX_BIND Yes Nginx process bind address
CARTO_NGINX_HTTP_PORT Yes Nginx process bind HTTP port
CARTO_NGINX_HTTPS_PORT Yes Nginx process bind HTTPS port
CARTO_SQL_API_ADDRESS Yes SQL API server address
CARTO_SQL_API_BIND Yes SQL API process bind address
CARTO_SQL_API_PORT Yes SQL API process bind port
CARTO_SQL_API_ENTITIES_ACCESS Yes SQL API entities access control
CARTO_VARNISH_ADDRESS Yes Varnish server address
CARTO_VARNISH_BIND Yes Varnish process bind address
CARTO_VARNISH_PORT Yes Varnish process bind address
CARTO_VARNISH_ADMIN_PORT Yes Varnish admin port
CARTO_MAPS_API_ADDRESS Yes Maps API server address
CARTO_MAPS_API_BIND Yes Maps API process bind address
CARTO_MAPS_API_PORT Yes Maps API process bind port
CARTO_UNICORN_ADDRESS Yes Builder Unicorn server address
CARTO_UNICORN_BIND Yes Builder Unicorn bind address
CARTO_UNICORN_PORT Yes Builder Unicorn bind port
CARTO_ARCGIS_CONNECTOR_ENABLED Yes Shows if ArcGIS connector will be enabled and displayed in Builder
CARTO_DATASERVICES_ADDRESS Yes LDS server address
CARTO_DATASERVICES_BIND Yes LDS process bind address
CARTO_DATASERVICES_PORT Yes LDS server port
CARTO_DATASERVICES_USER Yes LDS server postgres user
CARTO_DATASERVICES_DB Yes LDS server database
CARTO_DS_ANALYSIS_GEOCODER Yes Determines if internal analysis will be shown or not
CARTO_DS_ANALYSIS_HIRES Yes Determines if high resolution geocoder analysis will be shown or not (will need external services for this)
CARTO_DS_ANALYSIS_ISOLINES Yes Determines if isolines analysis will be shown or not (will need external services for this in LDS server)
CARTO_DS_ANALYSIS_ROUTING Yes Determines if routing analysis will be shown or not (will need external services for this in LDS server)
CARTO_DS_ANALYSIS_DOBSERVATORY Yes Determines if Data Observatory analysis will be shown or not (will need external services for this in LDS server)
CARTO_DS_GEOCODER_QUOTA Yes LDS Geocoder quota (requests per billing period)
CARTO_DS_ROUTING_QUOTA Yes LDS Routing quota (requests per billing period)
CARTO_DS_ISOLINES_QUOTA Yes LDS Routing quota (requests per billing period)
CARTO_DS_DO_SNAPSHOT_QUOTA Yes LDS Data Observatory Qlik quota (requests per billing period)
CARTO_DS_DO_GENERAL_QUOTA Yes LDS Data Observatory quota (requests per billing period)
CARTO_VERSION No Version of BUILDER installed
CARTO_CLIENT_BUILD No Determines the type of build
CARTO_OAUTH_GOOGLE_CLIENT_ID Yes Google OAuth client id
CARTO_OAUTH_GOOGLE_CLIENT_SECRET Yes Google OAuth client secret
CARTO_OAUTH_GITHUB_CLIENT_ID Yes Github OAuth client id
CARTO_OAUTH_GITHUB_CLIENT_SECRET Yes Github OAuth client secret
MAIL_FROM Yes Email address specified as a sender address
MAIL_ADDRESS Yes IP Address that the SMTP client connects to
MAIL_PORT Yes TCP port that the SMTP client connects to
MAIL_USERNAME Yes Username specified in the remote client AUTH command
MAIL_USERNAME_PASSWORD Yes Password specified in the remote client AUTH command
MAIL_AUTHENTICATION Yes Type of authentication
MAIL_ENABLE_STARTTLS Yes Enable STARTTLS to request an encrypted session
CARTO_PASSWORDS_RATE_LIMIT_MAX_BURST Yes Rate limits for failed login attempts: this value is the number of attempts allowed in a single burst. Default is 10 (attempts)
CARTO_PASSWORDS_RATE_LIMIT_COUNT Yes Rate limits for failed login attempts: number of failed login attempts per minute before locking the account. Default is 10 (attempts)
CARTO_PASSWORDS_RATE_LIMIT_PERIOD Yes Rate limits for failed login attempts: the period that must pass before a user gets back their entire CARTO_PASSWORDS_RATE_LIMIT_COUNT after having been locked out. Default is 60 (seconds)
CARTO_HTTP_PROXY Yes Determines the http proxy to be used expressed as: http://proxy_ip:proxy_port
CARTO_HTTPS_PROXY Yes Determines the http proxy to be used expressed as: https://proxy_ip:proxy_port
CARTO_NO_PROXY Yes Comma separated list of IPs and URLs that won’t connect through the configured proxy expressed, for example: “localhost,127.0.0.1,0.0.0.0”
CARTO_GEOCODER_SEARCH_BAR_PROVIDER Yes External provider to use for geocoder search bar. Possible values: mapbox, tomtom or empty
CARTO_GEOCODER_SEARCH_BAR_MAPBOX_API_KEY Yes Api key for the geocoder search bar provider mapbox
CARTO_GEOCODER_SEARCH_BAR_TOMTOM_API_KEY Yes Api key for the geocoder search bar provider tomtom
MAIL_TEMPLATE_ENABLED Yes Enable or disable mail template customization. Possible values: true, false, default false
MAIL_TEMPLATE_APP_NAME Yes The name of the app that will be displayed in emails WARNING: This value cannot contain blank spaces
MAIL_TEMPLATE_APP_LINK Yes A link to the app or documentation about it. e.g. https://carto.com
MAIL_TEMPLATE_HEADER_LOGO_URL Yes A public URL for the header image in the emails. (it’s resized to 82 pixels wide)
MAIL_TEMPLATE_SUPPORT_LINK Yes A link to get support (it may be a mailto, or a URL). e.g. ‘mailto:support@carto.com
MAIL_TEMPLATE_INCLUDE_CARTO_LINKS Yes False to avoid including references to CARTO docs Possible values: true, false, default false