selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
LibreY logo

Self-host LibreY

1.0

Privacy-respecting meta search engine without JavaScript

ReleaseOpen SourceAGPL-3.0
Updated4 months ago
LanguagePHP
Setup difficultyModerate
Stars
324
Port
8080 (HTTP web interface)
Docker
ghcr.io/ahwxorg/librey
Install with Docker
LibreY search interface showing text resultsLibreY search interface showing image results

What is LibreY?

LibreY is a privacy-focused meta search engine that pulls results from several providers: Google, DuckDuckGo, Brave, Ecosia, Yandex, and Mojeek for web search; Qwant for images; and Ahmia plus other torrent sites. It runs completely without JavaScript, keeps zero user data, and exposes an API. The codebase originated as a fork of LibreX, adding extra scrapers and swapping automatic redirection for instance fallback. Deployment options include Docker Compose, plain Docker, or a manual PHP/NGINX setup on Linux.

Should you self-host LibreY?

LibreY scores 46/100 on selfhost.directory (how scoring works) and ranks #31 of 41 in Search Engines. It has 324 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in PHP.

Its closest alternative on selfhost.directory is SearXNG (86/100, 38 946 stars). It scores higher overall, so compare the two before you pick. See LibreY vs SearXNG side by side.

Features

  • Image Search
  • Instance fallback
  • Meta Search
  • No JavaScript required
  • OpenSearch support
  • Privacy-focused
  • REST API
  • Tor/I2P support
  • Torrent Search
  • Video search via Invidious

LibreY README

How to install LibreY

Install LibreY with Docker

Docker
Environment variables
TZ, CONFIG_GOOGLE_DOMAIN, CONFIG_LANGUAGE, CONFIG_NUMBER_OF_RESULTS, CONFIG_INVIDIOUS_INSTANCE, CONFIG_DISABLE_BITTORRENT_SEARCH, CONFIG_HIDDEN_SERVICE_SEARCH, CONFIG_INSTANCE_FALLBACK, CONFIG_RATE_LIMIT_COOLDOWN, CONFIG_CACHE_TIME, CONFIG_DISABLE_API, CONFIG_TEXT_SEARCH_ENGINE, CURLOPT_PROXY_ENABLED, CURLOPT_PROXY, CURLOPT_PROXYTYPE, CURLOPT_USERAGENT, CURLOPT_FOLLOWLOCATION

docker run -d --name librey --ip=172.4.0.6 --network librey_tor_net -p 8080:8080 -e TZ="America/New_York" -e CONFIG_GOOGLE_DOMAIN="com" -e CONFIG_LANGUAGE="en" -e CONFIG_NUMBER_OF_RESULTS="10" -e CONFIG_INVIDIOUS_INSTANCE="https://inv.nadeko.net" -e CONFIG_DISABLE_BITTORRENT_SEARCH=false -e CONFIG_HIDDEN_SERVICE_SEARCH=false -e CONFIG_INSTANCE_FALLBACK=true -e CONFIG_RATE_LIMIT_COOLDOWN=25 -e CONFIG_CACHE_TIME=20 -e CONFIG_DISABLE_API=false -e CONFIG_TEXT_SEARCH_ENGINE="auto" -e CURLOPT_PROXY_ENABLED=true -e CURLOPT_PROXY="172.4.0.5:9050" -e CURLOPT_PROXYTYPE="CURLPROXY_SOCKS5_HOSTNAME" -e CURLOPT_USERAGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0" -e CURLOPT_FOLLOWLOCATION=true -v ./nginx_logs:/var/log/nginx -v ./php_logs:/var/log/php84 --restart unless-stopped ghcr.io/ahwxorg/librey:latest

Example with Tor proxy; can run without Tor by adjusting proxy settings

How to configure LibreY

  • CONFIG_CACHE_TIME20Cache time in seconds

    Cache time in seconds

  • CONFIG_DISABLE_APIfalseDisable the API endpoint

    Disable the API endpoint

    values: true,false

  • CONFIG_DISABLE_BITTORRENT_SEARCHfalseDisable BitTorrent search functionality

    Disable BitTorrent search functionality

    values: true,false

  • CONFIG_GOOGLE_DOMAINcomGoogle domain to use for search (e.g., com, co.uk)

    Google domain to use for search (e.g., com, co.uk)

  • CONFIG_HIDDEN_SERVICE_SEARCHfalseEnable hidden service (Tor/I2P) search

    Enable hidden service (Tor/I2P) search

    values: true,false

  • CONFIG_INSTANCE_FALLBACKtrueEnable automatic instance fallback

    Enable automatic instance fallback

    values: true,false

  • CONFIG_INVIDIOUS_INSTANCEhttps://inv.nadeko.netInvidious instance for video results

    Invidious instance for video results

  • CONFIG_LANGUAGEenDefault language for search results

    Default language for search results

  • CONFIG_NUMBER_OF_RESULTS10Number of results per page

    Number of results per page

  • CONFIG_RATE_LIMIT_COOLDOWN25Rate limit cooldown in seconds

    Rate limit cooldown in seconds

  • CONFIG_TEXT_SEARCH_ENGINEautoText search engine selection

    Text search engine selection

  • CURLOPT_FOLLOWLOCATIONtrueFollow HTTP redirects

    Follow HTTP redirects

    values: true,false

  • CURLOPT_PROXY192.0.2.53:8388Proxy address (host:port)

    Proxy address (host:port)

  • CURLOPT_PROXY_ENABLEDfalseEnable proxy for outbound requests

    Enable proxy for outbound requests

    values: true,false

  • CURLOPT_PROXYTYPECURLPROXY_HTTPProxy type (CURLPROXY_HTTP, CURLPROXY_SOCKS5_HOSTNAME, etc.)

    Proxy type (CURLPROXY_HTTP, CURLPROXY_SOCKS5_HOSTNAME, etc.)

  • CURLOPT_USERAGENTMozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0User agent string for requests

    User agent string for requests

More in Search Engines

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…