SearXNG is a privacy-respecting metasearch engine that aggregates results from multiple sources without tracking. Hosting it on your Breeze gives you a self-hosted search solution.
Prerequisites
- A Breeze with at least 1 GB RAM
- Docker and Docker Compose installed
- A domain name pointed to your server
Deploy with Docker Compose
mkdir -p /opt/searxng && cd /opt/searxng
cat > docker-compose.yml <<'EOF'
version: "3.8"
services:
searxng:
image: searxng/searxng:latest
container_name: searxng
ports:
- "8080:8080"
volumes:
- ./settings:/etc/searxng
environment:
- SEARXNG_BASE_URL=https://search.example.com
restart: unless-stopped
EOF
docker compose up -d
Configure Settings
Edit the settings file to customize your search engines and UI:
mkdir -p /opt/searxng/settings
cat > /opt/searxng/settings/settings.yml <<'EOF'
general:
instance_name: "My Search"
server:
secret_key: "generate-a-random-key-here"
bind_address: "0.0.0.0"
search:
safe_search: 0
default_lang: "en"
engines:
- name: duckduckgo
disabled: false
- name: wikipedia
disabled: false
EOF
docker compose restart
Reverse Proxy Setup
Place SearXNG behind Nginx with TLS for secure access:
server {
listen 443 ssl;
server_name search.example.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
- Add authentication with HTTP basic auth or a VPN for private use
- Regularly update the Docker image to get new engine support