Labyrinth is a cutting-edge AI-powered search engine that reimagines information retrieval with a generative user interface. It's designed to be flexible, performant, and easy to deploy, offering both open-source and cloud-hosted options. Labyrinth leverages the power of AI to provide more relevant and insightful search results.
- AI-Powered Search: Integrates with leading AI models (OpenAI, Google Gemini, etc.) for intelligent and context-aware search.
- Generative UI: A dynamic and customizable user interface built with modern web technologies for a seamless user experience.
- Multiple Search Providers: Supports various search providers (Tavily, SearXNG, Exa) for diverse search capabilities.
- High Performance: Optimized for speed, with support for Groq and Gemini for accelerated response times.
- Flexible Deployment: Offers both open-source and cloud-hosted options to suit different needs and skill levels.
- Model Selection: Allows users to choose between different AI models directly from the UI.
- Redis Support: Utilizes Redis (local or Upstash) for efficient data caching and session management.
- Core Framework: Next.js (App Router, React Server Components)
- Language: TypeScript
- AI & Search:
- Google Gemini (Default)
- Groq (Multiple models)
- Linkup (Default Search)
- SearXNG (Self-Hosted)
- Data Storage: Redis / Upstash
- UI & Styling: Tailwind CSS, shadcn/ui, Radix UI, Lucide Icons
Follow these steps to get Labyrinth up and running:
- Node.js (version >= 18)
- Bun package manager (recommended) or npm/yarn
- Docker (optional, for containerized deployment)
-
Clone the repository:
git clone https://github.com/[YOUR_GITHUB_USERNAME]/[YOUR_REPOSITORY_NAME].git cd [YOUR_REPOSITORY_NAME] -
Install dependencies:
bun install # or npm install # or yarn install
-
Configure environment variables:
-
Copy the
.env.local.examplefile to.env.local:cp .env.local.example .env.local
-
Fill in the required environment variables in
.env.local. At a minimum, you'll need:OPENAI_API_KEY=[YOUR_OPENAI_API_KEY] TAVILY_API_KEY=[YOUR_TAVILY_API_KEY]
-
-
Run the application:
-
Using Bun:
bun dev
-
Using Docker:
docker compose up -d
-
-
Access Labyrinth:
- Open your browser and navigate to
http://localhost:3000.
- Open your browser and navigate to
-
Pull the prebuilt Docker image:
docker pull ghcr.io/[YOUR_GITHUB_USERNAME]/[YOUR_REPOSITORY_NAME]:latest
-
Run using Docker Compose:
version: "3.8" services: labyrinth: image: ghcr.io/[YOUR_GITHUB_USERNAME]/[YOUR_REPOSITORY_NAME]:latest env_file: .env.local ports: - "3000:3000" # Optional: Override default model configuration volumes: - ./models.json:/app/public/config/models.json
- Create a
docker-compose.ymlfile with the above content. - Run
docker compose up -d.
- Create a
We welcome contributions to Labyrinth!
Labyrinth is licensed under the Apache 2.0 License. See the LICENSE file for more information.
For questions, bug reports, or feature requests, please open an issue on GitHub.