| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #!/bin/bash
- # Local Food AI - SearXNG Setup (Docker)
- echo "========================================================="
- echo "🔍 Installing Docker & SearXNG Locally"
- echo "========================================================="
- echo "[1/4] Installing Docker..."
- sudo apt update
- sudo apt install -y docker.io
- sudo systemctl enable docker
- sudo systemctl start docker
- echo "[2/4] Setting up SearXNG environment structure..."
- sudo mkdir -p /etc/searxng
- echo "[3/4] Generating strict local AI settings.yml..."
- # We explicitly enable JSON formats so the python app can scrape the API invisibly
- sudo cat << 'EOF' > /etc/searxng/settings.yml
- use_default_settings: true
- general:
- debug: false
- instance_name: "Local Food AI Search"
- search:
- safe_search: 0
- autocomplete: ""
- default_lang: "en"
- formats:
- - html
- - json
- server:
- port: 8080
- bind_address: "0.0.0.0"
- secret_key: "ai_food_search_secret_key"
- limiter: false
- image_proxy: true
- EOF
- echo "[4/4] Launching official SearXNG Container..."
- # Bind strictly to localhost (127.0.0.1) so no one outside the VM can hit the search engine
- sudo docker stop searxng 2>/dev/null || true
- sudo docker rm searxng 2>/dev/null || true
- sudo docker run -d \
- -p 127.0.0.1:8080:8080 \
- -v /etc/searxng:/etc/searxng \
- --name searxng \
- --restart always \
- searxng/searxng
- echo "✅ SearXNG is now running firmly isolated on http://127.0.0.1:8080!"
|