This repository contains the configuration files and ansible scripts for deploying the different service of the Virtual Map Forum (VKF). The VKF is designed as a service-oriented architecture with different services and components. The following figure gives an overview about the architecture.
⚠️ The figure is currently missing the placename service as well as the TYPO3 setup with the web client.
For each service component an ansible scripts is available, which describes the system setup.
A tile server for delivering OpenStreetMap based map tiles. The service supports raster and vector tiles and is based on the OpenMapTiles ecosystem.
System requirements:
- Debian 11
- 140 GB SSD Storage
- 2 to 4 vCPU
- 2 to 4 GB RAM
- Public network or internal
Redundancy:
- 2 to 4 systems
Basically, the hardware requirements for delivering raster tiles are higher than for vector tiles, because in the case of raster tiles the server also handles the rendering of the tiles. More redundancy, CPU and RAM increase the performance.
Distributes requests to the different basemap services according to a defined balancing algorithm. Uses a file cache for caching raster tiles. Should support multiple sub-domains so clients can request map tiles faster.
System requirements:
- Debian 11
- 40 GB Storage (Should scale with the cache size)
- 1 vCPU
- 2 GB RAM
- Public network
Contains the public metadata of the VKF and is used for map search. It is based on Elasticsearch.
System requirements:
- Debian 11
- 10 GB Storage
- 2 vCPU
- 2 GB RAM
- Public network
The service delivers tiles and images. It delivers static content, which is stored in the NFS mount. Uses multiple sub-domains to access the individual image and tile services.
System requirements:
- Debian 11
- 20 GB Storage
- 1 vCPU
- 2 GB RAM
- Public network
Mounts:
- NFS-Mount on vkf-data (read-only)
The service delivers maps via an UMN mapserver. It uses multiple sub-domains to access the individual map services.
System requirements:
- Debian 11
- 20 GB Storage
- 4 vCPU
- 8 GB RAM
- Public network
Mounts:
- NFS-Mount on vkf-data (read-only)
Contains the geocoding service of the VKF. It is based on mediagis/nominatim.
System requirements:
- Debian 11
- 740 GB GB Storage
- 2 vCPU
- 4 GB RAM
- Public network
The service hosts the georeferencing service used by the web application and the daemon that synchronizes the search index entries and the maps and images services.
System requirements:
- Debian 101
- 40 GB Storage
- 8 vCPU
- 16 GB RAM
- Private network
Mounts:
- NFS-Mount on vkf-data (read and write)
The network file system, which contains all image and map data of the vkf.
System requirements:
- 3.5 TB Storage
Placebook | Purpose | Requirements |
---|---|---|
core_setup/main.yml | Installs a base system with the user "vk2adm", blocks the "root" user for ssh and configures IP tables with open ports for SSH and HTTP/S |
|
service_basemap/main.yml | Installs a standalone tile server with initial configuration and an Apache2 HTTP server as reverse proxy. |
|
service_basemap_balancer/main.yml | Installs an software and apache based load balacner with caching capabilities for image serving. |
|
service_explore/main.yml | Installs a single node elasticsearch instance, with an Apache HTTP server as reverse proxy. |
|
service_geo/main.yml | Installs the georeference service and daemon together with the database. The georeference service is proxied via an apache2 http reverse proxy. |
|
service_maps/main.yml | Installs an apache service for serving dynamic maps via mapserver. |
|
service_tiles/main.yml | Installs an apache service for serving files according to the tms and zoomify protocol as well as thumbnails. |
|