Intermediário 20 minImplantação

Implantar um chatbot de IA para sua equipe em intranet

Suas equipes usam o ChatGPT sem sua autorização, e cada prompt pode enviar conteúdo de arquivos internos à OpenAI. Implantar um chatbot de IA empresarial na intranet resolve o problema em poucas horas: um servidor Ollama, Open WebUI em modo multiusuário, Nginx na entrada com HTTPS, e você oferece a toda a equipe uma interface semelhante à do ChatGPT em que nenhum token sai da sua rede. Este guia aborda a stack completa, desde a escolha do hardware até o backup das conversas.

Por Mohamed Meguedmi·Atualização 2026-08-27·Testado no Windows, macOS e Linux

#Por que usar um chatbot de IA empresarial na intranet?

Três razões concretas levam à internalização: a privacidade (seus prompts geralmente contêm trechos de código, dados de clientes e informações financeiras), o custo (uma assinatura ChatGPT Team de 25 €/mês/usuário rapidamente chega a 5.000 €/ano para 20 pessoas) e o controle (você escolhe os modelos, os system prompts e os logs das conversas).

Uma stack de chatbot de IA para intranet empresarial bem estruturada cabe em uma única máquina para equipes de até 30–50 pessoas. Acima disso, separa-se o servidor de inferência do frontend, mas a arquitetura permanece a mesma.

i
O que você obtém no final
Uma URL HTTPS interna (https://chat.entreprise.local) acessível a partir de todos os computadores da intranet. Cada colaborador tem sua conta, seu histórico e suas pastas. Nenhum dado sai da rede. Tudo em menos de 20 minutos de configuração, depois que o servidor estiver preparado.

#Arquitetura da stack

O kit IA Local na Empresa

Implantar uma IA local no trabalho: RGPD, AI Act, arquitetura multiusuário, custos, nota para a diretoria.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias

Quatro componentes empilhados, cada um com uma função precisa:

Ollama
Daemon de inferência que hospeda os modelos (Qwen 3.5, Granite 4.2, Gemma 4, Mistral Small). Escuta por padrão em http://localhost:11434.
Open WebUI
Interface multiusuário semelhante ao ChatGPT em Docker. Gerencia contas, conversas, RAG e funções admin/user.
Nginx
Proxy reverso na entrada. Termina a conexão HTTPS, aplica limites de requisições e disponibiliza o serviço em um nome de domínio interno bem definido.
Watchtower + cron
Atualização automática das imagens Docker e backup diário do volume Open WebUI (que contém contas + conversas).
→
Por que Open WebUI em vez de LibreChat ou AnythingLLM?
O Open WebUI tem a melhor integração nativa com o Ollama (descoberta automática de modelos, gerenciamento da memória VRAM), um modo multiusuário robusto com RBAC e um RAG integrado sem dependência externa. Hoje, é a escolha padrão para uma implantação em intranet.

#Requisitos de hardware e sistema operacional

O dimensionamento depende do modelo escolhido e da carga de uso simultâneo. Referências práticas para uma equipe:

Equipe pequena (5–15 usuários, modelo 8–9B)
16 GB de RAM, GPU com 8-12 GB de VRAM (RTX 3060 12GB, 4060 Ti 16GB). Qwen 3.5 9B Q4 (6,6 GB, 256k ctx) ou Granite 4.2 8B (5,3 GB, muito econômico em tokens).
Equipe média (15–30 usuários, modelo de 20–24B)
32 GB de RAM, GPU com 16 GB de VRAM (RTX 4070 Ti Super, 5080). Mistral Small 24B Q4 (14 GB, bom em francês) ou gpt-oss 20B (14 GB, muito rápido em MXFP4).
Equipe grande (30-50 usuários, modelo de 27-30B)
64 GB de RAM, GPU com 24 GB de VRAM (RTX 3090/4090) ou Mac Studio M5 Max com 64 GB. Qwen 3.8 27B Q4 (18 GB, contexto de 262k, visão) ou Granite 4.2 30B Q4 (18 GB, voltado para empresas).
Mais de 50 usuários simultâneos
Mude para o vLLM ou use várias instâncias Ollama atrás de um balanceador de carga. Isso foge ao escopo deste guia.

Quanto ao sistema operacional: Ubuntu Server 22.04 ou 24.04 LTS continua sendo a opção mais simples. Docker Engine e drivers NVIDIA (com nvidia-container-toolkit se houver GPU) instalados previamente.

!
Evite o "servidor debaixo da mesa"
Uma equipe que depende da ferramenta não tolera uma interrupção por falta de energia. Coloque a máquina na sala de servidores, ligada a um nobreak, com acesso SSH estável. Se você não tiver infraestrutura, um Mac mini M4 em uma prateleira funciona como um excelente servidor de inferência silencioso e econômico (40 W em repouso).

#1. Instalar Ollama no servidor

A instalação do Linux é feita pelo script oficial. Ele detecta a GPU NVIDIA e configura o serviço systemd automaticamente.

Instalação do Ollama
curl -fsSL https://ollama.com/install.sh | sh

Por padrão, o daemon escuta apenas no localhost. Para que o Docker (Open WebUI) consiga chamá-lo a partir do seu contêiner, exponha-o em todas as interfaces locais do servidor. Edite o override do systemd:

Configuração do systemd
sudo systemctl edit ollama
/etc/systemd/system/ollama.service.d/override.conf
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_KEEP_ALIVE=30m"
Environment="OLLAMA_NUM_PARALLEL=4"
OLLAMA_HOST=0.0.0.0:11434
Escuta em todas as interfaces. O firewall do sistema operacional mantém a porta 11434 bloqueada para acessos externos — apenas o Open WebUI na mesma máquina terá acesso a ela.
OLLAMA_KEEP_ALIVE=30m
Mantém o modelo carregado na VRAM por 30 min após o último prompt. Evita recarregamentos dispendiosos entre duas solicitações de usuários.
OLLAMA_NUM_PARALLEL=4
Número de requisições paralelas. 4 é um bom ponto de partida para um modelo 8-9B (do tipo Qwen 3.5 9B) em 12 GB de VRAM; reduza para 2 em uma GPU menor.
Recarregar e baixar o modelo
sudo systemctl daemon-reload
sudo systemctl restart ollama
ollama pull qwen3.5:9b
→
Qual modelo escolher para uma equipe que trabalha em francês?
Qwen 3.5 9B (6,6 GB, 256k ctx, multimodal, Apache 2.0) é o melhor equilíbrio entre qualidade e velocidade em francês para o público interno em geral. Para casos mais exigentes (análise jurídica, síntese de documentos longos), passe para Mistral Small 24B Q4 (bom em francês) ou para Qwen 3.8 27B se sua VRAM permitir.

#2. Open WebUI em modo multiusuário com Docker

O Open WebUI é implantado com um único comando Docker. O volume open-webui:/app/backend/data contém toda a base de dados: contas, conversas, prompts. É desse volume que você precisará fazer backup.

Inicialização do Open WebUI
docker run -d \
  --name open-webui \
  --restart always \
  -p 127.0.0.1:3000:8080 \
  -v open-webui:/app/backend/data \
  -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
  -e WEBUI_AUTH=true \
  -e ENABLE_SIGNUP=false \
  -e DEFAULT_USER_ROLE=pending \
  --add-host=host.docker.internal:host-gateway \
  ghcr.io/open-webui/open-webui:main
-p 127.0.0.1:3000:8080
Open WebUI só pode ser acessado pelo próprio servidor. O Nginx fará a ponte para a rede interna. Crucial para a segurança.
ENABLE_SIGNUP=false
Ninguém pode criar uma conta pela página de login. Você cria os usuários pelo painel de administração.
DEFAULT_USER_ROLE=pending
Toda nova conta fica aguardando aprovação do administrador. Isso evita que um funcionário convide alguém de fora por acidente.
OLLAMA_BASE_URL
Aponta para o Ollama que está rodando no host. host.docker.internal é resolvido para o gateway do Docker graças a --add-host.

A primeira conta criada pela interface http://serveur:3000 (via encaminhamento SSH ou diretamente) torna-se automaticamente administradora. Crie-a imediatamente após a inicialização do contêiner, antes de expor o serviço.

!
A primeira conta = administrador
Se você deixar o Open WebUI aberto na rede antes de criar sua conta de administrador, a primeira pessoa a se inscrever herda todos os poderes. Sempre faça a configuração inicial localmente ou por um túnel SSH, nunca com o serviço diretamente exposto.

#3. Proxy reverso Nginx com SSL interno

Para expor chat.entreprise.local corretamente, o Nginx termina a conexão HTTPS e encaminha as requisições para o Open WebUI em 127.0.0.1:3000. Em uma intranet, você pode usar um certificado emitido pela sua PKI interna ou um certificado autoassinado distribuído aos computadores via GPO.

Instalar o Nginx
sudo apt install nginx
/etc/nginx/sites-available/chat-intranet
server {
    listen 80;
    server_name chat.entreprise.local;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name chat.entreprise.local;

    ssl_certificate     /etc/ssl/certs/chat-intranet.crt;
    ssl_certificate_key /etc/ssl/private/chat-intranet.key;
    ssl_protocols TLSv1.2 TLSv1.3;

    client_max_body_size 100M;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_read_timeout 600s;
        proxy_send_timeout 600s;
    }
}
client_max_body_size 100M
Indispensável para o RAG: permite que seus usuários façam upload de PDFs ou documentos de até 100 MB.
Upgrade / Connection
Ativa o WebSocket. Sem essas duas linhas, o streaming token a token deixa de funcionar e a interface parece travada.
proxy_read_timeout 600s
Uma solicitação de geração longa (resumo de um documento grande) pode levar vários minutos. O tempo limite padrão do Nginx (60s) interrompe a resposta no meio.
Ativar e recarregar
sudo ln -s /etc/nginx/sites-available/chat-intranet /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

#4. Autenticação, funções e integração inicial

Open WebUI gerencia nativamente três papéis: admin (configura tudo), user (usa o chat) e pending (conta criada, mas não ativada). Para uma PME, a autenticação local é suficiente. Acima de 30 a 40 pessoas ou para um alinhamento rigoroso com a TI, conecte OIDC ao seu IdP (Keycloak, Authentik, Microsoft Entra).

  1. 01
    Criar os usuários
    Painel Admin → Users → Add User. Preencha o e-mail, o nome e a senha inicial. O usuário mudará a senha no primeiro acesso.
  2. 02
    Restringir os modelos por perfil de acesso
    Em Admin → Models, você pode ocultar determinados modelos dos usuários comuns. Por exemplo: manter o Qwen 3.8 27B (o que mais consome VRAM) disponível apenas para os administradores, se você o tiver carregado.
  3. 03
    Impor um prompt de sistema padrão
    Admin → Settings → Interface → Default Prompt Suggestions. Ideal para orientar o uso ('Você responde em francês, recusa temas sensíveis, etc.').
  4. 04
    Desativar as funcionalidades externas
    Admin → Settings → desative Web Search (caso contrário, o Open WebUI chama o DuckDuckGo) e Image Generation se você não quiser nenhuma comunicação de saída pela rede.
→
OIDC para ir além
Open WebUI oferece suporte a OAUTH_PROVIDER_NAME, OAUTH_CLIENT_ID, OAUTH_CLIENT_SECRET e OPENID_PROVIDER_URL como variáveis de ambiente. Em 10 minutos, seus usuários se conectam com a conta do Entra ID ou do Google Workspace, sem gerenciar senhas locais.

#5. Monitoramento e backup das conversas

Três coisas para monitorar: saúde do servidor (CPU/GPU/RAM), saúde da API Ollama e integridade do banco de dados do Open WebUI. E uma coisa para fazer backup: o volume Docker open-webui.

#Monitoramento rápido

Healthcheck Ollama
curl -s http://localhost:11434/api/tags | jq '.models | length'

Se você usa Prometheus + Grafana, o nvidia_smi_exporter para a GPU e o node_exporter para o sistema bastam em 95% dos casos. O próprio Open WebUI expõe /health via GET; inclua esse endpoint na sua verificação de disponibilidade.

#Backup diário do volume Open WebUI

O volume Docker open-webui contém um banco de dados SQLite com todas as contas, conversas, prompts personalizados e documentos indexados para o RAG. Sua perda significa a perda completa do histórico da equipe.

/usr/local/bin/backup-openwebui.sh
#!/bin/bash
set -e
BACKUP_DIR=/var/backups/open-webui
TIMESTAMP=$(date +%Y%m%d-%H%M)
mkdir -p "$BACKUP_DIR"

docker run --rm \
  -v open-webui:/data \
  -v "$BACKUP_DIR":/backup \
  alpine tar czf "/backup/openwebui-$TIMESTAMP.tar.gz" -C /data .

find "$BACKUP_DIR" -name 'openwebui-*.tar.gz' -mtime +14 -delete
Cron diário às 2h da madrugada
sudo chmod +x /usr/local/bin/backup-openwebui.sh
echo "0 2 * * * root /usr/local/bin/backup-openwebui.sh" | sudo tee /etc/cron.d/openwebui-backup

O script mantém 14 dias de histórico. Para um plano de recuperação de desastres digno desse nome, replique /var/backups/open-webui para um NAS ou um bucket S3 criptografado todas as noites via rsync ou rclone.

!
Conformidade e logs de conversas
As conversas podem conter dados pessoais ou estratégicos. Documente o período de retenção no seu registro de conformidade com o RGPD e ofereça aos usuários uma forma de apagar suas conversas (o Open WebUI permite isso nativamente). Se possível, criptografe o volume Docker no nível do disco (LUKS).

#Solução de problemas

Open WebUI não encontra nenhum modelo
O contêiner não consegue acessar o Ollama. Verifique com docker exec open-webui curl http://host.docker.internal:11434/api/tags. Se houver timeout, seu Ollama está escutando em 127.0.0.1 — volte a definir OLLAMA_HOST=0.0.0.0:11434.
Streaming com interrupções ou travado
Faltam os cabeçalhos WebSocket no Nginx. Verifique a presença de proxy_set_header Upgrade e Connection "upgrade" na configuração do vhost.
504 Gateway Timeout em consultas longas
proxy_read_timeout muito baixo. Aumente para pelo menos 600s. Para resumos de documentos grandes, aumente para 1200s.
GPU saturada, latência disparando
Requisições paralelas demais. Reduza OLLAMA_NUM_PARALLEL para 2 e aumente OLLAMA_KEEP_ALIVE para evitar recarregamentos.
Erro 'no space left' em /var/lib/docker
Os modelos Ollama não estão no Docker — é o volume open-webui que cresce. Execute docker system prune e monitore o RAG (os documentos indexados logo ocupam vários GB).

#Para se aprofundar

Você tem uma instância rodando para sua equipe. Três caminhos naturais para profissionalizá-la:

Documentar a conformidade com o RGPD
O guia sobre LLM local e RGPD aborda a auditoria, o registro das operações de tratamento e as recomendações da CNIL — indispensável se a sua equipe processa dados pessoais.
Estender a ferramenta com RAG
O guia de RAG com ChromaDB e Mistral mostra como conectar sua base documental interna (wiki, exportação do SharePoint, contratos) ao Open WebUI.
Automatizar workflows
O guia automatizar com n8n e Ollama explica como conectar seu chatbot à sua infraestrutura de negócios (e-mails recebidos, tickets, RSS) sem nenhum vazamento de dados para a nuvem.
Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.