4get установка

4get — это лёгкий метапоисковик с открытым исходным кодом. В отличие от Whoogle, который зависит от одного Google, 4get собирает результаты из множества источников (DuckDuckGo, Brave, Yandex, Startpage и т.д.), не отслеживает пользователей и легко кастомизируется. Теперь использую его например. Краткий гайд по установке ниже.

Установка зависимостей

sudo apt update && sudo apt upgrade -y
sudo apt install -y git nginx php-fpm php-curl php-mbstring php-apcu php-imagick imagemagick curl

Если нужен Tor (.onion):

sudo apt install -y tor

Если нужен HTTPS (Let's Encrypt):

sudo apt install -y certbot certbot-nginx

Установка 4get

sudo git clone --depth 1 https://git.lolcat.ca/lolcat/4get.git /var/www/4get
sudo chown -R www-data:www-data /var/www/4get

Настройка nginx

sudo nano /etc/nginx/sites-available/4get.conf
server {
    listen 80;
    server_name example.com;

    root /var/www/4get;

    location @php {
        try_files $uri.php $uri/index.php =404;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        fastcgi_intercept_errors on;
    }

    location / {
        try_files $uri @php;
    }

    location ~* ^(.*)\.php$ {
        return 301 $1;
    }
}
sudo ln -s /etc/nginx/sites-available/4get.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

HTTPS (опционально)

sudo certbot --nginx --key-type ecdsa -d example.com

Tor-зеркало (опционально)

В /etc/tor/torrc:

HiddenServiceDir /var/lib/tor/4get_hidden/
HiddenServicePort 80 127.0.0.1:8082

nginx:

server {
    listen 127.0.0.1:8082;
    server_name your_hidden_service.onion;

    root /var/www/4get;

    location @php {
        try_files $uri.php $uri/index.php =404;
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        fastcgi_intercept_errors on;
    }

    location / {
        try_files $uri @php;
    }

    location ~* ^(.*)\.php$ {
        return 301 $1;
    }
}
sudo systemctl restart tor
sudo systemctl reload nginx

Кастомизация

  • Шапка (Home / Settings / News) — template/header.html
  • Футер — template/footer.html
  • Прокси — data/proxies/ (например onion.txt)

Пример прокси

В data/config.php:

const PROXY_DDG = "onion";
const PROXY_GOOGLE = "onion";

А в data/proxies/onion.txt:

socks5:localhost:9050::

Обновление

Если клонировали с --depth 1:

sudo rm -rf /var/www/4get
sudo git clone --depth 1 https://git.lolcat.ca/lolcat/4get.git /var/www/4get

Если без:

cd /var/www/4get
sudo git pull

Исходный код

Проект полностью открыт. Исходники хранятся на официальном репозитории:

https://git.lolcat.ca/lolcat/4get

Итог

Теперь 4get доступен на https://example.com и готов к работе. Можно добавить его как поисковик по умолчанию в браузере:

https://example.com/web?s=%s