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
| Item | Valor |
|---|---|
| Sistema | Ubuntu 24.04 LTS |
| Usuário principal | luciano |
| Projeto | /home/luciano/servemei-rpa |
| Python venv | /home/luciano/servemei-rpa/venv |
| Display | :99 |
| Resolução | 1920x1080x24 |
| Serviço | Porta |
|---|---|
| API (FastAPI/Uvicorn) | 8001/tcp |
| VNC (x11vnc no :99) | 59099/tcp |
| SSH | 22/tcp |
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:
- Host: IP da VPS
- Porta: 59099
- Senha: definida em
/home/luciano/.vnc/passwd
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
- Não executar automação fora do
DISPLAY=:99. - Validar coordenadas após reinício ou alteração de resolução.
- Preferir restart por systemd ao invés de iniciar manualmente.
- Usar VNC para verificar visualmente antes de mudanças em produção.
- Registrar alterações feitas (data, motivo, responsável).
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.