1== WHAT IS THIS? ==
2YaCy is a search engine software. It takes a new approach to search
3because it does not use a central server. Instead, its search results
4come from a network of independent peers. In such a distributed network,
5no single entity decides what gets listed, or in which order results appear.
7The YaCy search engine runs on each user's own computer. Search terms are
8hashed before they leave the user's computer. Different from conventional
9search engines, YaCy is designed to protect the users' privacy.
10A user's computer can create with YaCy its individual search indexes and
11rankings, so that results better match what the user is looking for over time.
12YaCy also makes it easy to create a customized search portal with a few clicks.
14Each YaCy user is either part of a large search network (YaCy contains a
15peer-to-peer network protocol to exchange search indexes with other YaCy
16search engine installations) or the user runs YaCy to produce
17a personal search portal that can be either public or private.
19YaCy search portals can also be placed in intranet environment which makes
20YaCy a replacement for commercial enterprise search solutions. A network
21scanner makes it easy to discover all available http, ftp and smb servers.
23To create a web index, YaCy has a web crawler for
24everybody, without censorship and central data retention:
25- search the web (automatically using all other YaCy peers)
26- co-operative crawling; support for other crawlers
27- intranet indexing and search
28- set up your own search portal
29- all users have equal rights
30- comprehensive concept to anonymise the users' index
32To be able to perform a search using the YaCy network, every user has to
33set up their own node. More users are leading to higher index capacity
34and better distributed indexing performance.
37== LICENSE ==
38YaCy is published under the GPL v2
39The source code is inside the release package (see /source and /htroot).
42== WHERE IS THE DOCUMENTATION? ==
43Documentation can be found at:
44(Home Page) http://yacy.net/
45(German Forum) http://forum.yacy.de/
48(Tutorial Videos) http://yacy.net/en/Tutorials.html and http://yacy.net/de/Lehrfilme.html
50Every of these locations has a (YaCy) search functionality which combines
51all these locations into one search result.
54== DEPENDENCIES? WHAT OTHER SOFTWARE DO I NEED? ==
55You need java 1.6 or later to run YaCy, nothing else.
56Please download it from http://www.java.com
58YaCy also runs on IcedTea6.
61NO OTHER SOFTWARE IS REQUIRED!
62(you don't need apache, tomcat or mysql or whatever)
65== HOW DO I START THIS SOFTWARE? ==
66Startup and Shutdown of YaCy:
68- on GNU/Linux:
69to start: execute ./startYACY.sh
70to stop : execute ./stopYACY.sh
72- on Windows:
73to start: double-click startYACY.bat
74to stop : double-click stopYACY.bat
76- on Mac OS X:
77please use the Mac Application and start or stop it like any
78other Mac Application (doubleclick to start)
81== HOW DO I USE THIS SOFTWARE, WHERE IS THE ADMINISTRATION INTERFACE? ==
82YaCy is a build on a web server. After you started YaCy,
83start your browser and open
87There you can see your personal search and administration interface.
90== WHAT IF I INSTALL YACY (HEADLESS) ON A SERVER ==
91You can do that but YaCy authorizes users automatically if they
92access the server from the localhost. After about 10 minutes a random
93password is generated and then it is not possible to log in from
94a remote location. If you install YaCy on a server that is not your
95workstation, then you must set an administration account immediately
96after the first start-up. Open:
100and set an administration account.
103== PORT 8090 IS BAD, PEOPLE ARE NOT ALLOWED TO ACCESS THAT PORT ==
104You can forward port 80 to 8090 with iptables:
105iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8090
106On some operation systems, you must first enable access to the ports you are using like:
107iptables -I INPUT -m tcp -p tcp --dport 8090 -j ACCEPT
110== HOW CAN I SCALE THIS; HOW MUCH RAM IS NEEDED; DISK SPACE? ==
111YaCy can scale up to many millions of web pages in your own search index.
112The default assignment of RAM is 600MB which is assigned to the java
113process but not permanently used by it. The GC process will free the memory
114once in a while. If you have a small index (i.e. about 100000 pages)
115then you may assign _less_ memory (i.e. 200MB) but if your index scales
116up to over 1 million web pages then you should start to increase the
117memory assignment. Open http://localhost:8090/Performance_p.html
118and set a higher/lower memory assignment.
119If you have millions of web pages in your search index then you might
120habe gigabytes of disk space allocated. You can reduce the disk
121space i.e. setting the htcache space to a different size; to do that
122open http://localhost:8090/ConfigHTCache_p.html and set a new size.
126== JOIN THE DEVELOPMENT! ==
127YaCy was created with the help of many. About 30 programmers have helped,
128a list of some of them can be seen here: http://yacy.net/en/Join.html
129Please join us!
132== HOW TO GET THE SOURCE CODE AND HOW TO COMPILE YACY YOURSELF? ==
133The source code is inside every YaCy release. You can also get YaCy
135Please clone our code and help with development!
136The code is licensed under the GPL v2.
139- you need java 1.7 and ant
140- just compile: "ant clean all" - then you can "./startYACY.sh"
141- create a release tarball: "ant dist"
142- create a Mac OS release: "ant distMacApp" (works only on a Mac)
143- create a debian release: "ant deb"
144- work with eclipse: within eclipse you also need to start the ant build process
145 because the servlet pages are not compiled by the eclipse build process
146after the dist prodecure, the release can be found in the RELEASE subdirectory
149== ARE THERE ANY APIs OR HOW CAN I ATTACH SOFTWARE AT YACY? ==
150There are many interfaces build-in in YaCy and they are all based on http/xml and
151http/json. You can discover these interfaces if you notice the orange "API" icon in
152the upper right of some web pages in the YaCy web interface. Just click on it and
153you will see the xml/json version of the information you just have seen at the web
155A different approach is the usage of the shell script provided in the /bin
156subdirectory. The just call also the web interface pages. By cloning some of those
157scripts you can create more shell api access methods yourself easily.
160== CONTACT ==
161Our primary point of contact is the german forum at http://forum.yacy.net
162There is also an english forum at http://www.yacy-forum.org
163We encourage you to start a YaCy forum in your own language.
165If you have any questions, please do not hesitate to contact the maintainer:
166Send an email to Michael Christen (firstname.lastname@example.org) with a meaningful subject
167including the word 'yacy' to prevent that your email gets stuck
168in my anti-spam filter.
170If you like to have a customized version for special needs,
171feel free to ask the author for a business proposal to customize YaCy
172according to your needs. We also provide integration solutions if the
173software is about to be integrated into your enterprise application.
175Germany, Frankfurt a.M., 26.11.2011
176Michael Peter Christen