OST AI Engine: Installation & Deployment Guide
This guide explains how to install, configure, and deploy the OST AI Engine platform, with a focus on centralized configuration, multi-language management, Dockerization, and Dagster orchestration.Requirements
- OS: Linux, macOS, Windows
- Python: 3.13+
- Go: ≥ 1.20
- Node.js (for Prisma)
- Docker
Centralized Configuration Management
Project configuration is centralized in theconfig/config.yaml file, which is automatically generated by the Python module config.py using environment variables and business logic (e.g., calculation of seven_days_ago).
- Why this choice? YAML is accessible by all languages (Python, Go, Node.js), ensuring consistent parameters (tokens, queries, N projects, etc.) throughout the pipeline.
- Workflow:
- Environment variables are defined in
.env. - On startup or build,
config/config.pyreads these variables and generates/updatesconfig/config.yaml. - All components (Dagster, Go scrapers, Prisma) read config from YAML.
- Environment variables are defined in
Environment Variables
Copy.env.example to .env and fill in the values:
- Python loads variables via
dotenv. config.pyinjects them into YAML.- Go and Dagster read config from YAML (never directly from
.env).
Install Dependencies
Database Setup
Start PostgreSQL with Docker Compose:Prisma Migrations
Apply database migrations:Dockerization & Multi-language Build
The Dockerfile builds the entire stack:- Installs Python dependencies (Poetry), Go, Node.js
- Compiles Go scrapers
- Generates Prisma client
- Copies and generates centralized YAML config
- Sets
DAGSTER_HOMEfor Dagster - Entrypoint: launches Dagster daemon
Dagster Orchestration & Cron
- The main job (
github_scraper_job) is scheduled via a cron table (e.g., every 6 hours:0 */6 * * *). - Dagster config (
dagster.yaml) allows customization of storage, logs, etc. - Dagster assets are modular: each pipeline step is an asset, including Go scrapers.