I’ve talked recently about Algolia, a great product that powers many website searches online, including massive open source projects.
This time, we’re going to explore an open source GenAI Search Engine —Onyx. It’s a fantastic product that not only adds intelligent search but also offers a complete RAG-based solution for both intranet and public websites (using the API)
Onyx (formerly Danswer) is the AI Assistant connected to your company's docs, apps, and people. Onyx provides a chat interface and plugs into any LLM of your choice. It can be deployed anywhere—on a laptop, on-premise, or to the cloud. Since you own the deployment, your user data and chats remain fully in your control. Onyx is dual licensed, with most of the project under the MIT license, and it’s designed to be modular and easily extensible. It also comes production-ready with user authentication, role management (admin/basic users), chat persistence, and a UI for configuring AI Assistants.
Why Onyx?
There are dozens of RAG solutions out there. For example CustomGPT, Claude Workspace, OpenWebui and many more you can upload documents some with and without RAG solutions, that is indexing and then being able to chat with those documents. A great technology, but not rocket science anymore. The challenge though is Day2. What happens when the source changes? In many cases you have to re-upload the document.
In an enterprise environment with thousands of documents, this is a no-go. This is where Onyx and other SaaS technologies like Algolia come in. They scrape the documents, in this case the website, and automatically update the index (i.e. embed and make the latest data available to the chatbot). In real business scenarios, this is an invaluable feature.
In this walkthrough, we’ll use OpenAI for embedding and inference, and Cohere for reranking. You’ll also need a Docker environment with sufficient RAM and storage.
Here’s an example from my environment:
Minimal Recommended Setup
Based on the Docker stats shown, here’s a minimal recommended setup for running the Onyx stack:
RAM:
Minimum: 8GB RAM (to run comfortably)
Recommended: 16GB RAM (for better performance)
Current headroom shows the stack is well optimized - using ~6GB total
Storage:
Minimum: 20GB free space
Recommended: 50GB+ for growth (indexes, database, model files)
Other requirements:
Docker + Docker Compose
Open ports:
80/3000 (nginx)
8080 (api server)
8081/19071 (vespa index)
5432 (postgres)
6379 (redis)
CPU:
Minimum: 4 cores
Recommended: 8 cores (since index container can hit 12% CPU)
Top comments (0)