First off, thank you for considering contributing to Azeru! It is people like you that make this Enterprise Brain stronger and more powerful.
By participating in this project, you agree to abide by our Code of Conduct. Please be respectful, welcoming, and inclusive to all contributors. Harassment or abusive behavior will not be tolerated.
If you find a bug, please create an issue on our repository. Include:
- A clear and descriptive title.
- Steps to reproduce the issue.
- Expected versus actual behavior.
- Error logs or screenshots if applicable.
- Environment details (OS, Docker version, Go version, Node version).
We welcome new feature requests! Please submit an issue detailing:
- The problem your feature solves.
- A proposed solution and how it should work.
- Any UI/UX mockups if available.
- Fork the repository and create your branch from
main. - Name your branch descriptively (e.g.,
feature/add-new-search,bugfix/fix-upload-crash). - Ensure your code follows the existing style and conventions.
- Update or add relevant documentation (README, architecture maps) if applicable.
- Create the pull request and describe your changes thoroughly. Link any relevant issues.
To contribute to Azeru, you will need to set up the environment locally.
- Go (1.25 or later)
- Node.js (v18 or later)
- Docker & Docker Compose (for spinning up auxiliary services like DB, Chroma, Ollama)
- Navigate to the
backenddirectory. - Install dependencies:
go mod download
- Run the development server:
go run cmd/server/main.go
- Navigate to the
frontenddirectory. - Install dependencies:
npm install
- Run the Next.js development server:
npm run dev
We have integrated full vector-search and fallback flows that need careful testing when changing core components. Before submitting a PR, verify functionality manually using the steps from our testing guide.
Ensure services are running (ChromaDB, Ollama, Backend, Frontend). Verify health checks:
curl http://localhost:8000/api/v1/heartbeat
curl http://localhost:11434/api/tags
curl http://localhost:8080/health- Navigate to the upload page and upload a small PDF.
- Monitor the backend logs (
docker logs -f azeru-backend). - Confirm lines indicating extraction, embedding generation, and successful storage in ChromaDB without
422or mismatch errors.
- Navigate to the chat page, input your Groq API key, and ask a relevant question about the document.
- Monitor backend logs to confirm a
vector_searchwas performed. - Confirm the frontend returns an accurate answer and displays a "Vector Search (Semantic)" badge.
- Turn off ChromaDB (
docker stop azeru-chroma). - Ask another question in the chat interface.
- Verify backend logs indicate ChromaDB was unreachable and the system fell back to FTS5 full-text search.
- Confirm the frontend returns a "Keyword Search (FTS5)" badge.
- Restart ChromaDB after testing (
docker start azeru-chroma).
By following these instructions, you help ensure Azeru remains stable, performant, and reliable for all users.