Files
nala 250ac35fd1
tests / ci (push) Canceled after 0s
first commit
2026-09-28 10:01:09 +02:00
..
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00
2026-09-28 10:01:09 +02:00

SuiteCRM 8.10.2 — preparação de homologação

Estado: modelo preparado; build e arranque Docker ainda não executados. Este Windows não tem Docker nem WSL instalado. Não aplicar em produção. O cliente Laravel e a captura na outbox existem; utilizador técnico, OAuth e envio real continuam pendentes.

Para os scripts de arranque e o bloqueio identificado no Windows Parallels ARM, consultar instalação local. Está disponível o diagnóstico php artisan suitecrm:probe para verificar OAuth e metadados após configurar um CRM acessível por HTTPS.

A decisão de arquitectura define SuiteCRM como futuro sistema principal comercial. O portal continua operacional e não envia dados para este ambiente.

Dependências verificadas

  • Release oficial pré-compilada 8.10.2: download e SHA-256 conferidos; arquivo com bin/console e aplicação na raiz.
  • PHP 8.4/Apache e MariaDB 11.4: combinação suportada na matriz oficial. Imagens fixadas pelos digests consultados no registry oficial em 25/09/2026.
  • Motor Docker Linux e Compose v2 ainda necessários. JSON é usado como formato compatível com YAML para o ficheiro Compose.
  • Dockerfile instala extensões do CRM; não altera PHP ou dependências Laravel.

Preparar e instalar numa máquina Linux de testes

Executar a partir deste directório. Os comandos abaixo são instruções preparadas, não resultados de execução.

  1. Confirmar docker version e docker compose version.
  2. Criar .secrets com acesso apenas ao operador. Criar os ficheiros db_password e db_root_password com valores aleatórios distintos, sem newline, usando um gestor de segredos. Não colocar segredos em argumentos de comandos, no Git ou no chat. O Compose local monta ficheiros; não constitui um cofre de segredos encriptado.
  3. Validar a configuração e construir:
docker compose -f compose.json config --quiet
docker compose -f compose.json build web
docker compose -f compose.json up -d db web
docker compose -f compose.json ps
docker compose -f compose.json exec --user www-data web php bin/console suitecrm:app:install

O instalador interactivo deve usar host db, base suitecrm, utilizador suitecrm, password definida no ficheiro privado e uma conta administradora exclusiva da homologação. Desactivar dados de demonstração se o ensaio de migração precisar de contagens exactas. Não usar a conta administradora como identidade da integração.

O HTTP está exposto apenas em 127.0.0.1:8088, para bootstrap com dados fictícios. Para homologação partilhada/API, colocar proxy HTTPS diante desse listener, configurar o site URL definitivo, confiar apenas no proxy conhecido e activar cookies seguros. Não abrir a porta na rede nem transmitir credenciais/dados reais por HTTP. Não foram criados DNS ou certificados.

Depois da instalação e da configuração do transporte:

docker compose -f compose.json exec --user www-data web php bin/console messenger:setup-transports
docker compose -f compose.json --profile installed up -d worker
docker compose -f compose.json exec --user www-data web php bin/console schedulers:run

Agendar o último comando a cada minuto no host, sem TTY (exec -T), usando o caminho absoluto real para este compose e sem execuções sobrepostas. Validar o último processamento no painel Schedulers. O perfil installed impede iniciar o worker antes da configuração inicial. Não multiplicar workers antes dos testes de concorrência.

Conta técnica e OAuth — após arranque

Criar utilizador técnico exclusivo sem administração, exportação geral ou acesso a módulos não usados. Configurar papéis/grupos e testar permissões com essa identidade. Criar cliente OAuth2 para client credentials associado à identidade técnica conforme as opções da instalação. Guardar o segredo num cofre acessível apenas ao backend/worker Laravel. Verificar obtenção, expiração, revogação e nova emissão de token. Não presumir refresh token neste grant.

Confirmar o prefixo efectivo da API V8 nesta instalação SuiteCRM 8 e descobrir nomes de campos/relacionamentos pelos endpoints oficiais. Antes de ligar Laravel, comprovar criação, leitura, actualização e relação de registos fictícios, incluindo negação de operações fora do âmbito.

Persistência, logs e actualizações

A base e a aplicação completa usam volumes nomeados para preservar configuração, chaves, extensões e uploads durante os ensaios. Reconstruir a imagem não actualiza o código num volume existente. Uma actualização requer procedimento oficial e backup compatível, ou nova instalação isolada; nunca apagar o volume para tentar actualizar uma instalação com dados.

Não configurar SMTP, importações reais ou webhooks enquanto os controlos e o contrato não forem testados. O access log preparado não inclui URL/query, cabeçalhos ou corpo; rever também logs próprios do SuiteCRM e do PHP para dados sensíveis. Não activar debug em ambiente com dados pessoais.

Validação e rollback

Verificações locais realizadas: existência da release/imagens, integridade SHA-256 e estrutura do ZIP, análise estática do Compose. Pendentes: build, extensões em runtime, instalação, autenticação, TLS, schedulers, worker, permissões e restauro.

Para parar o ensaio preservando volumes:

docker compose -f compose.json --profile installed stop

Antes de qualquer migração/upgrade, obter backup consistente da base, aplicação, uploads e segredos; ensaiar restauro em projecto Compose separado. Não executar down -v. A produção permanece NO-GO até testes funcionais, segurança, privacidade e recuperação.

Fontes