68 lines
3.2 KiB
Markdown
68 lines
3.2 KiB
Markdown
# 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 1800–2400 AD):
|
||
Sun–Pluto, 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 1800–2400)
|
||
|
||
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)"
|
||
```
|