Cléa From clé (key), unlocking answers.
Clea is a modern, self-hosted search engine with web crawling capabilities, designed to provide personalized search functionality across websites you care about. With a sleek, modern UI and powerful backend, Clea makes discovering and organizing web content easy.
- Powerful Web Crawling: Automatically discovers and indexes content from specified websites
- Custom Site Management: Add, remove, and manage sites to be crawled and indexed
- Intelligent Search: Finds relevant results based on content matching and relevance scoring
- Modern UI: Clean, responsive interface built with React and Mantine UI components
- Full-Text Search: Indexes and searches use the full-text searching
- Robots.txt Compliance: Respects website crawling directives
- Customizable Indexing: Control how many pages are crawled per site
- Python 3.9+
- Node.js 18+
- NLTK data files
-
Clone the repository:
git clone https://github.com/dsameendra/clea.git cd clea -
Install Python dependencies:
pip install -r requirements.txt
-
Set up NLTK data (for natural language processing):
import nltk nltk.download('stopwords') nltk.download('punkt')
-
Initialize the database:
python init_db.py
-
Install frontend dependencies:
cd frontend npm install
-
Start the backend server:
# In the main project directory python clea_server.py -
Start the frontend development server:
# In the frontend directory npm run dev -
Open your browser and navigate to:
http://localhost:5173
- Open the Sitemap Manager by clicking the grid icon in the top right
- Enter a URL in the "Add URL" field
- Click "Add URL" to add a single site or "Add Multiple URLs" for batch additions
- Set the maximum number of pages to index per site
- Use "Force Crawl" to re-crawl all sites, even previously visited ones
- Use "Crawl New Sites" to only crawl sites that haven't been visited yet
- The system will index content as per your command (this process is very time-consuming)
- Simply enter your search terms in the search box
- Results will appear below, ranked by relevance
- Click on any result to visit the original page
clea_server.py: Main backend API serverglaneur.py: Web crawler and site management (French for "collector")classeur.py: Indexing and content processing (French for "organizer")servir.py: Search service (French for "serve")init_db.py: Database initialization scriptfrontend/: React frontend application
Contributions to Clea are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
