SearXNG
Ciptakan dan kelola search engine pribadi Anda untuk pencarian privat yang berdaulat.
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:
- Tidak memerlukan pengetahuan awal tentang self-hosting dan direkomendasikan untuk pemula. Metode ini menyertakan Caddy sebagai reverse proxy dan otomatis menangani sertifikat TLS.
- Ditujukan untuk pengguna berpengalaman yang telah memiliki reverse proxy sendiri (misalnya Nginx, HAProxy) dan layanan lain di mesin mereka.
Instalasi
- Instal Docker
- Unduh image terbaru:
1
docker pull docker.io/searxng/searxng:latest
- Unduh searxng-docker:
1
cd /usr/local
1
git clone https://github.com/searxng/searxng-docker.git && cd searxng-docker
Edit berkas
.env
untuk mengatur hostname dan email- Generate secret key:
1
sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml
Metode 1: Dengan Caddy (disarankan untuk pemula)
- Jalankan SearXNG di background:
1
docker compose up -d
Sekarang SearXNG dapat diakses di
localhost:8080
Metode 2: Reverse Proxy Pribadi (pengguna berpengalaman)
- Hapus bagian terkait Caddy di
docker-compose.yaml
(layanan dan volume-nya) - Arahkan reverse proxy Anda ke port layanan
searxng
didocker-compose.yml
(bawaan: 8080) - Hasilkan dan konfigurasikan sertifikat TLS dengan reverse proxy pilihan Anda
- Jalankan SearXNG di background:
1
docker compose up -d
Port internal
searxng
dapat diubah melalui variabel lingkunganBIND_ADDRESS
(misal untuk mode jaringanhost
). Atur variabel ini langsung didocker-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 penggunasearxng: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
- Caddy:
Menjalankan SearXNG dengan systemd
Langkah ini opsional untuk pengguna non-systemd.
- Salin template layanan:
1
cp searxng-docker.service.template searxng-docker.service
Sesuaikan
WorkingDirectory
disearxng-docker.service
(jika jalur instalasi bukan/usr/local/searxng-docker
)- Aktifkan layanan:
1
systemctl enable $(pwd)/searxng-docker.service
- 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