Distributed Peer-to-Peer Web Search Engine and Intranet Search Appliance http://yacy.net/
Go to file
Thomas Koch b661cc56d8 remove unused branch property in build.xml
First commit of a series to get rid of the git based versioning
implemented in libbuild/ folder as Ant task. It counts commits
since the last tagged version and uses this number added with
9000 as the last part of the version number.

This is a legacy from Subversion times.
2022-07-10 10:14:46 +00:00
.github added missing runs-on: ubuntu-latest 2022-06-13 18:54:12 +02:00
addon attempt to make a Mac Release using gradle 2021-10-25 18:37:39 +02:00
bin fixed apicall call method parameters 2020-12-22 00:46:47 +01:00
defaults Merge pull request #440 from lfuelling/master 2022-02-11 08:09:17 +01:00
docker docker has no latest-alpine 2021-06-20 22:27:50 +02:00
examples move example code SearchClient out of yacycore package 2016-03-14 02:22:06 +01:00
gradle/wrapper Update to Gradle 7.3.3 2022-01-26 07:13:42 +01:00
htroot catch error when initializing hazelcast 2022-06-20 17:27:56 +02:00
kubernetes removed Debian and Red Hat build process 2021-07-19 20:33:52 +02:00
langdetect Use language-detection library for increased accuracy 2015-07-02 18:41:13 +02:00
lib rm License files from lib/ folder 2022-04-08 18:33:20 +00:00
libbuild use ivy to manage jars 2022-04-08 18:33:20 +00:00
libt use ivy to manage jars 2022-04-08 18:33:20 +00:00
LICENSES creating LICENSES directory 2021-03-11 12:16:37 +01:00
locales Update zh.lng 2022-03-05 11:32:32 +08:00
skins added stub of rc3assembly style 2021-02-09 20:30:10 +01:00
snap Added a stop command using the existing stop script to the snap package 2019-02-04 14:34:37 +01:00
source catch error when initializing hazelcast 2022-06-20 17:27:56 +02:00
test fix test xlsx file with correct anchor 2022-02-07 04:24:29 +01:00
vocabularies
.checkstyle
.classpath Merge pull request #478 from thkoch2001/use_ivy 2022-04-09 19:57:48 +02:00
.dockerignore added a dockerignore file 2020-12-29 20:19:45 +01:00
.env Removed unnecessary variables for local heroku run 2016-07-13 01:07:11 +02:00
.gitignore remove .settings - Eclipse specific local settings not needed in distribution 2022-01-29 14:02:49 +01:00
.project removes some warnings: unused imports, params 2020-07-27 22:20:49 +02:00
.travis.yml removed Xms java memory startup parameter 2021-07-19 20:04:11 +02:00
app.json Updated YaCy home page embedded links from http to https scheme 2018-05-22 17:46:12 +02:00
AUTHORS
build.gradle Further improvement of fccdf5a37b 2022-02-12 13:40:20 +01:00
build.nsi upd windows installer script to Java 8 update 211 2020-01-19 04:42:03 +01:00
build.properties remove unused branch property in build.xml 2022-07-10 10:14:46 +00:00
build.xml remove unused branch property in build.xml 2022-07-10 10:14:46 +00:00
CONTRIBUTING.md Add contributor guidelines; closes #214 2018-08-15 23:23:30 +07:00
COPYRIGHT
fixMacBuild.sh attempt to make a Mac Release using gradle 2021-10-25 18:37:39 +02:00
getWin32MaxHeap.bat
gitbuildnumber.properties Changed Gradle build regarding prepYaCyProperties to be more reliable 2022-01-26 14:54:18 +01:00
gpl.txt
gradle.properties attempt to make a Mac Release using gradle 2021-10-25 18:37:39 +02:00
gradlew Update to Gradle 7.3.3 2022-01-26 07:13:42 +01:00
gradlew.bat replaced maven with gradle 2021-07-14 13:58:30 +02:00
Heroku.md Simplified Heroku variables configuration 2016-07-28 02:04:51 +02:00
installYaCyWindowsService.bat removed Xms java memory startup parameter 2021-07-19 20:04:11 +02:00
ivy.xml use ivy to manage jars 2022-04-08 18:33:20 +00:00
killYACY.sh Fix for http://mantis.tokeek.de/view.php?id=432 2014-08-25 22:47:33 +02:00
lgpl21.txt
NOTICE
Procfile Simplified Heroku variables configuration 2016-07-28 02:04:51 +02:00
README.md Merge branch 'master' of git@github.com:yacy/yacy_search_server.git 2022-02-03 13:27:15 +01:00
settings.gradle Implement creation of legacy distribution archive in Gradle 2022-01-22 06:27:14 +01:00
startYACY_debug.bat changed link to new forum location 2022-02-03 13:27:06 +01:00
startYACY.bat removed Xms java memory startup parameter 2021-07-19 20:04:11 +02:00
startYACY.sh changed link to new forum location 2022-02-03 13:27:06 +01:00
stopYACY.bat upd classpath in batches (remove not necessary htroot) 2016-02-03 21:50:50 +01:00
stopYACY.sh fixed apicall call method parameters 2020-12-22 00:46:47 +01:00
uninstallYaCyWindowsService.bat
updateYACY.sh fixed apicall call method parameters 2020-12-22 00:46:47 +01:00
yacy-packages.readme bump to commons-codec-1.14, commons-compress-1.20, 2020-07-26 21:58:15 +02:00
yacy.yellow

YaCy

Gitter Build Status

Deploy

What is this?

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:

  • Search the web (automatically using all other YaCy peers)
  • Co-operative crawling; support for other crawlers
  • Intranet indexing and search
  • Set up your own search portal
  • All users have equal rights
  • Comprehensive concept to anonymize the users' index

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.

License

This project is available as open source under the terms of the GPL 2.0 Or later. However, some elements are being licensed under GNU Lesser General Public License. For accurate information, please check individual files. As well as for accurate information regarding copyrights. The (GPLv2+) source code used to build YaCy is distributed with the package (in /source and /htroot).

Where is the documentation?

All these have (YaCy) search functionality combining all these locations into one search result.

Dependencies? What other software do I need?

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

Start and stop it

Startup and shutdown:

  • GNU/Linux and OpenBSD:

    • Start by running ./startYACY.sh
    • Stop by running ./stopYACY.sh
  • Windows:

    • Start by double-clicking startYACY.bat
    • Stop by double-clicking stopYACY.bat
  • macOS: Please use the Mac app and start or stop it like any other program (double-click to start)

The administration interface

A web server us brought up after starting YaCy. Open this URL in your web-browser:

http://localhost:8090

This presents you with the personal search and administration interface.

(Headless) YaCy server installation

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:

http://<remote-server-address>:8090/ConfigAccounts_p.html

and set an admin account.

YaCy in a virtual machine or a container

Use virtualization software like VirtualBox or VMware.

The following container technologies can deploy locally, on remote machines you own, or in the 'cloud' using a provider by clicking "Deploy" at the top of the page:

Docker

More details in the docker/Readme.md.

Heroku

PaaS (Platform as a service) More details in Heroku.md.

Port 8090 is bad, people are not allowed to access that port

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 operating systems, access to the ports you are using must be granted first:

iptables -I INPUT -m tcp -p tcp --dport 8090 -j ACCEPT

Scaling, RAM and disk space

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.

Help develop YaCy

Join the large number of contributors that make YaCy what it is; community software.

To start developing YaCy in Eclipse:

  • Clone https://github.com/yacy/yacy_search_server.git using build-in Eclipse features (File -> Import -> Git)
  • or Download source form this side (download button "Code" -> download as Zip -> and unpack)
  • Import a Gradle project (File -> Import -> Gradle -> Existing Gradle Project).
  • in the tab "Gradle Tasks" are tasks available to use build the project (e.g. build -> build or application -> run)

To start developing YaCy in Netbeans:

  • clone https://github.com/yacy/yacy_search_server.git (Team → Git → Clone)
    • if you checked "scan for project" you'll be asked to open the project
  • Open the project (File → Open Project)
  • you may directly use all the Netbeans build feature.

To start developing YaCy in IntelliJ IDEA:

  • clone https://github.com/yacy/yacy_search_server.git
  • File -> New -> Project from Version Control -> URL (see above) -> Clone
  • Open or Import Project -> Gradle project -> OK
  • In the Gradle tab you can now execute the gradle tasks to build YaCy
  • Run via IDE -> Add Configuration -> + -> Gradle -> in Run Tasks add: build run
    • (in above line "build" is needed to make sure all needed Gradle tasks are executed before run)

To join our development community, got to https://community.searchlab.eu

Send pull requests to https://github.com/yacy/yacy_search_server

Compile from source

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

Compiling YaCy:

  • You need Java 1.8 or later and Gradle (Gradle is downloaded automatically on first build if not present).
  • Compile: gradlew build - then you can ./startYACY.sh or ./startYACY.bat.
  • Create a release tarball and zip archive: gradlew packageDist.
  • Create a Windows installer release exe: gradlew distWinInstaller.
  • Create a macOS release: gradlew distMacApp.
  • Work with Eclipse or other IDE: Within the IDE you also need to start the gradle build process because the servlet pages are not compiled by the IDE build process. after the dist procedure, the release can be found in the build/distributions subdirectory.

APIs and attaching software

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.

Contact

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 mc@yacy.net) with a meaningful subject including the word 'YaCy' to prevent it getting stuck in the spam filter.

  • Michael Peter Christen