The YaCy search engine software provides results from a network of independent peers, instead of a central server. It is a distributed network where no single entity decides what to list or order it appears in.
User privacy is central to YaCy, and it runs on each user's computer, where search terms are hashed before they being sent to the network. Everyone can create their individual search indexes and rankings, and a truly customized search portal.
Each YaCy user is either part of a large search network (search indexes can be exchanged with other installation over a built-in peer-to-peer network protocol) or the user runs YaCy to produce a personal search portal that is either public or private.
YaCy search portals can also be placed in an intranet environment, making it a replacement for commercial enterprise search solutions. A network scanner makes it easy to discover all available HTTP, FTP and SMB servers.
To create a web index, YaCy has a web crawler for everybody, free of censorship and central data retention:
To be able to perform a search using the YaCy network, every user has to set up their own node. More users means higher index capacity and better distributed indexing performance.
The (GPLv2+) source code used to build YaCy is distributed with the package (in /source and /htroot).
All these have (YaCy) search functionality combining all these locations into one search result.
You need Java 1.8 or later to run YaCy. (No Apache, Tomcat or MySQL or anything else)
YaCy also runs on IcedTea 3. See https://icedtea.classpath.org
Startup and shutdown:
GNU/Linux and OpenBSD:
macOS: Please use the Mac app and start or stop it like any other program (double-click to start)
A web server us brought up after starting YaCy. Open this URL in your web-browser:
This presents you with the personal search and administration interface.
YaCy will authorize users automatically if they access the server from its localhost. After about 10 minutes a random password is generated and then it is no longer possible to log in from a remote location. If you install YaCy on a server that is not your workstation you must set an admin account immediately after the first start-up. Open:
and set an admin account.
Use virtualization software like VirtualBox or VMware.
The following container technologies can deployed locally, on remote machines you own, or in the 'cloud' using a provider by clicking "Deploy" at the top of the page:
More details in the docker/Readme.md.
PaaS (Platform as a service) More details in Heroku.md.
You can forward port 80 to 8090 with iptables:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8090
On some operation systems, access to the ports you are using must be granted first:
iptables -I INPUT -m tcp -p tcp --dport 8090 -j ACCEPT
You can have many millions web pages in your own search index. By default 600MB RAM is available to the Java process. The GC process will free the memory once in a while. If you have less than 100000 pages you could try 200MB till you hit 1 million. Here you can adjust it. Several million web pages may use several GB of disk space, but you can adjust it Here to fit your needs.
Join the large number of contributors that make YaCy what it is; community software.
To start developing YaCy in Eclipse:
To join our development community, got to https://searchlab.eu
Send pull requests to https://github.com/yacy/yacy_search_server
The source code is bundled with every YaCy release. You can also get YaCy from https://github.com/yacy/yacy_search_server by cloning the repository.
git clone https://github.com/yacy/yacy_search_server
ant clean all- then you can
ant distMacApp(only works on macOS).
Build with Maven:
mvn clean install -DskipTests, this will create all needed modules.
YaCy has many built-in interfaces, and they are all based on HTTP/XML and HTTP/JSON. You can discover these interfaces if you notice the orange "API" icon in the upper right corner of some web pages in the YaCy web interface. Click it and you will see the XML/JSON version of the respective webpage. You can also use the shell script provided in the /bin subdirectory. The shell scripts also calls the YaCy web interface. By cloning some of those scripts you can easily create more shell API access methods.
Visit the international YaCy forum where you can start a discussion there in your own language.
Questions and requests for paid customization and integration into enterprise solutions. can be sent to the maintainer, Michael Christen per e-mail (at email@example.com) with a meaningful subject including the word 'YaCy' to prevent it getting stuck in the spam filter.