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/consolee 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.
- Confirmar
docker versionedocker compose version. - Criar
.secretscom acesso apenas ao operador. Criar os ficheirosdb_passwordedb_root_passwordcom 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. - 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.