Installation & Deployment Guide
Step-by-step local development setup, serverless deployment topology, and environment configuration.
Prerequisites & System Requirements
Infra-Index Platform can be deployed directly to Vercel Serverless or run locally for engineering, testing, and continuous crawling.
- Python 3.11+ / 3.12 with
uvorpipvirtual environment - Node.js 20+ / 22+ with
pnpm 9+ - PostgreSQL 15+ / Neon Serverless Postgres
- Upstash Redis (Serverless cluster)
1. Repository Clone & Structure
# Clone official repository
git clone https://github.com/uno-km/infraindex-platform.git
cd infraindex-platform
# Directory Topology:
# ├── api/ # Vercel Serverless ASGI entrypoints (index.py)
# ├── apps/server/ # FastAPI application & business logic
# ├── apps/batch/ # Modular crawler workers & schedulers
# ├── shared/ # Shared database models, schemas & settings
# └── vercel.json # Edge routing, rewrites & CORS headers
2. Backend Setup (FastAPI & Python 3.12)
# Create and activate virtual environment
python -m venv .venv
# On Windows PowerShell:
.venv\Scripts\Activate.ps1
# On Linux / macOS:
source .venv/bin/activate
# Install core dependencies
pip install fastapi uvicorn asyncpg sqlalchemy orjson redis pydantic-settings httpx
# Configure environment variables (.env)
DATABASE_URL="postgresql://neondb_owner:YOUR_SECRET@ep-sweet-silence...neon.tech/neondb?sslmode=require"
REDIS_URL="rediss://default:YOUR_KEY@moved-narwhal-119056.upstash.io:6379/0"
ENVIRONMENT="prod"
# Start local ASGI server
uvicorn apps.server.main:app --host 0.0.0.0 --port 8000 --reload
3. Frontend Setup (Next.js 16 & pnpm)
# Navigate to frontend repository
cd ../infraindex-platform-front
# Install pnpm dependencies
pnpm install
# Configure frontend environment (.env.local)
NEXT_PUBLIC_API_URL="http://localhost:8000/api/v1"
# Run local development server
pnpm dev
4. Environment Compatibility Matrix
| Environment | Database Cluster | Redis Namespace | Concurrency | Alert Dispatch |
|---|---|---|---|---|
| Development (DEV) | Neon DEV (ep-hidden-resonance) |
infraindex:dev:* (DB 0) |
3 Workers | Disabled (Local Logging) |
| Production (PRD) | Neon PRD (ep-sweet-silence) |
infraindex:prod:* (DB 0) |
5 Workers | Enabled (Discord/Webhook) |
| Vercel Edge | Neon Connection Pooler | Upstash Global Cluster | Dynamic Serverless | Automatic Rollbar/Log |