Deploying YaCy
Introduction
YaCy is a decentralized, peer-to-peer search engine that allows you to operate your own search infrastructure. Unlike centralized search engines, YaCy distributes the search index across all participating peers, creating a network that is censorship-resistant and privacy-respecting.
Key highlights of YaCy:
- Decentralized: No central server - all peers are equal
- Privacy Focused: No tracking or profiling of users
- Web Crawling: Built-in crawler to index websites
- Intranet Search: Perfect for searching internal networks and documents
- Open Source: Fully transparent codebase
- Federation: Share and receive search results across the network
- Customizable: Configure crawling rules and search parameters
- Multiple Languages: Internationalization support
This guide walks through deploying YaCy on Klutch.sh using Docker.
Why Deploy YaCy on Klutch.sh
Deploying YaCy on Klutch.sh provides several advantages:
Private Search: Run your own search engine without tracking.
Intranet Indexing: Search internal resources and documentation.
HTTPS by Default: Secure access with automatic SSL certificates.
Persistent Index: Your search index persists with Klutch.sh volumes.
Prerequisites
Before deploying YaCy on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
Deploying YaCy on Klutch.sh
- Admin password in the Configuration menu
- Crawler settings for your desired websites
- Network mode (isolated or federated)
Create Your Repository
Create a new GitHub repository with a Dockerfile:
FROM yacy/yacy_search_server:latest
# Set YaCy to run in robinson mode (isolated) by defaultENV YACY_NETWORK=robinson
VOLUME ["/opt/yacy_search_server/DATA"]
EXPOSE 8090
CMD ["/opt/yacy_search_server/startYACY.sh", "-f"]Push to GitHub
Push your Dockerfile to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project.
Create a New App
Within your project, create a new app and connect your GitHub repository.
Configure HTTP Traffic
Set the traffic type to HTTP with port 8090.
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
YACY_NETWORK | robinson (isolated) or freeworld (public network) |
Attach Persistent Volume
Add a persistent volume mounted at /opt/yacy_search_server/DATA for your search index.
Deploy Your Application
Click Deploy to build and launch YaCy.
Configure Your Instance
Access your YaCy instance and configure:
Additional Resources
Conclusion
YaCy on Klutch.sh provides a decentralized search engine that you control completely. Whether indexing the public web or your private intranet, YaCy offers privacy-respecting search without dependence on big tech search engines.