Skip to content

mugendi/x-files-search

Repository files navigation

X-FileSearch

Logo

GitHub stars GitHub issues GitHub forks Twitter

Full-text, typo-tolerant local file indexer and search engine for developers

FeaturesDemoInstallationUsageContributingLicense

Features

  • 🔍 Full-text search across all your local files
  • 🐞 Typo-tolerant search for forgiving queries
  • 🚀 Fast indexing and searching powered by TypeSense
  • 💻 Web-based user interface for easy access
  • 🔢 Code syntax highlighting for various languages
  • 📁 Support for multiple directory indexing
  • 🔒 Local-only indexing for data privacy

Demo

Screen Grab 1

Screen Grab 2

Installation

Prerequisites

  1. Node.js (v14 or later)
  2. Docker (for running TypeSense)
  3. hyperpolyglot : (Used to detect programming languages) Install with cargo install hyperpolyglot.

Steps

  1. Clone the repository:

    git clone https://github.com/mugendi/x-files-search.git
    cd x-files-search
  2. Install dependencies:

    npm install
  3. Set up the environment:

    cp .env.example .env

    Edit the .env file and adjust the settings as needed.

  4. Set up TypeSense:

    npm run setup
  5. Build the project:

    npm run build

Usage

  1. Start the server:

    npm run prod
  2. Open your browser and navigate to http://localhost:9877 (or the port you specified in .env).

  3. Go to the 'Settings' page to add directories for indexing.

  4. Click "Index Files" to start the indexing process.

  5. Use the search bar on the home page to find your files!

Configuration

The .env file contains important configuration options:

# App configs
PORT=9877
ORIGIN=http://localhost:9877

# TypeSense configs
API_PORT=9876
API_KEY=myAmazingKey
BULK_DOC_COUNT=50
MAX_FILE_SIZE="1MB"
IGNORE_PATTERNS=**/node_modules/**,**/env/**,**/.env/**,**/venv**,**/.venv/**,**/yarn.*,**/npm.*,**/python*/site-packages/**

Adjust these settings to fit your needs and environment.

Contributing

Contributions are welcome! Here's how you can help:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Commit your changes (git commit -am 'Add some amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Please read CONTRIBUTING.md for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Support

If you find this project useful, please consider giving it a ⭐️ on GitHub!


Made with ❤️ by Anthony Mugendi

About

Search files on your computer like a boss!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published