System Requirements

Before installing Structify, ensure your system meets these requirements:
  • Python: 3.11 or higher
  • Node.js: 18.x or higher
  • Rust: 1.75 or higher
  • PostgreSQL: 15+ with pgvector extension
  • Redis: 7.0 or higher
  • Docker: 20.10+ (optional, for containerized deployment)

Development Setup

Complete Installation

Clone and set up all components for local development:
# Clone the repository
git clone https://github.com/StructifyAI/agent.git prospero
cd prospero

# Python setup
cd prospero/python
curl -LsSf https://astral.sh/uv/install.sh | sh
uv sync

# Rust setup
cd ../rust
cargo build

# Frontend setup
cd ../frontend
npm install

# Database setup
docker run -d \
  --name postgres \
  -e POSTGRES_PASSWORD=postgres \
  -e POSTGRES_DB=prospero \
  -p 5432:5432 \
  pgvector/pgvector:pg15

# Redis setup
docker run -d \
  --name redis \
  -p 6379:6379 \
  redis:7-alpine

Environment Configuration

Create .env files for each component:
prospero/frontend/.env.local
NEXT_PUBLIC_API_URL=http://localhost:8080
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key

Component-Specific Installation

Python SDK Only

Install just the Python SDK for workflow development:
pip install structify
# or using uv
uv pip install structify

TypeScript SDK Only

Install the TypeScript SDK for frontend integration:
npm
npm install @structify/prospero
yarn
yarn add @structify/prospero
pnpm
pnpm add @structify/prospero

Production Deployment

Docker Deployment

Use the provided Docker Compose configuration:
docker-compose.yml
version: '3.8'

services:
  api:
    build:
      context: ./prospero/rust
      dockerfile: Dockerfile
    ports:
      - "8080:8080"
    environment:
      DATABASE_URL: postgresql://postgres:postgres@db:5432/prospero
      REDIS_URL: redis://redis:6379
    depends_on:
      - db
      - redis

  frontend:
    build:
      context: ./prospero/frontend
      dockerfile: Dockerfile
    ports:
      - "3000:3000"
    environment:
      NEXT_PUBLIC_API_URL: http://api:8080

  db:
    image: pgvector/pgvector:pg15
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_DB: prospero
    volumes:
      - postgres_data:/var/lib/postgresql/data

  redis:
    image: redis:7-alpine
    volumes:
      - redis_data:/data

volumes:
  postgres_data:
  redis_data:
Start the services:
docker-compose up -d

Kubernetes Deployment

Deploy to Kubernetes using the provided manifests:
kubectl apply -f prospero/infra/k8s/

Verification

Verify your installation is working correctly:
curl http://localhost:8080/health
# Should return: {"status":"healthy"}

Troubleshooting

Next Steps