Serviços, Bancos e Armazenamento
Todo servidor gerenciado pelo PrimeForge pode hospedar um conjunto de serviços bare-metal — PostgreSQL, MySQL, Redis, MinIO (S3) e Reverb — além do proxy reverso Traefik. Esses serviços rodam diretamente no sistema operacional do servidor (via systemd), não dentro de containers de site, o que os torna rápidos e estáveis. Esta página explica quais serviços existem, onde eles rodam na sua frota, e como você os instala, mantém e inspeciona a partir das páginas Serviços, Bancos de dados e Armazenamento de cada servidor.
Nos exemplos usamos a organização de demonstração Empresa XPTO, com o Servidor Principal (tipo All-in-One, que hospeda todos os serviços) e o Servidor de Sites (tipo App Server, que só roda Traefik e containers de sites e consome os serviços do Servidor Principal pela malha WireGuard).
Catálogo de Serviços
O Catálogo de Serviços é a visão geral de quais serviços de infraestrutura o PrimeForge sabe instalar e em quais servidores da sua frota cada um está presente. Ele reúne, num único lugar, a resposta para "onde está meu PostgreSQL?" ou "quais servidores têm Redis?".

Cada serviço tem um papel bem definido:
| Serviço | Para que serve | Roda como |
|---|---|---|
| PostgreSQL | Banco de dados relacional principal (recomendado para Laravel) | systemd (bare-metal) |
| MySQL | Banco de dados relacional alternativo | systemd (bare-metal) |
| Redis | Cache, filas e sessões | systemd (bare-metal) |
| MinIO (S3) | Armazenamento de objetos compatível com S3 (uploads, mídia) | systemd (bare-metal) |
| Reverb | Servidor WebSocket para recursos em tempo real (Laravel) | Container Docker |
| Traefik | Proxy reverso, roteamento por domínio e TLS automático | Container Docker |
O catálogo mostra, para cada serviço, em quais servidores ele está instalado e a versão em uso. Isso é essencial em arquiteturas de múltiplos servidores: um site no Servidor de Sites pode usar o PostgreSQL e o Redis do Servidor Principal através da malha WireGuard, e o catálogo deixa essa distribuição visível.
Onde cada serviço roda na frota
A distribuição depende do tipo do servidor escolhido no provisionamento. Os tipos que o PrimeForge oferece instalam conjuntos diferentes de serviços:
- All-in-One — Traefik + PostgreSQL + MySQL + Redis + MinIO + Reverb. Tudo em uma máquina só; ideal para começar.
- App Server — apenas Traefik. Dedicado a hospedar sites; consome bancos, Redis e S3 de outros servidores pela malha WireGuard.
- Banco de dados — PostgreSQL + MySQL + Redis. Infraestrutura de dados dedicada.
- Armazenamento S3 — apenas MinIO. Object storage dedicado.
- Serviços — PostgreSQL + MySQL + Redis + MinIO + Reverb, sem hospedar sites. Cluster de serviços para arquiteturas multi-servidor.
- Reverb — apenas o servidor WebSocket Reverb.
- Redis — apenas Redis, dedicado a cache e filas.
O tipo escolhido no provisionamento define o conjunto inicial de serviços, mas você pode acrescentar ou remover serviços depois pela página Serviços de cada servidor. Quando o conjunto instalado diverge do perfil original do tipo, o PrimeForge passa a exibir o tipo como Custom (veja abaixo).
Página de Serviços do servidor
Cada servidor (exceto os que não hospedam serviços) tem uma sub-página Serviços com um cartão para cada um dos cinco serviços bare-metal — PostgreSQL, MySQL, Redis, MinIO e Reverb. Cada cartão mostra o estado atual (instalado ou não), a versão e as ações disponíveis.

Instalar um serviço
Precisa de Redis num App Server sem reprovisionar o servidor inteiro? É aqui que você resolve:
- Clique em Instalar no cartão do serviço desejado.
- Confirme a ação — a página acompanha o progresso da instalação e atualiza o cartão automaticamente a cada poucos segundos.
- O agente sobe o mesmo script usado no provisionamento, executa-o, captura as credenciais em
/etc/primeforge/service-credentialse detecta a versão instalada. - O cartão transita de Não instalado → Instalando (pulso âmbar) → Rodando (ponto verde).
- Uma vez rodando, o cartão exibe a versão, a data da instalação e um painel expansível de Credenciais com todas as informações de conexão (por exemplo
REDIS_PASSWORD,POSTGRES_USER).
O assistente de criação de site percebe a mudança em tempo real: depois de instalar o Redis num App Server, aquele servidor passa a aparecer como "capaz de Redis" no passo de serviços do assistente, e o .env do site resolve automaticamente para host.docker.internal (uso local).
Instalar um serviço num servidor cujo perfil de tipo não o prevê torna o servidor Custom. Por exemplo, adicionar Redis a um App Server (que originalmente só tem Traefik) faz o tipo virar Custom. Desinstalar de volta até casar com o perfil original restaura o tipo automaticamente — o PrimeForge lembra a intenção inicial do servidor.
Reiniciar, atualizar e manter
Os cartões oferecem, além de instalar/desinstalar, ações de manutenção conduzidas por runbooks (roteiros passo a passo):
- Reiniciar — executa
systemctl restartna unidade do serviço (o Reverb, que roda como container Docker, é reiniciado via Docker Compose). Registra o horário do último reinício. - Atualização menor (minor/patch) — para PostgreSQL, MySQL e Redis, roda
apt-get install --only-upgradeno pacote e reinicia a unidade. O cartão mostra "Atual X / Disponível Y" lendo a versão candidata do apt. - Atualizar MinIO — o MinIO não atualiza via apt, então tem uma ação dedicada. O servidor baixa os binários oficiais, verifica os checksums SHA-256, troca-os atomicamente (o binário anterior é preservado como
.prev) e reinicia o serviço. Se a verificação de saúde pós-atualização falhar, o binário anterior é restaurado automaticamente. O servidor entra em modo de manutenção durante a operação. - Atualizar Reverb — reobtém a imagem
reverb:latestdo hub e recria o container. Os clientes WebSocket reconectam sozinhos. A atualização só é reportada como bem-sucedida quando o container está de pé e respondendo. - Atualização maior / rollback (bancos) — nunca roda automaticamente. Quando um banco está atrás da versão maior padrão (por exemplo PostgreSQL 16 → 17), ou você precisa reverter após uma atualização ruim, o painel apresenta um runbook guiado exigindo backup — o PrimeForge não executa por você uma migração de dados em disco que seja irreversível.
Toda instalação, reinício, atualização ou desinstalação gera um registro na auditoria (visível em Security → Logs → Audit Log).
Desinstalar um serviço (proteções de dados)
A desinstalação é deliberadamente difícil de fazer por engano, para proteger seus dados:
- Bloqueio por dependência — se algum site ativo depende do serviço, o modal mostra "Bloqueado — N site(s) dependem deste serviço" com os domínios bloqueadores listados, e a desinstalação não prossegue. Isso conta tanto dependentes explícitos (sites que apontam para este servidor para DB/Redis/S3/Reverb) quanto implícitos (sites no próprio servidor usando os serviços locais sem apontar explicitamente). Sites SQLite são isentos.
- Confirmação por nome digitado — você precisa digitar o nome do serviço exatamente (por exemplo
postgresql) para armar a ação. - Reconhecimento de backup — serviços que guardam dados (PostgreSQL, MySQL, Redis, MinIO) ainda exigem marcar "Fiz backup ou não preciso dos dados".
- Manter dados por padrão — o interruptor "Manter dados em disco (remover apenas o serviço)" vem ligado: o serviço, seus pacotes/unidades/binários, regras de UFW e credenciais são removidos, mas os diretórios de dados permanecem no servidor. Desligá-lo é uma limpeza total — o modal mostra exatamente quais diretórios serão apagados permanentemente.
Serviços desinstalados são lembrados, então o monitoramento de saúde para de esperá-los — o PrimeForge não vai tentar "auto-recuperar" (ressuscitar) um serviço que você removeu de propósito. A operação inteira embrulha o servidor em modo de manutenção automaticamente.
Bancos de dados
A sub-página Bancos de dados de um servidor reúne todos os bancos hospedados nele — PostgreSQL, MySQL, SQLite e Redis — com um visualizador integrado, para que você inspecione dados sem abrir um terminal ou instalar um cliente externo.

Abas "Por serviço" e "Por site"
O visualizador organiza os bancos de duas formas:
- Por serviço — lista os bancos agrupados pelo motor (PostgreSQL, MySQL, Redis). Útil para uma visão de infraestrutura: quantos bancos existem em cada engine, seus tamanhos, e quais estão órfãos.
- Por site — lista os bancos agrupados pelo site que os utiliza. Útil para responder "qual banco pertence ao site
todo.babytor.com.br?".
Sites com SQLite aparecem também aqui: o banco é um arquivo dentro do diretório compartilhado do site, e o PrimeForge o reconhece como um banco válido.
Visualizador de banco
Ao abrir um banco, o visualizador (em painel lateral) mostra:
- Lista de tabelas com a contagem de linhas de cada uma
- Esquema de cada tabela (colunas, tipos, chaves)
- Informações de conexão — host, porta, nome do banco e usuário, para você reaproveitar em ferramentas externas
Para bancos relacionais (PostgreSQL/MySQL) o visualizador foca em estrutura e contagens; para Redis, mostra as chaves e o uso de memória. Tudo é lido pelo agente através do canal seguro — você não precisa expor o banco à internet nem abrir portas.
Armazenamento
A sub-página Armazenamento aparece nos servidores que rodam MinIO (tipos All-in-One, Serviços e Armazenamento S3) e gerencia os buckets de objetos S3.

Cada site com S3 habilitado recebe um bucket isolado (por exemplo {slug}-media), com chaves de acesso dedicadas e uma política de acesso restrita àquele bucket. A página de Armazenamento mostra:
- Buckets por site — o mapeamento de cada bucket ao site que o utiliza, para você saber a quem cada bucket pertence.
- Tamanhos — o espaço em disco consumido por cada bucket, para acompanhar crescimento e planejar capacidade.
- Limpeza de órfãos — buckets que não correspondem mais a nenhum site ativo (por exemplo de um site excluído) são sinalizados como órfãos e podem ser removidos com segurança para recuperar espaço.
O console do MinIO e a API S3 de cada servidor são publicados pelo Traefik em subdomínios dedicados (minio.{domínio} e s3.{domínio}), mas o gerenciamento do dia a dia — criar bucket ao habilitar S3 num site, listar tamanhos, limpar órfãos — acontece direto por esta página do painel.
Próximos passos
- Monitoramento, Agendador e Firewall — acompanhe a saúde dos serviços e a auto-recuperação
- Sites — crie um site e escolha em quais servidores seus bancos, Redis e S3 vão rodar
- Configuração de Sites — ligue e desligue serviços de um site depois de criado