cf-versatiles/README.md
2025-09-05 08:07:26 +02:00

2.7 KiB

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. 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 variables.tf. Call terraform apply --var-file=<PATH-TO-TFVARS-FILE>.