Post

SearXNG

Ciptakan dan kelola search engine pribadi Anda untuk pencarian privat yang berdaulat.

SearXNG

Pendahuluan

SearXNG adalah metasearch engine sumber terbuka yang mengagregasi hasil dari berbagai penyedia pencarian (termasuk Google, Bing, dan DuckDuckGo) tanpa menyimpan data pengguna atau melacak aktivitas. Solusi self-hosted memungkinkan pengguna mengontrol infrastruktur pencarian secara penuh, dengan Docker menyederhanakan proses penyebaran melalui kontainerisasi. Implementasi ini menjamin privasi pencarian, menghindari sensor eksternal, dan memfasilitasi pemeliharaan sistem.

Petunjuk Penggunaan

Terdapat dua metode untuk menghosting SearXNG:

  1. Tidak memerlukan pengetahuan awal tentang self-hosting dan direkomendasikan untuk pemula. Metode ini menyertakan Caddy sebagai reverse proxy dan otomatis menangani sertifikat TLS.
  2. Ditujukan untuk pengguna berpengalaman yang telah memiliki reverse proxy sendiri (misalnya Nginx, HAProxy) dan layanan lain di mesin mereka.

Instalasi

  1. Instal Docker
  2. Unduh image terbaru:
    1
    
    docker pull docker.io/searxng/searxng:latest
    
  3. Unduh searxng-docker:
    1
    
    cd /usr/local
    
    1
    
    git clone https://github.com/searxng/searxng-docker.git && cd searxng-docker
    
  4. Edit berkas .env untuk mengatur hostname dan email

  5. Generate secret key:
    1
    
    sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml 
    

Metode 1: Dengan Caddy (disarankan untuk pemula)

  1. Jalankan SearXNG di background:
    1
    
    docker compose up -d
    

    Sekarang SearXNG dapat diakses di localhost:8080

Metode 2: Reverse Proxy Pribadi (pengguna berpengalaman)

  1. Hapus bagian terkait Caddy di docker-compose.yaml (layanan dan volume-nya)
  2. Arahkan reverse proxy Anda ke port layanan searxng di docker-compose.yml (bawaan: 8080)
  3. Hasilkan dan konfigurasikan sertifikat TLS dengan reverse proxy pilihan Anda
  4. Jalankan SearXNG di background:
    1
    
    docker compose up -d
    

    Port internal searxng dapat diubah melalui variabel lingkungan BIND_ADDRESS (misal untuk mode jaringan host). Atur variabel ini langsung di docker-compose.yaml.

Manajemen

Daftar kontainer yang sedang berjalan:

1
2
3
4
5
└─$ docker container list
CONTAINER ID   IMAGE                    COMMAND                  CREATED         STATUS                          PORTS                      NAMES
49f3971ec328   valkey/valkey:8-alpine   "docker-entrypoint.s…"   6 minutes ago   Up 6 minutes                    6379/tcp                   redis
ea1a216a9a48   caddy:2-alpine           "caddy run --config …"   6 minutes ago   Restarting (1) 52 seconds ago                              caddy
4722231dcd95   searxng/searxng:latest   "/usr/local/searxng/…"   6 minutes ago   Up 6 minutes                    127.0.0.1:8080->8080/tcp   searxng

Akses shell kontainer (troubleshooting):

1
docker container exec -it --user root searxng /bin/sh -l

Hentikan dan hapus kontainer:

1
docker container stop searxng
1
docker container rm searxng

Volumes

Dua volume diekspos yang harus dipasang untuk menjaga isinya:

  • /etc/searxng: Berkas konfigurasi (settings.yml, etc.)
  • /var/cache/searxng: Persistent data (faviconcache.db, etc.)

Environment Variables

Variabel lingkungan berikut dapat dikonfigurasi:

  • $SEARXNG_*: Mengontrol opsi konfigurasi SearXNG, perhatikan lingkungan $SEARXNG_* di server dan general.
  • $GRANIAN_*: Mengontrol opsi server Granian.
  • $FORCE_OWNERSHIP: Memastikan volume/berkas yang dipasang dimiliki oleh pengguna searxng:searxng (default: true)

Jalur internal kontainer (jangan diubah kecuali Anda tahu apa yang Anda lakukan):

  • $CONFIG_PATH: Jalan ke direktori konfigurasi SearXNG (default: /etc/searxng)
  • $SEARXNG_SETTINGS_PATH: Jalan ke berkas pengaturan SearXNG (default: $CONFIG_PATH/settings.yml)
  • $DATA_PATH: Jalan ke direktori data SearXNG (default: /var/cache/searxng)

Troubleshooting - Akses Log

  • Akses log semua kontainer:
    1
    
    docker compose logs -f
    
  • Log spesifik:
    • Caddy: docker compose logs -f caddy
    • SearXNG: docker compose logs -f searxng
    • Valkey: docker compose logs -f redis

Menjalankan SearXNG dengan systemd

Langkah ini opsional untuk pengguna non-systemd.

  1. Salin template layanan:
    1
    
    cp searxng-docker.service.template searxng-docker.service
    
  2. Sesuaikan WorkingDirectory di searxng-docker.service (jika jalur instalasi bukan /usr/local/searxng-docker)

  3. Aktifkan layanan:
    1
    
    systemctl enable $(pwd)/searxng-docker.service
    
  4. Mulai layanan:
    1
    
    systemctl start searxng-docker.service
    

    Penting: Verifikasi jalur berkas layanan sebelum mengaktifkannya.

Pembaruan Sistem

Untuk memperbarui SearXNG stack:

1
git pull
1
docker compose pull
1
docker compose up -d

Metode lama (docker-compose versi lawas):

1
git pull
1
docker-compose pull
1
docker-compose up -d

Referensi

Pranala Menarik

This post is licensed under CC BY 4.0 by the author.