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

68 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```bash
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:
```bash
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)"
```