Skip to main content

Prerequisites

Before you begin, ensure you have the following installed:
  • Docker and Docker Compose >= 28.x
  • Node.js >= 18.x (for frontend development)
  • Python >= 3.11 (for backend development)
  • Make (for using Makefile commands)
  • Git for version control

Initial Setup

1. Fork and Clone the Repository

First, fork the Aurora repository to your GitHub account:
  1. Go to https://github.com/Arvo-AI/aurora
  2. Click the “Fork” button in the top right
  3. This creates a copy under your GitHub account
Then clone your fork locally:

2. Add Upstream Remote

Add the upstream repository to keep your fork in sync:

3. Initialize Configuration

Run the initialization script to generate secure secrets:
This command:
  • Creates .env from .env.example
  • Generates secure passwords for PostgreSQL, Redis, and other services
  • Sets up initial Vault configuration

4. Configure LLM API Key

Edit the .env file and add your LLM API key. Aurora supports multiple providers:

5. Start Development Environment

Start all containers in development mode with hot reloading:
This command builds and starts:
  • aurora-server (Flask API) on port 5080
  • celery_worker (background tasks)
  • chatbot (WebSocket) on port 5006
  • frontend (Next.js) on port 3000
  • postgres on port 5432
  • weaviate (vector DB) on port 8080
  • redis on port 6379
  • vault (secrets) on port 8200
  • seaweedfs (object storage) on port 8333

6. Configure Vault Token

On first startup, retrieve the Vault root token from the initialization logs:
Copy the token value and add it to your .env file:

7. Restart Aurora

Restart the services to load the Vault token:

Access the Application

Once all services are running, you can access:

Development Workflow

Hot Reloading

Both frontend and backend support hot reloading in development mode:
  • Backend: Flask auto-reloads when Python files change
  • Frontend: Next.js with Turbopack provides instant updates

Viewing Logs

View logs for all containers:
View logs for a specific service:
For detailed backend logs:

Stopping the Environment

Stop all containers:

Rebuilding Services

Rebuild only the backend API:
Rebuild all containers:

Clean Rebuild

For a complete fresh build without cache:
This command:
  1. Stops all containers
  2. Removes volumes
  3. Removes images
  4. Rebuilds without cache
  5. Starts the development environment

Keeping Your Fork Updated

Before starting new work, sync your fork with upstream:

Environment Variables

Key environment variables for development:

Testing Vault

Test that Vault is working correctly:

Troubleshooting

Services Won’t Start

Ensure .env file exists and contains required variables:

Database Connection Issues

Check PostgreSQL is running:
View PostgreSQL logs:

Port Conflicts

If ports are already in use, stop conflicting services or modify ports in docker-compose.yaml.

Network Issues

Reset the Docker network:

Next Steps

Architecture Deep Dive

Learn about Aurora’s architecture and codebase structure

Contributing Guidelines

Read the contribution guidelines before submitting PRs

Testing Guide

Learn how to test your changes