nategodd/README.md
type-two 11edf66af6 Multi-stage Dockerfile (pyswisseph needs gcc), deploy notes
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-15 10:44:36 +10:00

3.2 KiB
Raw Permalink Blame History

NATEGODD

Natal chart generator in the spirit of the great 90s desktop astrology programs (Win*Star / Solar Fire era) — full detail, real ephemeris, written report.

What it does

  • Swiss Ephemeris computation (bundled ephe/ files, valid 18002400 AD): SunPluto, Chiron, Ceres, Pallas, Juno, Vesta, True North/South Node, Mean Lilith, Part of Fortune, Vertex, ASC/MC/DSC/IC.
  • Historical time atlas: offline city search (25k cities via geonamescache), timezonefinder + IANA tzdata for correct historical offsets and DST (wartime double summer time and all). Manual lat/lon/offset override available.
  • 7 house systems: Placidus, Koch, Whole Sign, Equal, Porphyry, Campanus, Regiomontanus.
  • Aspects: 11 aspect types with per-body orbs, luminary bonus, applying/separating, triangular aspect grid, declination parallels/contraparallels.
  • Detail: retrogrades, essential dignities (domicile/exaltation/detriment/fall), element/modality/polarity balances, day/night sect, moon phase + illumination.
  • Interpretation report: hand-written Big Three texts (Sun/Moon/Rising × 12) plus a keyword-synthesis engine for every planet-in-sign, planet-in-house and aspect. Printable.
  • Time unknown mode: casts a noon solar chart, drops houses/angles honestly.
  • SVG chart wheel (element-tinted zodiac ring, houses, aspect lines, collision-spread glyphs), saved charts in localStorage.
  • Synastry / compatibility: compare any two charts — weighted harmony/tension scoring, biwheel (partner's planets overlaid in your houses), inter-aspect grid, house overlays, and a written compatibility report.
  • Export: chart as re-loadable .json file, wheel as SVG or PNG, any report via print → PDF. 📂 Load file re-imports an exported chart.
  • Aspect reference: every aspect type explained (geometry, orb, feel) in the Aspects tab, plus pair-specific interpretation notes for 30+ classic planet pairs.

Run

python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
.venv/bin/python app.py

Open http://localhost:7799.

Layout

  • chart.py — ephemeris computation engine
  • geo.py — city search + historical timezone resolution
  • interp.py — interpretation texts + synthesis engine
  • app.py — Flask server (/api/search, /api/chart)
  • static/ — single-page frontend (vanilla JS, SVG wheel)
  • ephe/ — Swiss Ephemeris data files (sepl/semo/seas 18002400)

Ephemeris data files are from the official Swiss Ephemeris distribution (AGPL, astro.com / github.com/aloistr/swisseph).

Live deployment

Hosted at https://stars.monsterrobot.games — botchat/games VPS (humanjing@100.71.119.27), container nategodd (gunicorn, bound to 127.0.0.1:7799), fronted by the existing cloudflared tunnel (~/.cloudflared/config.yml ingress rule → localhost:7799; DNS = proxied CNAME to the tunnel). Stateless: no DB, no per-user storage — saved charts live in each visitor's browser.

Redeploy after changes:

rsync -a --delete --exclude .venv --exclude .git --exclude __pycache__ ./ humanjing@100.71.119.27:nategodd/
ssh humanjing@100.71.119.27 'cd ~/nategodd && docker compose up -d --build'
curl -s -o /dev/null -w '%{http_code}\n' "https://stars.monsterrobot.games/?v=$(date +%s)"