diff --git a/.gitignore b/.gitignore index 3652e61..e54f557 100644 --- a/.gitignore +++ b/.gitignore @@ -113,3 +113,8 @@ node_modules/ # Demo files to ignore demo/cmip6/CMIP6_daily_*stac_items.ndjson + + +# browser compiled code and default config +infrastructure/aws/stac-browser +infrastructure/aws/browser_config.js \ No newline at end of file diff --git a/README.md b/README.md index bdc5df2..371b62a 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,8 @@ - **OGC Features and Vector Tiles** API built on top of [https://github.com/developmentseed/tipg](https://github.com/developmentseed/tipg) +- **A STAC Catalog browsing UI** based on the radiant earth browser : [https://github.com/radiantearth/stac-browser](https://github.com/radiantearth/stac-browser) + --- ## 🌍 eoAPI: An Open-Source Community Project @@ -57,22 +59,19 @@ Then you can start exploring your dataset with: - the STAC Metadata service [http://localhost:8081](http://localhost:8081) - the Raster service [http://localhost:8082](http://localhost:8082) + - the browser UI [http://localhost:8085](http://localhost:8085) If you've added a vector dataset to the `public` schema in the Postgres database, they will be available through the **Vector** service at [http://localhost:8083](http://localhost:8083). -## Deployment +## Deployment with standard runtimes This repository has current runtimes that are consistently updated with new functionality. -The services can be deployed locally via docker with `docker compose up`. - -Two Infrastructure as Code (IaC) repositories are available: -- [eoapi-cdk](https://github.com/developmentseed/eoapi-cdk): A set of AWS CDK constructs to deploy eoAPI services -- [eoapi-k8s](https://github.com/developmentseed/eoapi-k8s): IaC and Helm charts for deploying eoAPI services on AWS and GCP +### Local deployment -Finally, [eoapi-template](https://github.com/developmentseed/eoapi-template) is an AWS CDK app that shows how to configure the eoapi-cdk constructs. +The services can be deployed altogether locally with `docker compose up`. -Alternatively, you may install the libraries locally: +Alternatively, you may install the libraries and launch the applications manually :
@@ -109,7 +108,19 @@ Note: python libraries might have incompatible dependencies, which you can resol
-## Custom runtimes +### Deployment on the cloud + +#### Kubernetes + +[eoapi-k8s](https://github.com/developmentseed/eoapi-k8s) contains IaC and Helm charts for deploying eoAPI services on AWS and GCP. + +#### AWS CDK + +[eoapi-cdk](https://github.com/developmentseed/eoapi-cdk) defines a set of AWS CDK constructs that can be used to deploy eoAPI services on AWS. This repository itself makes use of these in `infrastructure/aws`. An official example usage of these constructs can be found at [eoapi-template](https://github.com/developmentseed/eoapi-template). + + + +## Deployment with custom runtimes The eoAPI repository hosts customized versions of each base service which can work in parallel or in combination with each other. diff --git a/docker-compose.custom.yml b/docker-compose.custom.yml index 8e257f1..64343bc 100644 --- a/docker-compose.custom.yml +++ b/docker-compose.custom.yml @@ -1,6 +1,18 @@ version: '3' services: + stac-browser: + profiles: + - gunicorn + build: + context: dockerfiles + dockerfile: Dockerfile.browser + ports: + - "${MY_DOCKER_IP:-127.0.0.1}:8085:8085" + depends_on: + - stac + - database + - raster stac: container_name: eoapi.stac profiles: diff --git a/docker-compose.yml b/docker-compose.yml index a29863d..f43fec0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,19 @@ version: '3' services: + + # change to official image when available https://github.com/radiantearth/stac-browser/pull/386 + stac-browser: + build: + context: dockerfiles + dockerfile: Dockerfile.browser + ports: + - "${MY_DOCKER_IP:-127.0.0.1}:8085:8085" + depends_on: + - stac-fastapi + - titiler-pgstac + - database + stac-fastapi: # Note: # the official ghcr.io/stac-utils/stac-fastapi-pgstac image uses python 3.8 and uvicorn diff --git a/dockerfiles/Dockerfile.browser b/dockerfiles/Dockerfile.browser new file mode 100644 index 0000000..0aa9932 --- /dev/null +++ b/dockerfiles/Dockerfile.browser @@ -0,0 +1,34 @@ +# Copyright Radiant Earth Foundation + +FROM node:lts-alpine3.18 AS build-step +ARG DYNAMIC_CONFIG=true + +WORKDIR /app + +RUN apk add --no-cache git +RUN git clone https://github.com/radiantearth/stac-browser.git . +# remove the default config.js +RUN rm config.js +RUN npm install +# replace the default config.js with our config file +COPY ./browser_config.js ./config.js +RUN \[ "${DYNAMIC_CONFIG}" == "true" \] && sed -i 's//