My Search Engine - First pre-release
Why?
There is no point in re-inventing the wheel, so why another metasearch engine? To put it simply, none of the current options are what I want. I don’t like the look of SearchXNG, and most of the time it requires configuration by the user just to work. I don’t like when software doesn’t work out of the box. Yes, you can argue that you can configure it to your liking and self-host it, but not everyone is a tinkerer like you or me. And I don’t think I’m asking too much when I want a working search engine when I open “https://searxng.site/”, plus hopping between instances is inconvenient too.
So I went to search for alternatives, and the closest thing to what I wanted was Araa-search. It looks nice and works out of the box unlike SearchXNG. However, it also has the issue of stopping under heavy load, and when I tried to run it on my VPS, it always spiked the CPU to 100% on every search and required 1-2GB of RAM just to remain idle. That’s why I decided to create QGato.
About Qgato
QGato is a metasearch/proxy engine that aims to be user-friendly, themable, scalable, and more resource-efficient than the competition. Here’s a rundown of what I’ve got so far:
Completed Features
Search Capabilities
QGato now supports a wide range of search capabilities:
Text Search: Powered by Google, Brave, DuckDuckGo, and LibreX/Y.
Image Search: Powered by Qwant and Imgur. Also integrated image proxy to improve privacy.
Video Search: Powered by Piped API.
Map Results: Map functionality is now available, using OpenStreetMap. This might be changed in the future since it has limited functionality, namely: missing points of interest (restaurants etc.) and no directions.
Forums: Currently, this only includes the ability to search Reddit. Other forum results may be added in the future. It’s also using the Reddit API, which isn’t great, so a different approach will likely be implemented.
Files Download
Results Caching: Implemented caching for search results, which significantly improves response times and reduces server load. Caching currently saves results for 6 hours. I don’t really like this fixed period of time, so a more dynamic solution will be implemented in the future.
Site Development
- HTML+CSS Site (No JavaScript): The current version of the site works with just HTML and CSS, ensuring it’s lightweight and fast.
- Proxy-based Image Viewing: To improve anonymous searches images are fetched through a proxy and displayed with direct links to the source pages.
Pending Features
While the current progress is great, there’s still much more to be done, so here is what I have planned:
- JavaScript-Enabled Website: The next step is to introduce a JavaScript version of the site, which will include more interactive features and a smoother user experience.
- JS Applets for Results: things such as a calculator that would be displayed when you search “1+1” or something like that.
- Dynamic Results Loading: Infinite scroll on all pages would be awesome.
- Deployment Containers: LXC and Docker containers will be made available to simplify deployment and scaling (I don’t like Docker, but I know you do.).
- Automatic Updates: A system for automatic updates is in the works, making it easier to keep QGato up to date.
- Scalability: Finally, I’m focusing on making the search engine more scalable with crawlers and web servers to handle increased traffic.
Update Log Summary
Features Summary
Search Capabilities:
- Text search using Google, Brave, DuckDuckGo, and LibreX/Y.
- Image search via Qwant and Imgur.
- Video search powered by the Piped API.
- Map results using OpenStreetMap.
- Forums results using Reddit API.
- Files results (torrent) using torrentgalaxy and thepiratebay.
Site Development:
- HTML+CSS site available (no JavaScript version).
- Results caching for faster response times.
- Proxy-based image viewing with direct links to image source pages.
Additional Features:
- Files download using torrent sites.
- Basic configuration setup and initial deployment functionality.
Planned Features
- JavaScript-enabled website version.
- JS applets for interactive results (e.g., calculator).
- Dynamic results loading on scroll.
- LXC and Docker containers for deployment.
- Automatic updates.
- Scalable crawlers and web servers with load balancing.