Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add deployment information to mkdocs, and reference eoapi-template. #114

Merged
merged 6 commits into from
Jul 18, 2023
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ This repository has the demonstration runtimes that are consistently updated wit

The default runtimes are available through separate repositories ([eoapi-cdk](https://github.com/developmentseed/eoapi-cdk) and [k8s-eoapi](https://github.com/developmentseed/k8s-eoapi)).
vincentsarago marked this conversation as resolved.
Show resolved Hide resolved

A demonstration application is accessible with the repository [eoapi-template](https://github.com/developmentseed/eoapi-template).

## Contribution & Development

See [CONTRIBUTING.md](https://github.com/developmentseed/eoAPI/blob/main/CONTRIBUTING.md)
Expand Down
3 changes: 2 additions & 1 deletion docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@ nav:
- Home: "index.md"
- Intro: "intro.md"
- Services: "services.md"
- Development - Contributing: "contributing.md"
- Deployment: "deployment.md"
- Development - Contributing: "contributing.md"


plugins:
- search
Expand Down
4 changes: 4 additions & 0 deletions docs/src/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@ hide:
- navigation
---

The default runtimes are available through separate repositories ([eoapi-cdk](https://github.com/developmentseed/eoapi-cdk) and [k8s-eoapi](https://github.com/developmentseed/k8s-eoapi)).

A demonstration application is accessible with the repository [eoapi-template](https://github.com/developmentseed/eoapi-template).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should really explain clearly what are the option for deploying an eoAPI like system.

right now this page deployment.md is a mix of two things:

  • links to external repo (eoapi-cdk and k8s-eoapi)
  • a step-by-step how to to deploy eoapi custom demo application

IMO this is really confusing.

Possible solution

  1. create an eoapi-docs repo to host all the documentation about eoapi
  2. use the current eaopi repo as an example of how eoapi can work

cc @sharkinsspatial @zacharyDez

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I just renamed the repo to eoapi-k8s so that will have to change too

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vincentsarago We can also just remove the external references if you prefer, but I thought it would be helpful for someone interested in deployment to have this information readily available.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ranchodeluxe updated the name references to the repo.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vincentsarago I agree this is confusing. Ideally I think the eoAPI repo would have 3 deployment sections

  1. How to deploy the eoAPI demonstration runtimes locally via docker.
  2. A description of eoapi-cdk , eoapi-cdk and eoapi-template and pointers to their docs for deploying with the default runtimes they contain.
  3. How to deploy the eoAPI demonstration runtimes using a local CDK app (mostly copy and pasted from eoapi-template) that uses the eoapi-cdk constructs but with runtime overrides.

I think this is what @zacharyDez was shooting for with his PR but based on your feedback maybe we need a bit more clarification.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@sharkinsspatial yep that's it on point!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Got it! Will go for another iteration.

## AWS (Lambda)

An example of Cloud Stack is available for AWS (RDS for the database and Lambda for the APIs)
Expand Down
59 changes: 18 additions & 41 deletions docs/src/intro.md
Original file line number Diff line number Diff line change
@@ -1,68 +1,46 @@
---
hide:
- navigation
---


<p align="center">
<img width="700" src="../img/eoAPI.png"/>
<p align="center">Create a full Earth Observation API with Metadata, Raster and Vector services.</p>
</p>

## **E**arth **O**bservation **API**

`eoAPI` combines several *state-of-the-art* projects to create a full Earth Observation API. Each service can be used and deployed independently but `eoAPI` creates the interconnections between each service:

- **pgSTAC** database [https://github.com/stac-utils/pgstac](https://github.com/stac-utils/pgstac)

- **STAC API** built on top of [https://github.com/stac-utils/stac-fastapi](https://github.com/stac-utils/stac-fastapi)

- **STAC Items And Mosaic Raster Tiles** API built on top of [https://github.com/stac-utils/titiler-pgstac](https://github.com/stac-utils/titiler-pgstac)

- **OGC Features and Vector Tiles** API built on top of [https://github.com/developmentseed/tipg](https://github.com/developmentseed/tipg)
<p align="center">
<a href="https://github.com/developmentseed/eoAPI/actions?query=workflow%3ACI" target="_blank">
<img src="https://github.com/developmentseed/eoAPI/workflows/CI/badge.svg" alt="Test">
</a>
<a href="https://github.com/developmentseed/eoAPI/blob/main/LICENSE" target="_blank">
<img src="https://img.shields.io/github/license/developmentseed/titiler.svg" alt="Downloads">
</a>
</p>

---

## Why should you use `eoAPI`
**Documentation**: <a href="https://eoapi.dev" target="_blank">https://eoapi.dev</a>

- **Focus on your use case:** `eoAPI` is used for large-scale data processing, building geographic information systems (GIS), creating real-time data applications, climate research and environmental monitoring, machine learning model training, and more.

- **Unified Repository:** `eoAPI` provides a single, unified repository to several state-of-the-art Earth Observation (EO) data services, including Metadata search (STAC), Raster, and Vector services. This can simplify the process of accessing and working with these services.

- **Interoperability:** `eoAPI` is designed to enable interoperability among its included services. This can make building complex applications that leverage different types of EO data easier.

- **Open Source and Community Support:** As an open-source project, `eoAPI` allows developers to inspect its code, contribute to its development, and use it as a base for custom solutions. It also benefits from the support and innovation of a community of developers and EO data users.

- **Scalability and Flexibility:** Each service in `eoAPI` can be used or deployed independently, which provides a lot of flexibility. If a developer's application only requires one or two of eoAPI's services, they don't need to deploy the entire suite.

- **Facilitate Earth Observation Tasks:** `eoAPI` includes specialized tools for working with EO data, such as dynamic tiling, metadata searching, and features/vector tiles API. These can significantly facilitate EO data processing, analysis, and visualization.

- **Ease of Deployment:** `eoAPI` supports containerized deployment using Docker, making it easier to set up, scale, and maintain applications built on it. Spin up the demo locally and start experimenting in minutes.
**Source Code**: <a href="https://github.com/developmentseed/eoAPI" target="_blank">https://github.com/developmentseed/eoAPI</a>

---

## Services Overview

## **E**arth **O**bservation **API**

- **STAC Metadata**: Built with [stac-fastapi.pgstac](https://github.com/stac-utils/stac-fastapi) and extended with a custom extension to connect it to **`TiTiler`** and a **[Search Viewer](http://localhost:8081/index.html)**. See [docs](http://localhost:8081/docs) for API details.
`eoAPI` combines several *state-of-the-art* projects to create a full Earth Observation API. Each service can be used and deployed independently but `eoAPI` creates the interconnections between each service:

- **Raster Tiles**: Built with [titiler-pgstac](https://github.com/stac-utils/titiler-pgstac) and [pgstac](https://github.com/stac-utils/pgstac) to enable large scale mosaic based on results of STAC searches queries. See [docs](http://localhost:8082/docs) for API details.
- **pgSTAC** database [https://github.com/stac-utils/pgstac](https://github.com/stac-utils/pgstac)

- **OGC Features & Vector Tiles**: Built with [tipg](https://github.com/developmentseed/tipg) to create a lightweight OGC Features and Tiles API with a PostGIS database. See [docs](http://localhost:8083/api.html) for API details.
- **STAC API** built on top of [https://github.com/stac-utils/stac-fastapi](https://github.com/stac-utils/stac-fastapi)

See [service details](./services.md) for more information.
- **STAC Items And Mosaic Raster Tiles** API built on top of [https://github.com/stac-utils/titiler-pgstac](https://github.com/stac-utils/titiler-pgstac)

*Note: The documentation links referenced require lauching the application with `docker-compose` or another deployment*.
- **OGC Features and Vector Tiles** API built on top of [https://github.com/developmentseed/tipg](https://github.com/developmentseed/tipg)

---

## Getting started

- Clone the repository: `git clone https://github.com/developmentseed/eoAPI.git`
- Navigate to the project: `cd eoAPI`
- Run services with `docker-compose up`
- Follow the [MAXAR open data demo](https://github.com/vincentsarago/MAXAR_opendata_to_pgstac) (or get inspired by the other [demos](./demo/)) to load some data into eoAPI
- Checkout the [Search Viewer](http://localhost:8081/index.html), and the API documentation ([STAC Metadata](http://localhost:8081/docs), [Raster Tiles](http://localhost:8082/docs), [Vector Tiles](http://localhost:8083/api.html))
- Check out the [Search Viewer](http://localhost:8081/index.html), and the API documentation ([STAC Metadata](http://localhost:8081/docs), [Raster Tiles](http://localhost:8082/docs), [Vector Tiles](http://localhost:8083/api.html))

Alternatively, you may launch the application locally:
```bash
Expand All @@ -78,5 +56,4 @@ export DATABASE_URL=postgresql://username:[email protected]:5439/postgis # Conne
.venv/bin/uvicorn eoapi.{SERVICE}.app:app --port 8000 --reload
```

Note: services might have incompatible dependencies which you can resolve by using virtual environement per service

Note: services might have incompatible dependencies which you can resolve by using a virtual environment for each service
zacdezgeo marked this conversation as resolved.
Show resolved Hide resolved