Skip to content

Getting Started

This guide covers setting up Bizon Platform for local development. For production deployment, see the Deployment section.

  • Python 3.12 (bizon-core requires <3.13)
  • PostgreSQL 14+
  • Node.js 18+ (for UI development)
  • Docker & Docker Compose (optional, for containerized setup)

The fastest way to get started is using Docker Compose:

Terminal window
# Clone the repository
git clone https://github.com/bizon-data/bizon-platform.git
cd bizon-platform
# Start all services
docker compose up --build

This starts:

  • API at http://localhost:8000
  • UI at http://localhost:5173
  • PostgreSQL at localhost:5432
  • Worker for job execution
  1. Install Backend Dependencies

    Terminal window
    # Using uv (recommended)
    uv sync
    # Install bizon-core locally (if developing both)
    uv pip install -e /path/to/bizon-core[all]
  2. Configure Environment

    Create a .env file:

    Terminal window
    DATABASE_URL=postgresql+asyncpg://bizon:bizon@localhost:5432/bizon
    JWT_SECRET_KEY=$(openssl rand -hex 32)
    ENCRYPTION_KEY=$(python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())")
  3. Start PostgreSQL

    Terminal window
    # Using Docker
    docker run -d --name bizon-postgres \
    -e POSTGRES_USER=bizon \
    -e POSTGRES_PASSWORD=bizon \
    -e POSTGRES_DB=bizon \
    -p 5432:5432 \
    postgres:14
  4. Run Database Migrations

    Terminal window
    uv run alembic upgrade head
  5. Start the API Server

    Terminal window
    uv run python -m bizon_platform
  6. Start the Worker (in a separate terminal)

    Terminal window
    uv run python -m bizon_platform.worker
  7. Start the UI (in a separate terminal)

    Terminal window
    cd ui
    npm install
    npm run dev

For testing, seed the database with sample users:

Terminal window
uv run python -m bizon_platform.scripts.seed_dev

This creates:

  • Organization: Acme Corp
  • Users (password: Password123!):
    • owner@example.com - Owner role
    • admin@example.com - Admin role
    • member@example.com - Member role
    • viewer@example.com - Viewer role
  • Domains: Marketing, Engineering
VariableDescription
DATABASE_URLPostgreSQL connection string
JWT_SECRET_KEYSecret for JWT token signing
ENCRYPTION_KEYFernet key for config encryption
VariableDefaultDescription
HOST0.0.0.0API server host
PORT8000API server port
WORKER_POLL_INTERVAL2Worker polling interval (seconds)
CORS_ALLOWED_ORIGINS["http://localhost:5173"]CORS origins

See Configuration for the complete list.

Terminal window
curl http://localhost:8000/api/health
# {"status":"healthy"}