YaCy

YaCy is an open source distributed search engine. What does that mean? Search engines like Google or Bing are centralized and controled by their builders. They are servers crawling the web to look for new content, servers that index the new content and servers that you are querying to find results (very simplified πŸ˜‰).

You may wonder how the results are displayed, if the results are biased… and you may not agree that the search engine is keeping in memory all your searches in order to profile you.

If somebody, for instance Google itself, the government or some third party through lawsuit, wants to prevent a search engine to show some results they know where to ask and they can censor a bit of the web. Obviously this is stupid (it's like trying to prevent somebody to call a phone number by removing it from the phone book) and this is without talking about the fact that censorship is usually a bad idea β„’.

YaCy is a software that runs on people computers, each user indexes a small part of the web and you can search through the search engine installed on your computer, it will search its own index and ask the same to other computers running YaCy. The results of all computers are agregated and displayed to you.

Of course the more computers are in the YaCy network the better it is. For what I have tried so far the results are not as good as Google or Bing but it's a start and it can be interesting to find different results than everybody else πŸ˜‰.

Installation

Quick installation on a debian server. YaCy is not part of the official debian repositories yet but YaCy people provide their own debian package repository.

  • Add repository and key:

    # echo 'deb http://debian.yacy.net ./' > /etc/apt/sources.list.d/yacy.list
    # wget http://debian.yacy.net/yacy_orbiter_key.asc -O- | apt-key add -
    
  • Install YaCy:

    # apt-get update
    # apt-get install yacy
    

By default YaCy listen on port 8090. Of course it's better to have it on port 80 with a nice domain name. For instance you can add a "search" subdomain in your DNS and configure Apache as a reverse proxy.

  • Create a file /etc/apache2/sites-available/yacy.conf:

    <VirtualHost *:80>
      ServerName search.example.net
    
      ProxyRequests    Off
      ProxyPass        / http://127.0.0.1:8090/
      ProxyPassReverse / http://127.0.0.1:8090/
    
      <Proxy *>
        Order deny,allow
        Allow from all
      </Proxy>
    </VirtualHost>
    
  • Activate Apache configuration:

    # a2enmod proxy
    # a2ensite yacy.conf
    # service apache2 restart
    

Now you can access your YaCy instance at http://search.example.net.

If you are running a firewall on your server, don't forget to open port 8090 so your YaCy instance can be accessed by other YaCy peers. Example of rule for iptables:

# iptables -A INPUT -p tcp -m tcp --dport 8090 -m state --state NEW -j ACCEPT

Official Yacy Debian installation tutorial

Add it to Firefox

YaCy implements OpenSearch so it can be easily added as search engine to compatible web browsers like Firefox.

Go on your YaCy homepage, in Firefox click the down arrow in the search box then "Add YaCy Search".

opensearch

Now all searches will go through your YaCy server.

Unfortunately if your YaCy is installed behind a reverse proxy, the OpenSearch links are wrong… 😟.

Comments Add one by sending me an email.