Snapshot do estado da VPS em 2026-05-15. Atualizar sempre que houver mudança em domínio, processo ou stack.
| Item | Valor |
|---|---|
| Hostname | vps-15225449.vpsbr-15225449.vpshostgator.com.br |
| Provedor | HostGator (VPS BR) |
| OS | Ubuntu 22.04.5 LTS (Jammy) |
| Kernel | 6.8.0-110-generic |
| Arquitetura | x86_64 |
Disco (/) |
98 GB total — 25 GB usados (27%) |
| RAM | 3.8 GiB total — 2.2 GiB em uso, sem swap |
| SSH | porta 22022 |
| Webroot principal | /var/www |
⚠️ Sem swap configurado. Com 3.8 GiB de RAM e ~2.2 GiB já em uso, vale considerar criar um swapfile de 2-4 GiB para evitar OOM kills sob picos.
Dois domínios principais apontam para esta VPS:
cajutech.dev — domínio institucional/infra (Let's Encrypt em /etc/letsencrypt/live/cajutech.dev)pontodomestico.com — produto (Let's Encrypt em /etc/letsencrypt/live/pontodomestico.com)| Domínio | Tipo | Servido por |
|---|---|---|
cajutech.dev, www.cajutech.dev |
site estático | nginx → /var/www/html/site |
portainer.cajutech.dev |
proxy | nginx → 127.0.0.1:9000 (Portainer) |
crons.cajutech.dev |
proxy | nginx → 127.0.0.1:3012 (Cronicle) |
vscode.cajutech.dev |
proxy | nginx → 127.0.0.1:8443 (code-server) |
staging.cajutech.dev |
estático + PHP-FPM | nginx + /var/www/staging |
storage.cajutech.dev |
PHP app | nginx + PHP-FPM, /var/www/storage |
socket.cajutech.dev |
proxy | nginx → 127.0.0.1:3010 (container socket) |
factory.cajutech.dev |
proxy | nginx → 127.0.0.1:3001 (factory-app-1) |
ponto.cajutech.dev |
SPA Angular | nginx → /var/www/html/ponto |
pontopesquisa.cajutech.dev |
SPA Angular | nginx → /var/www/html/ponto-pesquisa |
pontoapi.cajutech.dev |
proxy | nginx → 127.0.0.1:3333 (ponto-backend) |
pontopesquisaapi.cajutech.dev |
proxy | nginx → 127.0.0.1:3099 (pontopesquisa-backend) |
segin.cajutech.dev |
placeholder | retorna 503 (não configurado) |
pontodomestico.com, www. |
SPA Angular | nginx → /var/www/html/ponto |
api.pontodomestico.com |
proxy | nginx → 127.0.0.1:3333 (ponto-backend) |
pesquisa.pontodomestico.com |
SPA + proxy parcial | nginx → /var/www/html/ponto-pesquisa + 127.0.0.1:3099 |
blog.pontodomestico.com |
site estático (Astro) | nginx → /var/www/html/blog |
blog-admin.pontodomestico.com |
SPA Angular | nginx → /var/www/html/blog-admin |
blog-api.pontodomestico.com |
proxy | nginx → 127.0.0.1:3002 (container blog-api) |
⚠️ Conflito detectado em pesquisa.pontodomestico.com: existe um arquivo separado em /etc/nginx/sites-enabled/pesquisa.pontodomestico.com que define root /var/www/ponto-pesquisa (sem o /html) e usa o cert de cajutech.dev (não de pontodomestico.com). Isso colide com o bloco já definido em /etc/nginx/sites-enabled/default (linhas 129-155). Decidir qual remover.
nginx (Ubuntu) — rodando como www-data/etc/nginx/nginx.conf/etc/nginx/sites-enabled/default — todos os vhosts da cajutech + pontodomesticopesquisa.pontodomestico.com — duplicata (ver alerta acima)/etc/nginx/sites-available/default.bak.1776701125/var/log/nginx/access.log, /var/log/nginx/error.log/.well-known/acme-challenge/ → /var/www/html/etc/letsencrypt/options-ssl-nginx.conf, ssl-dhparams.pem)$connection_upgrade no topo para suportar WebSocket (Portainer, code-server, Cronicle, socket)proxy_read_timeout longo (3600s, 86400s no code-server)sudo nginx -t # validar conf
sudo systemctl reload nginx # aplicar mudanças sem downtime
sudo tail -f /var/log/nginx/error.log
sudo certbot renew --dry-run # testar renovação de certs
nginx.service — web/proxyphp8.1-fpm.service — FastCGI para staging.cajutech.dev e storage.cajutech.devdocker.service + containerd.service — runtime de containerspm2-root.service — process manager Node.js (rodando como root, PM2_HOME=/root/.pm2)fail2ban.service — proteção SSHssh.service — porta 22022cron.service — jobs em /etc/cron.d/ (certbot, php, e2scrub_all)Identificados via ps auxf — confirmar nomes com sudo pm2 list:
| PID | Comando | Porta | Provável serviço |
|---|---|---|---|
| 1399 | node server.js |
8443 | code-server (vscode.cajutech.dev) |
| 1423 | node index.js |
— | (verificar) |
| 2359909 | node index.js |
— | (verificar) |
| 2401690 | node index.js |
— | (verificar) |
| 2515699 | node index.js |
3333? | possivelmente ponto-backend |
▶ TODO: rodar sudo pm2 list e mapear cada PID ao seu app/repo.
Estão escutando nas portas 3001, 3002, 3010, 3012, 9000 (todas em 0.0.0.0, mas só acessíveis via nginx proxy). Pelo nginx:
| Porta | Container provável | Subdomínio |
|---|---|---|
| 9000 | portainer | portainer.cajutech.dev |
| 3012 | cronicle | crons.cajutech.dev |
| 3010 | socket | socket.cajutech.dev |
| 3001 | factory-app-1 | factory.cajutech.dev |
| 3002 | blog-api | blog-api.pontodomestico.com |
▶ TODO: rodar sudo docker ps e listar imagens, volumes e redes.
/var/www/var/www/
├── html/ # webroot estático (servido por nginx)
│ ├── site/ # cajutech.dev
│ ├── ponto/ # SPA Angular (ponto.cajutech.dev + pontodomestico.com)
│ ├── ponto-pesquisa/ # SPA Angular (pontopesquisa, pesquisa.pontodomestico.com)
│ ├── blog/ # Astro estático (blog.pontodomestico.com)
│ ├── blog.bak.1778027941/ # backup antigo do blog
│ ├── blog-admin/ # SPA Angular (blog-admin.pontodomestico.com)
│ ├── segin/ # placeholder (vhost retorna 503)
│ └── index.nginx-debian.html
├── blog-vault/ # ⚠️ verificar uso
├── blog-admin/ # ⚠️ provável fonte; build vai pra html/blog-admin
├── claude-agent/ # agente
├── seomachine/ # ⚠️ verificar
├── src/ # ⚠️ verificar (mexido em 2026-05-15)
├── staging/ # raiz de staging.cajutech.dev (PHP habilitado)
├── storage/ # raiz de storage.cajutech.dev (PHP app)
├── .claude/
└── vault/ # este vault
▶ TODO: documentar o propósito de blog-vault, seomachine, src, claude-agent.
| Ferramenta | Versão | Uso |
|---|---|---|
| nginx | (verificar com nginx -v) |
web server / reverse proxy |
| Node.js | v22.22.2 | apps PM2 (backends Express, code-server) |
| PHP | 8.1.2 (FPM) | apps em /var/www/staging e /var/www/storage |
| PM2 | v6.0.14 | gerência de processos Node em produção |
| Docker | (verificar) | containers (portainer, cronicle, factory, blog-api, socket) |
| Portainer | — | UI de containers em portainer.cajutech.dev |
| Cronicle | — | scheduler em crons.cajutech.dev |
| code-server | — | VS Code remoto em vscode.cajutech.dev |
| certbot | — | renovação automática de certs (cron) |
| fail2ban | — | proteção SSH |
sudo pm2 restart <nome> # restart graceful
sudo pm2 reload <nome> # zero-downtime
sudo pm2 logs <nome> --lines 100 # ver logs
sudo pm2 save # persistir lista atual
server { listen 443 ssl; ... } em /etc/nginx/sites-enabled/defaultserver_name novo.cajutech.dev no bloco de redirect HTTP→HTTPS (linhas 35-41)sudo nginx -t && sudo systemctl reload nginxsudo certbot --nginx -d novo.cajutech.devdist/ → rsync para /var/www/html/<projeto>/certbot.timer (cron em /etc/cron.d/certbot)sudo certbot renew --dry-runpesquisa.pontodomestico.com (dois server blocks; cert errado em um)segin.cajutech.dev retorna 503 — definir destino ou removerblog.bak.1778027941, default.bak.1776701125blog-vault, seomachine, src, claude-agent.env dos backends (hoje espalhados pelos repos)