Classificação: Infrastructure Specification Alvo: Ambiente de Produção (Ubuntu LTS)
Este documento estabelece a Bill of Materials (BOM) de software e os requisitos de rede para o deployment do SEDUC ON.
A aplicação é homologada estritamente nas versões abaixo. O desvio de versão pode ocasionar incompatibilidade de ABI ou falhas na camada de ORM.
| Componente | Versão Homologada | Comando de Verificação |
| :— | :—: | :— |
| Node.js | v24.11.1 | node -v |
| NPM | v11.6.4 | npm -v |
| PostgreSQL | v18.1 | psql --version |
| Ferramenta | Versão Mínima | Função |
| :— | :—: | :— |
| PM2 | 5.4.x | Gerenciador de Processos (Daemon, Logs, Restart) |
| Git | 2.43.0 | Controle de Versão (Deploy) |
O servidor deve operar sob o princípio de Least Privilege Access.
| Porta | Protocolo | Direção | Ação | Justificativa |
|---|---|---|---|---|
| 443 | TCP | Inbound | ALLOW | Tráfego HTTPS (TLS 1.2/1.3) para usuários finais. |
| 80 | TCP | Inbound | ALLOW | Redirecionamento HTTP -> HTTPS (Certbot/Challenges). |
| 22 | TCP | Inbound | RESTRICT | Acesso Administrativo (SSH). Restringir a IPs de gestão (VPN/Bastian). |
| 3001 | TCP | Inbound | DENY | Porta da API (Backend). Deve ser acessível apenas via localhost (Reverse Proxy). |
| 5432 | TCP | Inbound | DENY | Porta do Banco de Dados. Acesso restrito à aplicação local. |
Recomenda-se o uso de Nginx ou Caddy como Gateway na frente dos processos Node.js para:
Para a equipe de Infraestrutura/DevOps:
Solicitação de Recurso Computacional
OS: Ubuntu 24.04 LTS (Noble Numbat) Compute: 2 vCPU / 4GB RAM (Mínimo recomendado para ETL + API) Storage: SSD NVMe (I/O intensivo durante ingestão CSV) Stack: Node.js v24+, Postgres 18+ Network: Expor apenas 80/443. Bloquear tráfego direto para 3001.
Para ambientes containerizados, a gestão de dependências (Node/Postgres) é abstraída pelas imagens Docker.
| Componente | Versão Mínima | | :— | :— | | Docker Engine | 24.0+ | | Docker Compose | 2.20+ |
Se o comando docker não for encontrado, execute:
# 1. Configurar repositório oficial
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# 2. Instalar Docker Engine e Plugin Compose
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 3. Permissões (para não usar sudo no docker)
sudo usermod -aG docker $USER
newgrp docker