Linux Mint/Ubuntu/Debian
Docker instalado
Acesso sudo
⚠️ SEMPRE COMECE POR AQUI!
bash
# Verificar status do firewallsudo ufw status verbose # Se estiver ATIVO, configurar portas necessáriassudo ufw allow 3000/tcp sudo ufw allow 8888/tcp sudo ufw allow 11434/tcp sudo ufw allow from 172.17.0.0/16 to any # Recarregar firewallsudo ufw reload
bash
# Criar diretórios organizadossudo mkdir -p /opt/app/{searxng,open-webui}/{config,data}sudo chown -R $USER:$USER /opt/app cd /opt/app
bash
cat > searxng/config/settings.yml << 'EOF'
general:
debug: false
instance_name: "SearXNG"
server:
secret_key: "$(openssl rand -hex 32)"
limiter: false
public_instance: true
base_url: false
search:
safe_search: 0
autocomplete: ""
formats:
- html
- json
ui:
static_use_hash: false
default_locale: "en"
default_theme: "simple"
engines:
- name: duckduckgo
engine: duckduckgo
shortcut: dd
categories: [general]
disabled: false
- name: google
engine: google
shortcut: go
categories: [general]
disabled: false
- name: bing
engine: bing
shortcut: bi
categories: [general]
disabled: false
EOF
bash
docker run --name searxng -d \ --restart unless-stopped \ -p 8888:8080 \ -v "/opt/app/searxng/config:/etc/searxng" \ -v "/opt/app/searxng/data:/var/cache/searxng" \ docker.io/searxng/searxng:latest
bash
# Testar se está respondendocurl -s "http://localhost:8888/search?q=teste&format=json" | jq '.results[0].title' 2>/dev/null
bash
docker run --name open-webui -d \ --restart unless-stopped \ -p 3000:8080 \ -v "/opt/app/open-webui/data:/app/backend/data" \ -e OLLAMA_BASE_URL=http://172.17.0.1:11434 \ -e ENABLE_WEB_SEARCH=true \ -e SEARXNG_SEARCH_URL="http://172.17.0.1:8888/search?q={query}&format=json" \ ghcr.io/open-webui/open-webui:main
bash
# Testar acessocurl -s http://localhost:3000 > /dev/null && echo "✅ Open Web UI OK" || echo "❌ Open Web UI Falhou"
bash
# Instalar Ollamacurl -fsSL https://ollama.ai/install.sh | sh# Iniciar serviçosudo systemctl enable ollama sudo systemctl start ollama # Baixar modelo (exemplo) ollama pull llama2:7b # Verificarcurl http://localhost:11434/api/tags
bash
cd /opt/app cat > docker-compose.yml << 'EOF'
version: '3.8'
services:
searxng:
image: docker.io/searxng/searxng:latest
container_name: searxng
restart: unless-stopped
ports:
- "8888:8080"
volumes:
- ./searxng/config:/etc/searxng
- ./searxng/data:/var/cache/searxng
networks:
- app-network
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:11434
- ENABLE_WEB_SEARCH=true
- SEARXNG_SEARCH_URL=http://searxng:8080/search?q={query}&format=json
volumes:
- ./open-webui/data:/app/backend/data
depends_on:
- searxng
networks:
- app-network
networks:
app-network:
driver: bridge
EOF# Executar com composedocker-compose down docker-compose up -d
bash
#!/bin/bashecho "=== VERIFICAÇÃO COMPLETA DO SISTEMA ==="echo "1. Firewall:"sudo ufw status | grep -E "(3000|8888|11434)"echo "2. Containers:"docker psecho "3. SearXNG:"curl -s "http://localhost:8888/search?q=teste&format=json" | jq -r '.results[0].title // "❌ Falhou"' 2>/dev/null echo "4. Open Web UI:"curl -s http://localhost:3000 > /dev/null && echo "✅ OK" || echo "❌ Falhou"echo "5. Ollama:"curl -s http://localhost:11434/api/tags > /dev/null && echo "✅ OK" || echo "❌ Falhou"echo "6. Web Search:"echo "Acesse http://localhost:3000 e teste: /web notícias de hoje"
Open Web UI: http://localhost:3000
SearXNG: http://localhost:8888
Teste web search: Digite /web [sua pergunta]
bash
# Diagnosticardocker run --rm instrumentisto/nmap -p 3000,8888,11434 172.17.0.1 # Corrigirsudo ufw allow from 172.17.0.0/16 to any sudo ufw reload
bash
# Verificar logsdocker logs open-webui | grep -i search # Testar comunicaçãodocker exec open-webui curl -s "http://searxng:8080/search?q=teste"
bash
# Usar Docker Compose (solução recomendada)docker-compose down docker-compose up -d
bash
# Ver logsdocker-compose logs -f# Parar tudodocker-compose down # Backup dadossudo tar -czf backup-$(date +%Y%m%d).tar.gz /opt/app/open-webui/data /opt/app/searxng/data # Atualizardocker-compose pull docker-compose up -d
Agora você tem:
✅ Open Web UI com interface web moderna
✅ SearXNG para buscas web privadas
✅ Ollama para modelos locais (opcional)
✅ Integração completa com prevenção de alucinações
✅ Firewall configurado corretamente
Acesso:
Open Web UI: http://localhost:3000
SearXNG: http://localhost:8888
Uso:
Chat normal: Digite suas perguntas
Busca web: /web [sua pesquisa]
Combina criatividade IA + fatos verificados 🚀
Sempre verifique o firewall primeiro:
bash
sudo ufw status verbose # Se portas 3000, 8888, 11434 não estiverem abertas, configure:sudo ufw allow 3000/tcp sudo ufw allow 8888/tcp sudo ufw allow 11434/tcp sudo ufw reload
Este tutorial resolve 90% dos problemas de comunicação entre containers! 🎯