Overview | On-Premise | 2GIS Documentation
On-Premise

On-Premise

2GIS On-Premise is a set of services that allow you to deploy 2GIS products on your own sites.

Compared to using 2GIS's own cloud infrastructure, 2GIS On-Premise has the following advantages:

  • Enhanced data security: tracking and control of requests, ability to limit traffic to your local network.
  • Flexible access management: create access keys according to your internal policy.
  • Full control over the infrastructure: ability to quickly scale up or down depending on your needs.

On-Premise services are distributed as Docker images. One service can implement several 2GIS products (see the table below).

2GIS Product On-Premise Service
Maps
MapGL JS API MapGL JS API
Tileserver API
Search
Places API
Geocoder API
Suggest API
Categories API
Regions API
Catalog API
Sapphire API
Navigation
Directions API
Distance Matrix API
Truck Direction API
Pairs Direction API
Map Matching API
Moses
Isochrone API
Public Transport API
TSP API
Untitled Service

The recommended way of deployment is to use Kubernetes (version 1.19 has been tested and verified to work). Helm charts are also available for most services to simplify the process of deployment.

Additional requirements:

  • S3 compatible storage (for downloading and storing archives with Docker images and additional service data)
  • Docker Registry (for deploying Docker images using Kubernetes)

You can download the images using the 2GIS CLI application. You will need to specify an access key that is linked to your chosen set of 2GIS products.

To get the key, fill out the form at dev.2gis.com/order and specify a list of 2GIS products that you need.

2GIS CLI is an application for downloading and updating Docker images of On-Premise services.

The application is available as a Docker image on Docker Hub.

Currently, only S3 storage (Amazon S3 compatible object storage) is supported for downloading the images. Storage parameters and an access key for downloading the images must be specified in a YAML file.

config.yaml

key: <Access key for downloading the images>
log-format: <Log format: text or json. Logs are written to stdout.>
storage:
  type: s3
  host: <S3 storage host name and port in "hostname:port" format>
  bucket: <S3 bucket name>
  access-key: <S3 access key>
  secret-key: <S3 secret key>

To get the images, call the pull command and specify the name of the YAML file as the value of the --config parameter:

docker run --rm -v $(pwd)/config.yaml:/config.yaml 2gis/downloader:v1.0.0 pull --config=/config.yaml

Additionally, you can specify the --workers parameter to change the number of download threads (3 by default, 8 maximum).

Images will be downloaded to the <service name>/apps/<version> directory of the specified S3 storage as tar archives. If additional data is required for the service to operate, it will be downloaded to the <service name>/data/<version> directory.

You will then need to download the images from the S3 storage to your file system (using S3cmd, for example) and load them using the docker load command:

docker load -i service.tar

After that, push the images to your Docker Registry using the login, tag, and push commands:

docker image tag service:latest localhost:5000/myadmin/service:latest
docker login localhost:5000
docker image push localhost:5000/myadmin/service:latest