This guide will help you get Enarro up and running quickly.
Before you begin, ensure you have the following installed:
- ✅ .NET 10 SDK
- ✅ Docker Desktop (running)
- ✅ Ollama
- ✅ Git
git clone https://github.com/yourusername/enarro.git
cd enarro# Pull the chat model (phi3)
ollama pull phi3
# Pull the embedding model
ollama pull nomic-embed-text
# Verify models are installed
ollama listdotnet restore# Run with .NET Aspire (recommended)
dotnet run --project Enarro.AppHostThis will:
- ✅ Start PostgreSQL container
- ✅ Start Redis container
- ✅ Start Qdrant container
- ✅ Start Ollama container
- ✅ Run database migrations
- ✅ Launch the API
- ✅ Open Aspire dashboard
Once started, you can access:
| Service | URL |
|---|---|
| API | https://localhost:7001 |
| Swagger UI | https://localhost:7001/swagger |
| Aspire Dashboard | https://localhost:15888 |
| Health Checks | https://localhost:7001/health |
curl -X POST "https://localhost:7001/api/v1/ingest" \
-H "accept: application/json" \
-H "Content-Type: multipart/form-data" \
-F "file=@/path/to/your/document.pdf"curl -X POST "https://localhost:7001/api/v1/chat" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"message": "What is this document about?",
"minRelevance": 0.3
}'curl https://localhost:7001/healthError: Docker is not running
Solution: Start Docker Desktop
Error: Model 'phi3' not found
Solution: Run ollama pull phi3 and ollama pull nomic-embed-text
Error: Port 7001 is already in use
Solution: Stop the conflicting application or change the port in Enarro/Properties/launchSettings.json
Error: Unable to create migration
Solution: Ensure PostgreSQL container is running and connection string is correct
- Explore the API - Visit https://localhost:7001/swagger
- Monitor Services - Check Aspire dashboard at https://localhost:15888
- Upload Documents - Try uploading different document types
- Test Chat - Ask questions about your uploaded documents
- Check Logs - View logs in
logs/enarro-[date].log
To customize the application, edit Enarro/appsettings.json:
{
"RAGConfigs": {
"ChatModel": "phi3",
"EmbeddingModel": "nomic-embed-text",
"Retrieval": {
"MinRelevance": 0.3,
"MaxResults": 5
}
}
}For development with hot reload:
dotnet watch --project EnarroPress Ctrl+C in the terminal where Aspire is running.
To stop and remove all containers:
docker compose down- 📖 Read the full README.md
- 🐛 Report issues on GitHub Issues
- 💬 Join discussions on GitHub Discussions
Happy coding! 🚀