Documentação Oficial - VPS ServeMEI RPA

Ambiente de produção (Ubuntu) para automações RPA (PyAutoGUI + Chrome) com API FastAPI/Uvicorn e acesso visual via x11vnc.

Display: :99 API: 0.0.0.0:8001 VNC: 59099/tcp Projeto: /home/luciano/servemei-rpa

1. Visão geral

Este servidor executa automação visual real (RPA) com Chrome e PyAutoGUI, controlada por uma API FastAPI. O ambiente gráfico roda em um display virtual :99 (Xvfb) com gerenciador de janelas Fluxbox. O acesso para suporte é feito via x11vnc.

Xvfb (:99) → Fluxbox → Chrome → PyAutoGUI
                        ↑
                     x11vnc (acesso remoto)

FastAPI (Uvicorn) → expõe endpoints HTTP

2. Dados do ambiente

ItemValor
SistemaUbuntu 24.04 LTS
Usuário principalluciano
Projeto/home/luciano/servemei-rpa
Python venv/home/luciano/servemei-rpa/venv
Display:99
Resolução1920x1080x24
ServiçoPorta
API (FastAPI/Uvicorn)8001/tcp
VNC (x11vnc no :99)59099/tcp
SSH22/tcp
Observação: Os “dados da VPS” (IP, CPU, RAM, disco, kernel) devem ser coletados no servidor. Veja a seção Coleta de informações.

3. Serviços críticos (systemd)

Os serviços abaixo garantem que tudo suba automaticamente após reinício.

3.1 Lista de serviços

systemctl is-enabled \
  xvfb@99.service \
  fluxbox@99.service \
  x11vnc@99.service \
  servemei-rpa.service

3.2 Status em produção

systemctl status \
  xvfb@99.service \
  fluxbox@99.service \
  x11vnc@99.service \
  servemei-rpa.service \
  --no-pager

4. Descrição dos serviços

4.1 Xvfb

Serviço: xvfb@99.service
Função: Cria o display virtual :99 para o ambiente gráfico da automação.

systemctl cat xvfb@99.service
systemctl status xvfb@99.service

4.2 Fluxbox

Serviço: fluxbox@99.service
Função: Window manager no display :99 (controle de janelas, foco, etc.).

systemctl cat fluxbox@99.service
DISPLAY=:99 wmctrl -m
DISPLAY=:99 wmctrl -l

4.3 x11vnc

Serviço: x11vnc@99.service
Função: Acesso remoto via VNC ao display :99.

Senha: /home/luciano/.vnc/passwd

systemctl cat x11vnc@99.service
systemctl status x11vnc@99.service
ss -lntp | grep 59099

4.4 API (FastAPI/Uvicorn)

Serviço: servemei-rpa.service
Função: Sobe o Uvicorn com a aplicação FastAPI (ex.: PGFN, DASN, etc.).

systemctl cat servemei-rpa.service
journalctl -u servemei-rpa.service -n 200 --no-pager
ss -lptn 'sport = :8001'

5. Ordem correta de start/stop

5.1 Start (manual)

sudo systemctl start xvfb@99.service
sudo systemctl start fluxbox@99.service
sudo systemctl start x11vnc@99.service
sudo systemctl start servemei-rpa.service

5.2 Stop (manual)

sudo systemctl stop servemei-rpa.service
sudo systemctl stop x11vnc@99.service
sudo systemctl stop fluxbox@99.service
sudo systemctl stop xvfb@99.service

5.3 Restart geral

sudo systemctl restart xvfb@99.service fluxbox@99.service x11vnc@99.service servemei-rpa.service

6. Testes rápidos (saúde)

6.1 Display e WM

DISPLAY=:99 xdpyinfo | head
DISPLAY=:99 wmctrl -m
DISPLAY=:99 wmctrl -l

6.2 Chrome

ps aux | grep -E "google-chrome|/opt/google/chrome" | grep -v grep
DISPLAY=:99 wmctrl -l | grep -i chrome || true

6.3 API

ss -lptn 'sport = :8001'
curl -sS http://127.0.0.1:8001/ | head -c 400 || true

7. Acesso via VNC (suporte)

Conectar no VNC usando o cliente da equipe, apontando para:

7.1 Diagnóstico de VNC

systemctl status x11vnc@99.service --no-pager
ss -lntp | grep 59099
journalctl -u x11vnc@99.service -n 120 --no-pager

8. Firewall (UFW)

Verificar regras atuais:

sudo ufw status verbose

Portas esperadas:

sudo ufw allow 22/tcp
sudo ufw allow 8001/tcp
sudo ufw allow 59099/tcp
sudo ufw reload

9. Erros comuns e solução

9.1 API não sobe (porta ocupada)

sudo ss -lptn 'sport = :8001'
sudo lsof -i :8001 -nP
journalctl -u servemei-rpa.service -n 200 --no-pager

Se houver PID antigo, matar com cuidado:

sudo kill <PID>

9.2 VNC conecta mas tela preta

systemctl status xvfb@99.service fluxbox@99.service --no-pager
DISPLAY=:99 wmctrl -m
DISPLAY=:99 xterm &

Se Fluxbox estiver ativo mas não há janelas, abrir Chrome manualmente no :99 para validar.

9.3 Chrome não abre no :99

DISPLAY=:99 google-chrome https://www.google.com &
DISPLAY=:99 wmctrl -l

10. Coleta de informações da VPS (para anexar nesta documentação)

Execute estes comandos e cole o resultado no final desta página para registrar CPU, RAM, disco, kernel, IP etc.

10.1 Sistema e Kernel

uname -a
lsb_release -a 2>/dev/null || cat /etc/os-release

10.2 CPU / RAM

lscpu | sed -n '1,30p'
free -h

10.3 Disco

df -hT
lsblk

10.4 Rede / IP

ip -br a
ip route
ss -lntp | sed -n '1,200p'

10.5 Serviços enabled e ativos

systemctl list-unit-files --type=service --state=enabled --no-pager
systemctl --type=service --state=running --no-pager | sed -n '1,200p'

11. Boas práticas operacionais

12. Checklist pós-reboot

systemctl is-enabled xvfb@99.service fluxbox@99.service x11vnc@99.service servemei-rpa.service
systemctl status xvfb@99.service fluxbox@99.service x11vnc@99.service servemei-rpa.service --no-pager
ss -lptn 'sport = :8001'
ss -lntp | grep 59099
DISPLAY=:99 wmctrl -m
DISPLAY=:99 wmctrl -l

Se tudo estiver OK, o ambiente está pronto para operar.