This guide explains how to start all services required for RAGfolio.
Before starting, make sure you have:
-
PostgreSQL running with pgvector extension enabled
- Default connection:
postgresql://rag_admin:raG_admiN@localhost:5432/ragfolio_db - Enable pgvector:
CREATE EXTENSION vector;
- Default connection:
-
Redis running
- Default:
redis://localhost:6379/0
- Default:
-
Python virtual environment created and dependencies installed
cd apps/api python -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt
-
Node.js dependencies installed
pnpm install
.\start-all.ps1This will open separate PowerShell windows for:
- Celery Worker (document processing)
- FastAPI Backend (http://localhost:8000)
- Frontend Web App (http://localhost:8080)
.\stop-all.ps1Or simply close the PowerShell windows.
Start all services in one terminal:
pnpm devThis starts:
- Frontend Web App
- FastAPI Backend
- Celery Worker
All output will be in the same terminal with color-coded prefixes.
cd apps/api
.\.venv\Scripts\Activate.ps1
celery -A app.celery_app worker --loglevel=infocd apps/api
.\.venv\Scripts\Activate.ps1
uvicorn app.main:app --reload --port 8000cd apps/web
pnpm devOnce started, access:
- Frontend: http://localhost:8080 (or check Vite output)
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
- Alternative API Docs: http://localhost:8000/redoc
-
Check PostgreSQL is running
Test-NetConnection -ComputerName localhost -Port 5432
-
Check Redis is running
Test-NetConnection -ComputerName localhost -Port 6379
-
Check virtual environment
cd apps/api .\.venv\Scripts\Activate.ps1 python --version
-
Run diagnostics
cd apps/api .\.venv\Scripts\Activate.ps1 python diagnose_rag.py <your_organization_id>
If you get "port already in use" errors:
-
Find what's using the port:
Get-NetTCPConnection -LocalPort 8000 Get-NetTCPConnection -LocalPort 8080
-
Stop the process or use different ports in your
.envfile
# Start everything (PowerShell script)
.\start-all.ps1
# Start everything (pnpm - single terminal)
pnpm dev
# Stop everything
.\stop-all.ps1
# Or use pnpm scripts
pnpm start:all
pnpm stop:all