Merge pull request 'Add sample code' (#1) from add-sample-project into main

Reviewed-on: #1
This commit is contained in:
Mauritz_Uphoff 2025-08-29 07:59:38 +00:00
commit ac79ff4dfc
WARNING! Although there is a key with this ID in the database it does not verify this commit! This commit is SUSPICIOUS.
GPG key ID: 004207B7C5DED9F7
4 changed files with 74 additions and 2 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
vars.yaml
*.versatiles

2
Dockerfile Normal file
View file

@ -0,0 +1,2 @@
# Use the latest docker image of VersaTiles including the frontend.
FROM versatiles/versatiles-frontend:v0.15.6-alpine

View file

@ -1,3 +1,53 @@
# cf-versatiles
# Cloud Foundry: Sample Versatiles App
Sample code to deploy Versatiles app as a Docker container on Cloud Foundry
This repository contains the sample code to deploy a [versatiles](https://docs.versatiles.org/) app to STACKIT Cloud Foundry as a docker container.
It is based on the bundled [front-end](https://docs.versatiles.org/guides/local_server_docker.html#optionb--bundled-frontend-image-versatiles-frontend) 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](https://docs.stackit.cloud/stackit/en/how-to-setup-an-object-storage-client-objectstorage-71009862.html) s3cmd in advance.
### Object Storage
Create a bucket: `s3cmd mb s3://<BUCKET_NAME>`.
Make bucket [public](https://docs.stackit.cloud/stackit/en/bucket-policies-75139510.html#BucketPolicies-SampleBucketpolicies>) applying following policy:
```json
{
"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:
```sh
s3cmd put <FILE_NAME> s3://<BUCKET_NAME>
```
## Deploy the app with Cloud Foundry
Prepare a `vars.yaml` file containing the [variables](https://docs.cloudfoundry.org/devguide/deploy-apps/manifest-attributes.html) 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](https://docs.stackit.cloud/stackit/en/how-to-register-custom-domains-for-apps-on-stackit-cloud-foundry-67771947.html).

18
manifest.yaml Normal file
View file

@ -0,0 +1,18 @@
---
applications:
- name: versatiles-test
memory: 1024M
disk: 1Gi
#routes:
# - route:
# options:
# loadbalancing: round-robin
instances: 1
random-route: true
docker:
image: ((imageUrl))
username: ((dockerUsername))
timeout: 10
health-check-type: http
health-check-http-endpoint: /
command: versatiles serve -p $PORT -s frontend-dev.br.tar ((versatilesUrl))