Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

astrology-charting

A thin FastAPI wrapper around Kerykeion (itself built on pyswisseph/Swiss Ephemeris) that computes birth charts and renders chart-wheel SVGs.

Why this is its own repo, and AGPL-3.0

Kerykeion is AGPL-3.0, because it depends on pyswisseph. This service imports Kerykeion directly, so it is AGPL-3.0 too. The astrology-web platform (Drupal/Commerce, the builder, the art pipeline) is proprietary and talks to this service only over HTTP — never in-process — which is what keeps the AGPL boundary at this service and out of the main platform.

AGPL-3.0 §13 requires that anyone interacting with this service over a network be offered its corresponding source. Before this service is ever reachable by anything other than local development, this repo must be pushed to a public GitHub repository, and CHART_SERVICE_SOURCE_URL must be set to that URL — the /source endpoint serves that link. Don't skip this step before deploying anywhere network-reachable.

Endpoints

  • GET /health — liveness check.
  • GET /source — AGPL §13 source link (see above).
  • POST /chart — given birth data with location/timezone already resolved (geocoding and historical timezone lookup happen upstream in the calling pipeline, not here, per the platform plan §2 — this service is deliberately offline/CPU-only, no GeoNames network calls), returns structured chart data plus a rendered SVG.

Running locally

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env  # fill in CHART_SERVICE_SOURCE_URL once this repo is public
uvicorn app.main:app --reload

Or via Docker:

docker build -t astrology-charting .
docker run -p 8000:8000 astrology-charting

Testing

pip install pytest httpx
pytest

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages