Astro Engine is an open-source astrological calculation service built on top of Kerykeion and Swiss Ephemeris.
Микросервис для астрологических расчетов. Является вычислительным ядром проекта Astro Guido.
Содержит логику работы с эфемеридами (Swiss Ephemeris) и библиотекой kerykeion.
Важно: Этот сервис распространяется под лицензией GPL (из-за зависимости
pyswisseph) и должен быть изолирован от закрытого коммерческого кода (API) через сетевое взаимодействие.
Сервис предоставляет HTTP API для выполнения расчетов:
- Натальная карта (Планеты, Дома, Аспекты).
- Транзиты (Влияние планет на текущий момент).
- Синастрия (Совместимость двух людей).
- Хорар (Ответ на вопрос по времени возникновения).
Сервис является частью экосистемы и обычно запускается через общий docker-compose.yml:
kerykeion:
build: ./apps/kerykeion_server
environment:
- INTERNAL_API_KEY=your_secret_key
ports:
- "8001:8000"
### Локальный запуск (для разработки)
1. **Установите зависимости:**
```bash
cd apps/kerykeion_server
pip install -r requirements.txt
- Задайте переменную окружения:
# Linux/Mac
export INTERNAL_API_KEY=my_secret_key
# Windows PowerShell
$env:INTERNAL_API_KEY="my_secret_key"
- Запустите сервер:
uvicorn main:app --reload --port 8001
Все эндпоинты защищены. Каждый запрос обязан содержать заголовок:
X-API-Key: <значение INTERNAL_API_KEY>
Если ключ не совпадает или отсутствует, сервис вернет 401 Unauthorized.
POST /natal
{
"name": "User",
"date": "1990-05-03",
"time": "15:20:00",
"tz": "+03:00",
"lat": 55.75,
"lon": 37.61
}
POST /predict/daily
{
"name": "User",
"date": "1990-05-03",
"time": "15:20:00",
"tz": "+03:00",
"lat": 55.75,
"lon": 37.61,
"target_date": "2025-12-30"
}
POST /horary
Обратите внимание: Принимает время в UTC (
dt_utc).
{
"question": "Стоит ли покупать машину?",
"lat": 55.75,
"lon": 37.61,
"dt_utc": "2025-12-29T10:00:00Z"
}
POST /synastry
{
"p1": { ...natal_object... },
"p2": { ...natal_object... }
}
## License
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
It uses the Kerykeion library, which is also licensed under AGPL-3.0.