Skip to content

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:

Deploying YaCy on Klutch.sh

    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 default
    ENV 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:

    VariableValue
    YACY_NETWORKrobinson (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:

    • Admin password in the Configuration menu
    • Crawler settings for your desired websites
    • Network mode (isolated or federated)

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.