Como criar um mecanismo de pesquisa com SearxNG 1

Como criar um mecanismo de pesquisa com SearxNG

SearXNG é um poderoso mecanismo de meta-pesquisa que você pode hospedar em qualquer lugar. Ao contrário dos mecanismos de pesquisa tradicionais, o SearXNG é um agregador de mecanismos. Isso significa que, em vez de processar as pesquisas por si só, ele usa outros mecanismos para fazer a pesquisa. Além disso, o SearXNG é incrivelmente leve e fácil de configurar, e você pode hospedá-lo em um sistema tão simples quanto um Raspberry Pi!

Por que instalar o SearXNG

Os mecanismos de pesquisa tornam incrivelmente conveniente navegar e descobrir a web. No entanto, usar um mecanismo de pesquisa público tem um preço – empresas de pesquisa modernas, como o Google, usam seus dados de pesquisa para criar um perfil altamente preciso de você.

Esse comportamento pode parecer intrusivo para indivíduos que desejam manter suas pesquisas privadas e anônimas. Por exemplo, os jornalistas que estão reportando sobre tópicos sensíveis e controversos podem não querer associar suas consultas de pesquisa com seus nomes.

Searxng Install 04 Sample Classified Information

Uma maneira de lidar com esse problema de privacidade é instalando e hospedando sua própria instância do SearXNG. Isso garante que somente você terá acesso aos seus logs de pesquisa.

O que você precisará

O SearXNG requer que você tenha algumas coisas prontas antes de poder instalá-lo:

  • Um nome de domínio totalmente qualificado (FQDN): para usar o SearXNG, você precisa hospedá-lo através de um servidor web adequado com um domínio.
  • Uma máquina acessível de fora da sua rede doméstica: pode ser um computador em sua casa que tenha um endereço IP estático ou um servidor virtual privado (VPS) dedicado que você está alugando no momento.
  • Acesso root à sua máquina: isso ocorre porque o SearXNG exige que você instale algumas ferramentas do sistema para configurá-lo e hospedá-lo corretamente.

Este tutorial se concentra apenas na instalação e configuração do SearXNG em um Debian 11 VPS de DigitalOcean.

Searxng Install 05 Digitalocean Droplet

Instalando as dependências do SearXNG

Antes de instalar o SearXNG, você precisa criar uma conta de usuário separada em seu sistema:

sudo useradd -s /bin/bash -d /home/searx -m -G sudo searx
sudo passwd searx
Searxng Instalar 06 Criar Novo Usuário

Isso permite isolar todos os comandos e arquivos ao instalar e configurar o SearXNG. Isso pode ser especialmente útil se você pretende hospedar o mecanismo de pesquisa em um VPS com vários serviços.

Uma vez feito, você precisa mudar para a nova conta de usuário executando su searx. A partir daí, agora você pode instalar todas as dependências necessárias para o SearXNG:

sudo apt install git nginx iptables iptables-persistent ufw certbot python3-certbox-nginx
Searxng Instalar 07 Instalar Dependências

Configurando seu firewall

Embora esta não seja uma etapa necessária, configurar seu firewall garante que qualquer sistema externo só possa acessar portas autorizadas por você. Isso pode ajudar a evitar que agentes mal-intencionados inundem sua máquina com solicitações infinitas.

Searxng Install 08 Instalar regras de firewall

Você pode usar os dois iptables e ufw para habilitar apenas as portas que o SearXNG precisa:

sudo iptables -I INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save
sudo ufw allow 80
sudo ufw allow 443
  • Os dois iptables comandos criam uma nova regra que aceita qualquer nova conexão HTTP e HTTPS recebida em sua máquina. Isso, por sua vez, permite que seu sistema forneça a página da Web SearXNG para seus usuários.
  • o netfilter-persistent O comando salva e recarrega todas as alterações feitas no firewall. Isso garante que sua máquina tenha as configurações corretas entre as reinicializações do sistema.
  • Por último, os dois ufw Os comandos garantem que qualquer conexão atual em HTTP e HTTPS permaneça aberta durante a sessão.

Clonagem e instalação do SearXNG

A próxima coisa que você precisa fazer é baixar e instalar o SearXNG em sua máquina. Os desenvolvedores do programa oferecem um script de instalação simples que lida com a maioria das etapas de configuração complicadas.

Searxng Install 09 Searxng Github Page

Você pode obter este script de instalação clonando o arquivo do programa Repositório do GitHub:

git clone https://github.com/searxng/searxng searxng && cd searxng
Searxng Instalar 10 Git Clone Repository

Quando a clonagem estiver concluída, você poderá iniciar o processo de instalação:

sudo -H ./utils/searxng.sh install all

Embora esse processo seja amplamente automático, há casos em que o script solicita que você confirme as alterações que está fazendo. Por exemplo, quando o script SearXNG imprime uma lista de programas que irá instalar, você precisa pressionar S continuar.

Searxng Install 11 Exemplo de instalação de prompt

Configurando o SearXNG

Uma vez que o SearXNG está em sua máquina, você precisa configurar um servidor web que irá transmiti-lo, porque o mecanismo de busca é apenas um processo que recebe solicitações e publica resultados. Isso significa que sem um servidor web adequado, não é possível interagir e usar o SearXNG.

Search Engine Instalar 12 Search Engine em execução

No momento, o SearXNG suporta oficialmente o Apache e o Nginx. Esta seção se concentra na configuração do SearXNG como um serviço autônomo usando o Nginx.

Configurando o Nginx

Primeiro, você precisa criar um novo arquivo de configuração em “/etc/nginx/sites-available/”:

sudo nano /etc/nginx/sites-available/searxng

Você precisa então escrever um bloco de servidor dentro do arquivo que conterá a configuração do servidor web. Por exemplo, este é um bloco básico que estou usando para minha instância SearXNG:

server {
 
    # Ports.
    listen 80;
    listen [::]:80;
 
    # Hostname.
    server_name yetanothersearxserver.xyz;
 
    # Logging.
    access_log /dev/null;
    error_log  /dev/null;
 
    # Searx Redirect.
    location / {
        uwsgi_pass unix:///usr/local/searxng/run/socket;
 
        include uwsgi_params;
 
        uwsgi_param    HTTP_HOST             $host;
        uwsgi_param    HTTP_CONNECTION       $http_connection;
 
        # see flaskfix.py
        uwsgi_param    HTTP_X_SCHEME         $scheme;
        uwsgi_param    HTTP_X_SCRIPT_NAME    /searxng;
 
        # see limiter.py
        uwsgi_param    HTTP_X_REAL_IP        $remote_addr;
        uwsgi_param    HTTP_X_FORWARDED_FOR  $proxy_add_x_forwarded_for;
 
    }
}
  • o listen variáveis ​​informam ao Nginx que este servidor web transmite um serviço na porta 80. É importante alterar este valor se você já estiver executando um host virtual diferente em seu sistema.
  • o server_name é uma variável que deve conter um FQDN que aponte para sua máquina. No meu caso, meu servidor web usa “yetanothersearxserver.xyz”.
  • Tanto o access_log e error_log variáveis ​​informam ao Nginx onde salvar qualquer informação sobre suas consultas de pesquisa. Por exemplo, configurá-lo para “/dev/null” garante que você não está salvando nenhum log na máquina.
  • Por último, o location block diz ao Nginx o que fazer sempre que um usuário se conectar ao servidor web.
Searxng Instalar 13 Exemplo de Configuração Nginx

Instalando SSL e habilitando SearXNG

A próxima coisa que você precisa fazer é criar um certificado SSL para sua instância SearXNG. Isso garante que todas as conexões feitas ao seu site sejam seguras.

Searxng Instalar 14 Amostras de Certificado SSL

Você pode facilmente habilitar o SSL gratuitamente inscrevendo-se com Vamos criptografarcertbot. Por exemplo, posso executar o seguinte comando para emitir um certificado para meu host SearXNG:

certbot --nginx yetanothersearxserver.xyz

Agora você pode habilitar seu site através do Nginx criando um link simbólico para a pasta “sites_enabled” do servidor web:

sudo ln -s /etc/nginx/sites-available/searx /etc/nginx/sites-enabled/

Uma vez feito, você precisa recarregar o SearXNG e o Nginx para aplicar e habilitar suas configurações:

sudo systemctl reload nginx
sudo service uwsgi restart searxng

Parabéns! Agora você sabe como criar e hospedar seu próprio mecanismo de pesquisa usando o SearXNG.

perguntas frequentes

É possível atualizar o SearXNG depois de instalá-lo?

Sim! Embora você não possa instalar o SearXNG por meio de um gerenciador de pacotes tradicional, é possível atualizar e migrar o mecanismo de pesquisa a partir da linha de comando. Por exemplo, você pode atualizar o SearXNG executando o seguinte comando: sudo /home/$USER/searxng/utils/searxng.sh instance update.

O script de instalação está me informando que o Redis não está disponível. Minha instalação falhou?

Não. Mas esse erro provavelmente fará com que sua instância SearXNG fique instável. Isso ocorre porque uma falha do Redis no SearXNG significa que ele está sendo executado em um sistema não SystemD e seu daemon de filtragem antibot não está em execução.

Para corrigir isso, você precisa desinstalar o SearXNG executando o seguinte comando: sudo /home/$USER/searxng/utils/searxng.sh remove all. Por fim, você também precisa ter certeza de que está usando o SystemD executando o seguinte: sudo systemctl --version.

É possível ver o que o SearXNG está fazendo atualmente?

Sim! Embora o SearXNG seja um daemon sem cabeça que é executado em segundo plano, é possível verificar o que ele está fazendo no momento. Isso é útil nos casos em que o SearXNG está encontrando alguns problemas e você não tem certeza do que está causando esses problemas. Por exemplo, posso acessar a tela de depuração do SearXNG executando o seguinte comando: sudo /home/$USER/searxng/utils/searxng.sh instance inspect.

Apoie o nosso trabalho ❤️

Se você gostou deste artigo, considere deixar uma gorjeta para nos ajudar a continuar publicando conteúdo de qualidade.

Pagamento seguro no PayPal
Moyens I/O Staff motivou você, dando conselhos sobre tecnologia, desenvolvimento pessoal, estilo de vida e estratégias que irão ajudá-lo.