Prerequisites
Before you begin, ensure you have the following installed:Required Software
- Node.js 18.x or later (20.x recommended)
- pnpm 10.x or later
- Python 3.11 or later
- uv - Fast Python package installer (astral.sh/uv)
- Docker and Docker Compose (for infrastructure services)
- Git for version control
Optional Tools
- Nx Console - VSCode extension for running Nx commands
- Biome VSCode extension for code formatting
- Python extension for VSCode
Installation Steps
Step 1: Clone the Repository
Clone the GAIA repository to your local machine:Step 2: Install Dependencies
Install Node.js dependencies using pnpm:The project uses pnpm as the default package manager. If you’re using npm or yarn, some scripts may need adjustment.
Step 3: Sync Python Dependencies
Sync Python dependencies for the API and voice agent:uv to install Python packages into isolated virtual environments for each Python application.
Step 4: Configure Environment Variables
Create environment files for each application:API Environment
Copy the example environment file:apps/api/.env and configure required variables:
Web App Environment
Copy the example environment file:apps/web/.env.local:
Step 5: Start Infrastructure Services
Start the required infrastructure services using Docker Compose:- PostgreSQL on port 5432
- MongoDB on port 27017
- Redis on port 6379
- ChromaDB on port 8001
- RabbitMQ on port 5672 (management UI on 15672)
Step 6: Run Database Migrations
Run database migrations to set up the schema:If this command doesn’t exist, migrations may be handled automatically on first API startup.
Step 7: Start Development Servers
Now you’re ready to start the development servers!Option A: Start All Services
Run multiple services in separate terminals:Option B: Start Individual Services
Choose the service you want to work on:Verify Installation
Check that everything is working:1. Check API Health
Visit http://localhost:8000/health - should return{"status":"healthy"}
2. Check API Documentation
Visit http://localhost:8000/docs - should show FastAPI Swagger UI3. Check Web App
Visit http://localhost:3000 - should show GAIA web interface4. Check Docker Services
Common Issues
Python Dependencies Not Resolving
If you encounter Python dependency issues:Port Already in Use
If you see port conflict errors:Docker Services Won’t Start
Reset Docker services:Nx Daemon Issues
The Nx daemon is disabled in this project (useDaemonProcess: false in nx.json). If you experience caching issues:
Build Artifacts Issues
Clean build artifacts for a specific project:IDE Setup
Visual Studio Code
Recommended extensions:- Nx Console - Run Nx commands with a GUI
- Biome - JavaScript/TypeScript linting and formatting
- Python - Python language support
- Pylance - Fast Python language server
- Docker - Docker container management
Workspace Settings
The repository includes VSCode workspace settings in.vscode/settings.json that configure:
- Biome as the default formatter for JS/TS
- Ruff as the Python formatter
- Auto-format on save
- Import organization
Development Workflow
Once your environment is set up:- Create a feature branch from
master - Make your changes following the project structure
- Run quality checks (see commands)
- Test your changes locally
- Create a pull request with a clear description
Next Steps
- Learn about the Project Structure
- Explore available Development Commands
- Read the Contributing Guide
Need Help?
If you run into issues:- Check the GitHub Issues
- Ask in Discord
- Email the team at [email protected]