Sample code to deploy Versatiles app as a Docker container on Cloud Foundry
Find a file
2025-09-11 11:33:14 +02:00
terraform Add stackit dns 2025-09-11 11:25:13 +02:00
.gitignore Ignore todo list 2025-09-04 10:40:29 +02:00
Dockerfile Add sample code 2025-08-29 09:25:07 +02:00
LICENSE Initial commit 2025-08-29 07:04:59 +00:00
manifest.yaml Add sample code 2025-08-29 09:25:07 +02:00
README.md Update the docs 2025-09-11 11:33:14 +02:00

Cloud Foundry: Sample Versatiles App

This repository contains the sample code to deploy a versatiles app to STACKIT Cloud Foundry as a docker container. It is based on the bundled front-end image, please refer to versatiles documentation for further information.

NOTE: The project contains a dockerfile, which is merely a wrapper around the public versatiles image. It can be uploaded to a private project in STACKIT Container Registry to demonstrate the usage of private images in Cloud Foundry. You can also use any other registry, public or private.

Preparation

Please install and configure s3cmd in advance.

Object Storage

Create a bucket: s3cmd mb s3://<BUCKET_NAME>.

Make bucket public applying following policy:

{
   "Statement":[
      {
         "Sid": "MakePublicReadable",
         "Effect":"Allow",
         "Principal":"*",
         "Action":"s3:GetObject",
         "Resource":"urn:sgws:s3:::<BUCKET_NAME>/*"
      }
   ]
}

s3cmd setpolicy <PATH-TO-POLICY-JSON> s3://<BUCKET_NAME>

Download the tiles file: wget -c "https://download.versatiles.org/osm.versatiles".

NOTE: the whole world map is about 65GB.

Upload tile file to the bucket:

s3cmd put <FILE_NAME> s3://<BUCKET_NAME>

Deploy the app with Cloud Foundry

Prepare a vars.yaml file containing the variables used in the manifest.

Push the app: CF_DOCKER_PASSWORD=<YOUR_PASSWORD> cf push --vars-file <PATH-TO-VARS-FILE>.

Custom Domains

Please refer to official STACKIT documentation.

Terraform

Prerequisites

As for now, the Cloud Foundry organization and the Stage you deploy into have to be created beforehand. You will also need to create an organization manager in order to use STACKIT or custom domains. This can be done via STACKIT API. If you want to use the org manager inside a Cloud Foundry space, you will need to assign the SpaceDeveloper role. This can also be done via API.

In order to create Cloud Foundry resources automatically, you will need a service account and service key. Please refer to the docs.

Deployment

Change to the terraform directory. Create a .tfvars file and insert the required terraform variables, see .tfvars.example:

Call terraform apply --var-file=<PATH-TO-TFVARS-FILE>.