Skip to content

Commit 6a47188

Browse files
committed
chore: prepping for deployment
1 parent 912ff4f commit 6a47188

13 files changed

Lines changed: 169 additions & 19 deletions

File tree

‎.github/workflows/docs-deploy.yml‎

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
name: Deploy docs
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
inputs:
8+
ref:
9+
description: Git tag or commit to deploy (must contain the docs site)
10+
required: true
11+
type: string
12+
13+
permissions:
14+
contents: read
15+
16+
# Serialize image publication and webhook calls. Coolify completes the rollout asynchronously.
17+
# Configure its Docker Image application to pull ghcr.io/<owner>/<repo>-docs:production.
18+
concurrency:
19+
group: docs-production
20+
cancel-in-progress: false
21+
22+
jobs:
23+
deploy:
24+
runs-on: ubuntu-latest
25+
timeout-minutes: 45
26+
environment:
27+
name: docs-production
28+
url: https://spatialnode.com/superstac
29+
permissions:
30+
contents: read
31+
packages: write
32+
steps:
33+
- uses: actions/checkout@v4
34+
with:
35+
ref: ${{ github.event_name == 'release' && github.event.release.tag_name || inputs.ref }}
36+
persist-credentials: false
37+
38+
- name: Check deployment configuration
39+
env:
40+
COOLIFY_DEPLOY_WEBHOOK: ${{ vars.COOLIFY_DEPLOY_WEBHOOK }}
41+
COOLIFY_TOKEN: ${{ secrets.COOLIFY_TOKEN }}
42+
run: |
43+
: "${COOLIFY_DEPLOY_WEBHOOK:?Set the docs-production COOLIFY_DEPLOY_WEBHOOK variable}"
44+
: "${COOLIFY_TOKEN:?Set the docs-production COOLIFY_TOKEN secret}"
45+
46+
- name: Name the image
47+
id: image
48+
run: |
49+
image="ghcr.io/${GITHUB_REPOSITORY,,}-docs"
50+
revision="$(git rev-parse HEAD)"
51+
tag="sha-${revision}-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
52+
echo "name=$image" >> "$GITHUB_OUTPUT"
53+
echo "ref=$image:$tag" >> "$GITHUB_OUTPUT"
54+
echo "revision=$revision" >> "$GITHUB_OUTPUT"
55+
56+
- uses: actions/setup-node@v4
57+
with:
58+
node-version: '22'
59+
60+
- name: Build and type-check
61+
env:
62+
IMAGE: ${{ steps.image.outputs.ref }}
63+
REVISION: ${{ steps.image.outputs.revision }}
64+
run: |
65+
docker build --platform linux/amd64 \
66+
--label "org.opencontainers.image.source=https://github.com/$GITHUB_REPOSITORY" \
67+
--label "org.opencontainers.image.revision=$REVISION" \
68+
--tag "$IMAGE" docs
69+
70+
- name: Test the built container
71+
env:
72+
IMAGE: ${{ steps.image.outputs.ref }}
73+
run: |
74+
docker run --detach --name docs-test --publish 127.0.0.1:3000:3000 "$IMAGE"
75+
trap 'docker logs docs-test; docker rm --force docs-test' EXIT
76+
ready=false
77+
for attempt in {1..60}; do
78+
if curl --fail --silent http://127.0.0.1:3000/superstac > /dev/null; then
79+
ready=true
80+
break
81+
fi
82+
sleep 2
83+
done
84+
if [ "$ready" != true ]; then
85+
echo 'Documentation container did not become ready' >&2
86+
exit 1
87+
fi
88+
node docs/scripts/check-links.mjs
89+
90+
- uses: docker/login-action@v3
91+
with:
92+
registry: ghcr.io
93+
username: ${{ github.actor }}
94+
password: ${{ secrets.GITHUB_TOKEN }}
95+
96+
- name: Publish tested image
97+
env:
98+
IMAGE: ${{ steps.image.outputs.ref }}
99+
PRODUCTION_IMAGE: ${{ steps.image.outputs.name }}:production
100+
run: |
101+
docker push "$IMAGE"
102+
docker tag "$IMAGE" "$PRODUCTION_IMAGE"
103+
docker push "$PRODUCTION_IMAGE"
104+
echo "Published image: \`$IMAGE\`" >> "$GITHUB_STEP_SUMMARY"
105+
106+
- name: Request Coolify deployment
107+
env:
108+
COOLIFY_DEPLOY_WEBHOOK: ${{ vars.COOLIFY_DEPLOY_WEBHOOK }}
109+
COOLIFY_TOKEN: ${{ secrets.COOLIFY_TOKEN }}
110+
run: bash docs/scripts/deploy-coolify.sh
111+

‎Cargo.toml‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,6 @@ edition = "2021"
1515
rust-version = "1.88"
1616
license = "MIT"
1717
repository = "https://github.com/spatialnode/superstac"
18-
homepage = "https://github.com/spatialnode/superstac"
18+
homepage = "https://spatialnode.com/superstac"
19+
documentation = "https://spatialnode.com/superstac"
1920
authors = ["Emmanuel Jolaiya <emmanuel@spatialnode.com>"]

‎README.md‎

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,23 @@
11
# SuperSTAC
22

3-
[![License](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE)
3+
[![License](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/spatialnode/superstac/blob/main/LICENSE)
44
[![crates.io](https://img.shields.io/crates/v/superstac-search.svg)](https://crates.io/crates/superstac-search)
5-
[![docs.rs](https://docs.rs/superstac-core/badge.svg)](https://docs.rs/superstac-search)
5+
[![Documentation](https://img.shields.io/badge/docs-SuperSTAC-blue)](https://spatialnode.com/superstac)
6+
[![docs.rs](https://docs.rs/superstac-search/badge.svg)](https://docs.rs/superstac-search)
67

78
<p align="center">
89
<picture>
9-
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/superstac-logo-dark.svg">
10-
<source media="(prefers-color-scheme: light)" srcset="docs/assets/superstac-logo.svg">
11-
<img src="docs/assets/superstac-logo.svg" alt="SuperSTAC logo" width="480">
10+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/spatialnode/superstac/main/docs/assets/superstac-logo-dark.svg">
11+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/spatialnode/superstac/main/docs/assets/superstac-logo.svg">
12+
<img src="https://raw.githubusercontent.com/spatialnode/superstac/main/docs/assets/superstac-logo.svg" alt="SuperSTAC logo" width="480">
1213
</picture>
1314
</p>
1415

15-
Federated [STAC](https://stacspec.org/) search across multiple catalogs. Query
16-
Element84, Microsoft Planetary Computer, and others through one API.
16+
**Many catalogs. One search.**
17+
18+
Search across [STAC](https://stacspec.org/) catalogs through one interface, with Python, Rust, or the command line.
19+
20+
Query Element84, Microsoft Planetary Computer, and others through one API.
1721
Items come back deduplicated, with their collection IDs and asset keys
1822
normalized to canonical names — regardless of which catalog they came from.
1923

@@ -32,6 +36,18 @@ SuperSTAC queries every catalog you've registered, drops the ones that don't
3236
serve the requested collection, runs the rest concurrently with retry and
3337
timeouts, then merges and dedupes the results.
3438

39+
## Documentation
40+
41+
Read the [SuperSTAC documentation](https://spatialnode.com/superstac) for installation, tutorials, and API guides.
42+
43+
- [Quickstart](https://spatialnode.com/superstac/docs/start/quickstart)
44+
- [Python guide](https://spatialnode.com/superstac/docs/python/overview)
45+
- [Rust guide](https://spatialnode.com/superstac/docs/rust/overview)
46+
- [Command-line guide](https://spatialnode.com/superstac/docs/cli/overview)
47+
- [Configuration reference](https://spatialnode.com/superstac/docs/reference/configuration)
48+
49+
Try the [Python quickstart notebook](https://spatialnode.com/superstac/docs/python/notebook) for a two-catalog search, footprint map, and GeoJSON export in Colab or Jupyter.
50+
3551
## Install
3652

3753
### Rust library
@@ -110,7 +126,7 @@ settings:
110126
```
111127
112128
The full schema and every setting is documented inline at
113-
[`crates/core/src/models/settings.rs`](./crates/core/src/models/settings.rs).
129+
[`crates/core/src/models/settings.rs`](https://github.com/spatialnode/superstac/blob/main/crates/core/src/models/settings.rs).
114130

115131
## Library usage
116132

@@ -177,6 +193,6 @@ Some things on the way:
177193

178194
## License
179195

180-
MIT. See [LICENSE](./LICENSE).
196+
MIT. See [LICENSE](https://github.com/spatialnode/superstac/blob/main/LICENSE).
181197

182198
Feedback and issues welcome — this is early. If you try it and you see any bug, feel free to open an issue!

‎crates/cli/Cargo.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ rust-version.workspace = true
1010
license.workspace = true
1111
repository.workspace = true
1212
homepage.workspace = true
13+
documentation.workspace = true
1314
authors.workspace = true
1415

1516
[[bin]]

‎crates/cli/src/main.rs‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use superstac_engine::SuperSTACEngine;
99
use superstac_search::query::SearchQuery;
1010
use tracing_subscriber::EnvFilter;
1111

12-
/// Federated STAC search across multiple catalogs.
12+
/// Many catalogs. One search. Search across STAC catalogs from the command line.
1313
#[derive(Parser)]
1414
#[command(name = "superstac", version, about, long_about = None)]
1515
struct Cli {

‎crates/config/Cargo.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ rust-version.workspace = true
1010
license.workspace = true
1111
repository.workspace = true
1212
homepage.workspace = true
13+
documentation.workspace = true
1314
authors.workspace = true
1415

1516
[dependencies]

‎crates/core/Cargo.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ rust-version.workspace = true
1010
license.workspace = true
1111
repository.workspace = true
1212
homepage.workspace = true
13+
documentation.workspace = true
1314
authors.workspace = true
1415

1516
[dependencies]

‎crates/engine/Cargo.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ rust-version.workspace = true
1010
license.workspace = true
1111
repository.workspace = true
1212
homepage.workspace = true
13+
documentation.workspace = true
1314
authors.workspace = true
1415

1516
[dependencies]

‎crates/python/Cargo.toml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ rust-version.workspace = true
1010
license.workspace = true
1111
repository.workspace = true
1212
homepage.workspace = true
13+
documentation.workspace = true
1314
authors.workspace = true
1415
publish = false
1516

‎crates/python/README.md‎

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,35 @@
22

33
<p align="center">
44
<picture>
5-
<source media="(prefers-color-scheme: dark)" srcset="../../docs/assets/superstac-logo-dark.svg">
6-
<source media="(prefers-color-scheme: light)" srcset="../../docs/assets/superstac-logo.svg">
7-
<img src="../../docs/assets/superstac-logo.svg" alt="SuperSTAC logo" width="480">
5+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/spatialnode/superstac/main/docs/assets/superstac-logo-dark.svg">
6+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/spatialnode/superstac/main/docs/assets/superstac-logo.svg">
7+
<img src="https://raw.githubusercontent.com/spatialnode/superstac/main/docs/assets/superstac-logo.svg" alt="SuperSTAC logo" width="480">
88
</picture>
99
</p>
1010

11-
Python bindings for [superstac](https://github.com/spatialnode/superstac) —
12-
federated STAC search across multiple catalogs.
11+
**Many catalogs. One search.**
12+
13+
Search across STAC catalogs through one interface, with Python, Rust, or the command line.
14+
15+
This package provides the Python bindings for [SuperSTAC](https://github.com/spatialnode/superstac).
1316

1417
> **Status: alpha.** APIs are not yet stable. Pre-1.0; expect breaking changes.
1518
1619
`superstac` ships a sync `Client` (drop-in for `pystac_client.Client` in most
1720
code) and an `AsyncClient` for asyncio users.
1821

22+
## Documentation
23+
24+
Read the [SuperSTAC documentation](https://spatialnode.com/superstac) for installation, tutorials, and API guides.
25+
26+
- [Quickstart](https://spatialnode.com/superstac/docs/start/quickstart)
27+
- [Python guide](https://spatialnode.com/superstac/docs/python/overview)
28+
- [Rust guide](https://spatialnode.com/superstac/docs/rust/overview)
29+
- [Command-line guide](https://spatialnode.com/superstac/docs/cli/overview)
30+
- [Configuration reference](https://spatialnode.com/superstac/docs/reference/configuration)
31+
32+
Try the [Python quickstart notebook](https://spatialnode.com/superstac/docs/python/notebook) for a two-catalog search, footprint map, and GeoJSON export in Colab or Jupyter.
33+
1934
## Install
2035

2136
```bash

0 commit comments

Comments
 (0)