# Copy the example env file
cp .env.example .env
# Edit .env and add your API keys
nano .envStart only the databases (for now):
docker-compose up neo4j qdrant redisStart UI only:
docker-compose up uiStart everything (when backend is ready):
docker-compose up -d- UI: http://localhost:3000
- Neo4j Browser: http://localhost:7474
- Qdrant API: http://localhost:6333
- Backend API (when ready): http://localhost:8000
The UI service mounts your local ./ui directory into the container, so changes are reflected immediately:
# Start UI in development mode
docker-compose up ui
# The Vite dev server will automatically reload on file changesEdit your .env file:
UI_PORT=3001
Then restart:
docker-compose up -d uiThe UI uses environment variables to know where the backend is:
Inside Docker Network:
VITE_API_BASE_URL=http://api:8000
For local development (backend running locally):
VITE_API_BASE_URL=http://localhost:8000
When you start implementing API calls in your React components, use:
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL;
// Example API call
fetch(`${API_BASE_URL}/document/upload`, {
method: 'POST',
body: formData
})# View logs
docker-compose logs -f ui
# Rebuild UI after package.json changes
docker-compose build ui
docker-compose up -d ui
# Stop all services
docker-compose down
# Remove all data (careful!)
docker-compose down -v
# Access UI container shell
docker-compose exec ui shPort already in use:
Change the port in .env:
UI_PORT=3001
UI not updating after code changes:
docker-compose restart uiNeed to reinstall dependencies:
docker-compose exec ui npm install
docker-compose restart ui- Create backend services (FastAPI)
- Uncomment the
apiservice in docker-compose.yml - Update UI components to make real API calls
- Test end-to-end flow