From 2e2e0d6be23700f3e7bc742b1f049e034997d89c Mon Sep 17 00:00:00 2001 From: Wei Ji <23487320+weiji14@users.noreply.github.com> Date: Tue, 14 Oct 2025 17:05:29 +1300 Subject: [PATCH 1/6] Move titiler config to deploy/vbos/docker-compose.yml Also change port mapping from 8002:8000 to 8000:80. --- deploy/vbos/docker-compose.yml | 20 ++++++++++++++++++++ docker-compose.yml | 20 -------------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/deploy/vbos/docker-compose.yml b/deploy/vbos/docker-compose.yml index 328ebdb..aa8fc51 100644 --- a/deploy/vbos/docker-compose.yml +++ b/deploy/vbos/docker-compose.yml @@ -31,6 +31,26 @@ services: caddy.handle: "/static/*" caddy.handle.root: "* /www/html" caddy.handle.file_server: + titiler: + image: ghcr.io/developmentseed/titiler:latest + container_name: titiler + platform: linux/amd64 + environment: + CPL_TMPDIR: /tmp + GDAL_CACHEMAX: 75% + VSI_CACHE: TRUE + VSI_CACHE_SIZE: 1073741824 + GDAL_DISABLE_READDIR_ON_OPEN: EMPTY_DIR + GDAL_HTTP_MERGE_CONSECUTIVE_RANGES: YES + GDAL_HTTP_MULTIPLEX: YES + GDAL_HTTP_VERSION: 2 + PYTHONWARNINGS: ignore + WEB_CONCURRENCY: 4 + ports: + - "8000:80" + volumes: + - ./data:/data # Optional: mount local directory with your raster files + restart: unless-stopped networks: caddy: diff --git a/docker-compose.yml b/docker-compose.yml index 843a0b9..da944fd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,23 +39,3 @@ services: - ./:/code ports: - "8001:8001" - titiler: - image: ghcr.io/developmentseed/titiler:latest - container_name: titiler - platform: linux/amd64 - environment: - CPL_TMPDIR: /tmp - GDAL_CACHEMAX: 75% - VSI_CACHE: TRUE - VSI_CACHE_SIZE: 1073741824 - GDAL_DISABLE_READDIR_ON_OPEN: EMPTY_DIR - GDAL_HTTP_MERGE_CONSECUTIVE_RANGES: YES - GDAL_HTTP_MULTIPLEX: YES - GDAL_HTTP_VERSION: 2 - PYTHONWARNINGS: ignore - WEB_CONCURRENCY: 4 - ports: - - "8002:8000" - volumes: - - ./data:/data # Optional: mount local directory with your raster files - restart: unless-stopped From dee920ff2ee1fabd95fc59960e5aa1d29df40f47 Mon Sep 17 00:00:00 2001 From: Wei Ji <23487320+weiji14@users.noreply.github.com> Date: Tue, 14 Oct 2025 17:07:33 +1300 Subject: [PATCH 2/6] Update README.md docs Update some docker commands, link to docker engine and compose install pages, update status badge. --- README.md | 11 +++++++---- deploy/README.md | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index d8728cc..e73fd13 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,28 @@ # vbos-backend -[![Build Status](https://travis-ci.org/developmentseed/vbos-backend.svg?branch=master)](https://travis-ci.org/developmentseed/vbos-backend) +[![Docker](https://github.com/developmentseed/vbos-backend/actions/workflows/docker-publish.yml/badge.svg)](https://github.com/developmentseed/vbos-backend/actions/workflows/docker-publish.yml) [![Built with](https://img.shields.io/badge/Built_with-Cookiecutter_Django_Rest-F7B633.svg)](https://github.com/agconti/cookiecutter-django-rest) VBOS Django application and data services. Check out the project's [documentation](http://developmentseed.github.io/vbos-backend/). # Prerequisites -- [Docker](https://docs.docker.com/docker-for-mac/install/) +- [Docker Engine](https://docs.docker.com/engine/install) +- [Docker Compose](https://docs.docker.com/compose/install) # Local Development Start the dev server for local development: + ```bash -docker-compose up +cd deploy/ +docker compose up ``` Run a command inside the docker container: ```bash -docker-compose run --rm web [command] +docker compose run --rm web [command] ``` # Configuration diff --git a/deploy/README.md b/deploy/README.md index b645b37..fb97e4c 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -8,8 +8,8 @@ All deploy related configuration are in the `deploy/` directory. To update or redeploy: 1. First ssh into the server. Keys are in 1PW -2. Fetch code and run migrations. +2. Fetch code and run migrations. * Activate venv. `. ~/vbos-env/bin/activate` - * `cd vbos-backend && git pull`. `python manage.py migrate` + * `cd ~/vbos-backend && git pull`. `python manage.py migrate` 3. Then run `docker compose -f deploy/vbos/docker-compose.yml pull` to pull the new image. By default the image tag is `main` 4. Then run `docker compose -f deploy/vbos/docker-compose.yml --env-file /home/devseed/vbos-backend/.env up --force-recreate -d --no-deps vbos-backend` — this will start a new container and kill the older one for deploys with no downtime From fb91147382a7a5a93dd750022869d6ba9b17f3a0 Mon Sep 17 00:00:00 2001 From: Wei Ji <23487320+weiji14@users.noreply.github.com> Date: Tue, 14 Oct 2025 17:19:25 +1300 Subject: [PATCH 3/6] Add titiler to docker compose up command --- deploy/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy/README.md b/deploy/README.md index fb97e4c..63e8cfa 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -12,4 +12,4 @@ To update or redeploy: * Activate venv. `. ~/vbos-env/bin/activate` * `cd ~/vbos-backend && git pull`. `python manage.py migrate` 3. Then run `docker compose -f deploy/vbos/docker-compose.yml pull` to pull the new image. By default the image tag is `main` -4. Then run `docker compose -f deploy/vbos/docker-compose.yml --env-file /home/devseed/vbos-backend/.env up --force-recreate -d --no-deps vbos-backend` — this will start a new container and kill the older one for deploys with no downtime +4. Then run `docker compose -f deploy/vbos/docker-compose.yml --env-file /home/devseed/vbos-backend/.env up --force-recreate -d --no-deps vbos-backend titiler` — this will start a new container and kill the older one for deploys with no downtime From 039e5ad5793b4aa196ff74f96ff530b646f8fd19 Mon Sep 17 00:00:00 2001 From: geohacker Date: Tue, 14 Oct 2025 15:19:41 +0530 Subject: [PATCH 4/6] add caddy labels, port to titiler --- deploy/vbos/docker-compose.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/deploy/vbos/docker-compose.yml b/deploy/vbos/docker-compose.yml index aa8fc51..a38c31f 100644 --- a/deploy/vbos/docker-compose.yml +++ b/deploy/vbos/docker-compose.yml @@ -47,10 +47,15 @@ services: PYTHONWARNINGS: ignore WEB_CONCURRENCY: 4 ports: - - "8000:80" + - "8001:80" volumes: - ./data:/data # Optional: mount local directory with your raster files restart: unless-stopped + networks: + - caddy + labels: + caddy: vbos-titiler.ds.io + caddy.reverse_proxy: "{{upstreams 8001}}" networks: caddy: From 76cb32bb8d0f4da62b4aaa34d7c566dea7764aa5 Mon Sep 17 00:00:00 2001 From: Development Seed Date: Tue, 14 Oct 2025 10:06:22 +0000 Subject: [PATCH 5/6] use titiler command. fix port --- deploy/vbos/docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/deploy/vbos/docker-compose.yml b/deploy/vbos/docker-compose.yml index a38c31f..a11e73b 100644 --- a/deploy/vbos/docker-compose.yml +++ b/deploy/vbos/docker-compose.yml @@ -46,8 +46,9 @@ services: GDAL_HTTP_VERSION: 2 PYTHONWARNINGS: ignore WEB_CONCURRENCY: 4 + command: ["uvicorn", "titiler.application.main:app", "--host", "0.0.0.0", "--port", "8001", "--workers", "1"] ports: - - "8001:80" + - "8001:8001" volumes: - ./data:/data # Optional: mount local directory with your raster files restart: unless-stopped From b40c3936397e957e41a899070b92170cfd0439b0 Mon Sep 17 00:00:00 2001 From: geohacker Date: Tue, 14 Oct 2025 15:38:27 +0530 Subject: [PATCH 6/6] put back titiler in default local docker-compose --- docker-compose.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docker-compose.yml b/docker-compose.yml index da944fd..843a0b9 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,3 +39,23 @@ services: - ./:/code ports: - "8001:8001" + titiler: + image: ghcr.io/developmentseed/titiler:latest + container_name: titiler + platform: linux/amd64 + environment: + CPL_TMPDIR: /tmp + GDAL_CACHEMAX: 75% + VSI_CACHE: TRUE + VSI_CACHE_SIZE: 1073741824 + GDAL_DISABLE_READDIR_ON_OPEN: EMPTY_DIR + GDAL_HTTP_MERGE_CONSECUTIVE_RANGES: YES + GDAL_HTTP_MULTIPLEX: YES + GDAL_HTTP_VERSION: 2 + PYTHONWARNINGS: ignore + WEB_CONCURRENCY: 4 + ports: + - "8002:8000" + volumes: + - ./data:/data # Optional: mount local directory with your raster files + restart: unless-stopped