Skip to main content

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 the config/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:
    1. Environment variables are defined in .env.
    2. On startup or build, config/config.py reads these variables and generates/updates config/config.yaml.
    3. All components (Dagster, Go scrapers, Prisma) read config from YAML.
Example config.example.yaml:

Environment Variables

Copy .env.example to .env and fill in the values:
Propagation:
  • Python loads variables via dotenv.
  • config.py injects 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_HOME for Dagster
  • Entrypoint: launches Dagster daemon
Dockerfile excerpt:

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.
Dagster local launch :
Accès UI Dagster : http://localhost:3000