Skip to content

Commit 987672e

Browse files
Merge branch 'main' into feat/use-eoapi-cdk-v3
2 parents 0f138f5 + f300973 commit 987672e

37 files changed

+2557
-700
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
pre-commit run --all-files
3939
4040
- name: Launch services
41-
run: docker compose up -d stac raster vector
41+
run: docker compose -f docker-compose.custom.yml --profile gunicorn up -d
4242

4343
- name: install lib postgres
4444
run: |
@@ -67,8 +67,8 @@ jobs:
6767
# see https://github.com/developmentseed/tipg/issues/37
6868
- name: Restart the Vector service
6969
run: |
70-
docker compose stop vector
71-
docker compose up -d vector
70+
docker compose -f docker-compose.custom.yml --profile gunicorn stop vector
71+
docker compose -f docker-compose.custom.yml --profile gunicorn up -d vector
7272
7373
- name: Sleep for 10 seconds
7474
run: sleep 10s
@@ -78,7 +78,7 @@ jobs:
7878
run: python -m pytest .github/workflows/tests/
7979

8080
- name: Stop services
81-
run: docker compose stop
81+
run: docker compose -f docker-compose.custom.yml stop
8282

8383

8484
publish-docker:

.github/workflows/deploy_mkdocs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
- name: Install dependencies
2929
run: |
3030
python -m pip install --upgrade pip
31-
python -m pip install mkdocs mkdocs-material pygments
31+
python -m pip install -r docs/requirements.txt
3232
3333
- name: Deploy docs
3434
run: mkdocs gh-deploy --force -f docs/mkdocs.yml

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ instance/
6363

6464
# Sphinx documentation
6565
docs/_build/
66+
docs/src/.DS_Store
67+
docs/src/img/.DS_Store
68+
docs/src/overrides/.DS_Store
69+
docs/.DS_Store
6670

6771
# PyBuilder
6872
target/

.vscode/settings.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"yaml.schemas": {
3+
"https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml"
4+
},
5+
"yaml.customTags": [
6+
"!ENV scalar",
7+
"!ENV sequence",
8+
"tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg",
9+
"tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji",
10+
"tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format"
11+
]
12+
}

CONTRIBUTING.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# Development - Contributing
2-
31
Issues and pull requests are more than welcome: https://github.com/developmentseed/eoAPI/issues
42

3+
You can also start **Discussions** in https://github.com/developmentseed/eoAPI/discussions
4+
55
**dev install**
66

77
```bash
@@ -19,7 +19,9 @@ python -m pip install "psycopg[binary,pool]"
1919
python -m pip install -e runtime/eoapi/raster["test"] # or -e runtime/eoapi/stac["test"] | -e runtime/eoapi/vector["test"]
2020
```
2121

22-
Note: services might have incompatible dependencies which you can resolve by using virtual environnement per service
22+
!!! danger
23+
24+
Python applications might have incompatible dependencies which you can resolve by using virtual environment *per application*
2325

2426
**pre-commit**
2527

@@ -28,3 +30,13 @@ This repo is set to use `pre-commit` to run *isort*, *ruff*, *pydocstring*, *bla
2830
```bash
2931
$ pre-commit install
3032
```
33+
34+
### Open Source
35+
36+
You can also contribute indirectly to eoAPI by helping on the sub-modules:
37+
38+
- **PgSTAC** database https://github.com/stac-utils/pgstac
39+
- **stac-fastapi**: https://github.com/stac-utils/stac-fastapi
40+
- **titiler-pgstac**: https://github.com/stac-utils/titiler-pgstac
41+
- **TiTiler**: https://github.com/developmentseed/titiler
42+
- **TiPg**: https://github.com/developmentseed/tipg

README.md

Lines changed: 79 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
21
<p align="center">
32
<img width="700" src="docs/logos/eoAPI.png"/>
4-
<p align="center">Create a full Earth Observation API with Metadata, Raster and Vector services.</p>
3+
<p align="center">Create a full Earth Observation API with Metadata, Raster, and Vector services.</p>
54
</p>
65

76
<p align="center">
@@ -23,7 +22,7 @@
2322

2423
## **E**arth **O**bservation **API**
2524

26-
`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:
25+
`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:
2726

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

@@ -37,52 +36,108 @@
3736

3837
## 🌍 eoAPI: An Open-Source Community Project
3938

40-
`eoAPI` is proudly open-source and driven by a dedicated community of contributors. We believe in the power of open collaboration and welcome anyone to contribute, discuss, and grow this tool with us. Join the conversations on [GitHub Discussions](https://github.com/developmentseed/eoAPI/discussions) and make a difference in the Earth Observation realm.
39+
`eoAPI` is proudly open-source and driven by a dedicated community of contributors. We believe in the power of open collaboration and welcome anyone to contribute, discuss, and grow this tool. Join the conversations on [GitHub Discussions](https://github.com/developmentseed/eoAPI/discussions) and make a difference in the Earth Observation realm.
4140

4241

4342
---
4443

4544
## Getting started
4645

47-
- Clone the repository: `git clone https://github.com/developmentseed/eoAPI.git`
48-
- Navigate to the project: `cd eoAPI`
49-
- Run services with `docker compose up`
50-
- 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
51-
- 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))
46+
The easiest way to start exploring the different eoAPI services is with *Docker*. Clone this repository and start the multi-container *Docker* applications using `Compose`:
47+
48+
```
49+
git clone https://github.com/developmentseed/eoAPI.git
50+
cd eoAPI
51+
docker compose up
52+
```
53+
54+
Once the applications are *up*, you'll need to add STAC **Collections** and **Items** to the PgSTAC database. If you don't have, you can use the follow the [MAXAR open data demo](https://github.com/vincentsarago/MAXAR_opendata_to_pgstac) (or get inspired by the other [demos](https://github.com/developmentseed/eoAPI/tree/main/demo)).
55+
56+
Then you can start exploring your dataset with:
57+
58+
- the STAC Metadata service [http://localhost:8081](http://localhost:8081)
59+
- the Raster service [http://localhost:8082](http://localhost:8082)
60+
61+
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).
62+
63+
## Deployment
64+
65+
This repository has current runtimes that are consistently updated with new functionality.
66+
67+
The services can be deployed locally via docker with `docker compose up`.
68+
69+
Two Infrastructure as Code (IaC) repositories are available:
70+
- [eoapi-cdk](https://github.com/developmentseed/eoapi-cdk): A set of AWS CDK constructs to deploy eoAPI services
71+
- [eoapi-k8s](https://github.com/developmentseed/eoapi-k8s): IaC and Helm charts for deploying eoAPI services on AWS and GCP
72+
73+
Finally, [eoapi-template](https://github.com/developmentseed/eoapi-template) is an AWS CDK app that shows how to configure the eoapi-cdk constructs.
74+
75+
Alternatively, you may install the libraries locally:
76+
77+
<details>
5278

53-
Alternatively, you may launch the application locally:
5479
```bash
5580
python -m pip install --upgrade virtualenv
5681
virtualenv .venv
5782
source .venv/bin/activate
5883

59-
python -m pip install "psycopg[binary,pool]" uvicorn
60-
python -m pip install runtime/eoapi/{SERVICE} # SERVICE should be one of `raster, vector, stac`
61-
6284
export DATABASE_URL=postgresql://username:[email protected]:5439/postgis # Connect to the database of your choice
6385

64-
.venv/bin/uvicorn eoapi.{SERVICE}.app:app --port 8000 --reload
86+
python -m pip install uvicorn
87+
88+
###############################################################################
89+
# Install and launch the application
90+
# Select one of the following
91+
92+
###############################################################################
93+
# STAC
94+
python -m pip install "psycopg[binary,pool]" stac-fastapi-pgstac
95+
.venv/bin/uvicorn stac_fastapi.pgstac.app:app --port 8081 --reload
96+
97+
###############################################################################
98+
# RASTER
99+
python -m pip install "psycopg[binary,pool]" titiler-pgstac
100+
.venv/bin/uvicorn titiler.pgstac.main:app --port 8082 --reload
101+
102+
###############################################################################
103+
# VECTOR
104+
python -m pip install tipg
105+
.venv/bin/uvicorn tipg.main:app --port 8083 --reload
65106
```
66107

67-
Note: services might have incompatible dependencies which you can resolve by using a virtual environment for each service
108+
Note: python libraries might have incompatible dependencies, which you can resolve by using a virtual environment for each ones
68109

69-
---
110+
</details>
70111

71-
## Deployment
112+
## Custom runtimes
72113

73-
This repository has current runtimes that are consistently updated with new functionality.
114+
The eoAPI repository hosts customized versions of each base service which can work in parallel or in combination with each other.
74115

75-
The services can be deployed locally via docker with `docker-compose up`. The official runtimes can be launched with `docker-compose -f docker-compose.yml -f docker-compose.official.yml up stac-fastapi titiler-pgstac tipg`.
116+
eoAPI custom runtimes can be launched with docker
76117

77-
Two Infrastructure as Code (IaC) repositories are available:
78-
- [eoapi-cdk](https://github.com/developmentseed/eoapi-cdk): A set of AWS CDK constructs to deploy eoAPI services
79-
- [eoapi-k8s](https://github.com/developmentseed/eoapi-k8s): IaC and Helm charts for deploying eoAPI services on AWS and GCP
118+
```
119+
docker compose -f docker-compose.custom.yml --profile gunicorn up
120+
```
80121

81-
Finally, [eoapi-template](https://github.com/developmentseed/eoapi-template) is an AWS CDK app that shows how to configure the eoapi-cdk constructs.
122+
Alternatively, you may launch the application locally:
123+
```bash
124+
python -m pip install --upgrade virtualenv
125+
virtualenv .venv
126+
source .venv/bin/activate
127+
128+
python -m pip install "psycopg[binary,pool]" uvicorn
129+
python -m pip install runtime/eoapi/{SERVICE} # SERVICE should be one of `raster, vector, stac.`
130+
131+
export DATABASE_URL=postgresql://username:[email protected]:5439/postgis # Connect to the database of your choice
132+
133+
.venv/bin/uvicorn eoapi.{SERVICE}.app:app --port 8000 --reload
134+
```
135+
136+
Note: services might have incompatible dependencies, which you can resolve by using a virtual environment for each service
82137

83138
## Contribution & Development
84139

85-
We highly value and rely on our community! Whether you're an expert or just getting started, you can make a difference. Here's how:
140+
We highly value and rely on our community! You can make a difference whether you're an expert or just getting started. Here's how:
86141

87142
- **Contribute**: Check out our [CONTRIBUTING.md](https://github.com/developmentseed/eoAPI/blob/main/CONTRIBUTING.md) guide to understand how you can contribute.
88143
- **Engage in Discussions**: Share your ideas, ask questions, or provide feedback through [GitHub Discussions](https://github.com/developmentseed/eoAPI/discussions). This is where most of our project conversations take place.

0 commit comments

Comments
 (0)