setup_searxng.sh 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #!/bin/bash
  2. # Local Food AI - SearXNG Setup (Docker)
  3. echo "========================================================="
  4. echo "🔍 Installing Docker & SearXNG Locally"
  5. echo "========================================================="
  6. echo "[1/4] Installing Docker..."
  7. sudo apt update
  8. sudo apt install -y docker.io
  9. sudo systemctl enable docker
  10. sudo systemctl start docker
  11. echo "[2/4] Setting up SearXNG environment structure..."
  12. sudo mkdir -p /etc/searxng
  13. echo "[3/4] Generating strict local AI settings.yml..."
  14. # We explicitly enable JSON formats so the python app can scrape the API invisibly
  15. sudo cat << 'EOF' > /etc/searxng/settings.yml
  16. use_default_settings: true
  17. general:
  18. debug: false
  19. instance_name: "Local Food AI Search"
  20. search:
  21. safe_search: 0
  22. autocomplete: ""
  23. default_lang: "en"
  24. formats:
  25. - html
  26. - json
  27. server:
  28. port: 8080
  29. bind_address: "0.0.0.0"
  30. secret_key: "ai_food_search_secret_key"
  31. limiter: false
  32. image_proxy: true
  33. EOF
  34. echo "[4/4] Launching official SearXNG Container..."
  35. # Bind strictly to localhost (127.0.0.1) so no one outside the VM can hit the search engine
  36. sudo docker stop searxng 2>/dev/null || true
  37. sudo docker rm searxng 2>/dev/null || true
  38. sudo docker run -d \
  39. -p 127.0.0.1:8080:8080 \
  40. -v /etc/searxng:/etc/searxng \
  41. --name searxng \
  42. --restart always \
  43. searxng/searxng
  44. echo "✅ SearXNG is now running firmly isolated on http://127.0.0.1:8080!"