'hub', 'summary' => (string) $notice[0]]); } } $key = hub_api_key(); $fromEnv = hub_api_key_is_from_env(); $opsKey = hub_ops_key(); $opsFromEnv = hub_ops_key_is_from_env(); $backups = hub_backup_summary(); $hubUrl = $hubUrlJustSaved ?? hub_url(); $pairing = hub_pairing_state(); if ($justAnnounced) { // Idem: o estado do emparelhamento acabou de mudar neste request. $pairing['state'] = 'announced'; $pairing['hub'] = $hubUrl; $pairing['expired'] = false; } $backupsUrl = function_exists('platform_admin_url') ? platform_admin_url('backups.php') : null; $page_title = 'Integração com o hub'; $pageTitle = $page_title; // os headers da frota não usam todos o mesmo nome $layout_header = $platform_layout_header ?? ($repo_root . '/includes/header.php'); if (is_file($layout_header)) include $layout_header; $csrfField = function_exists('csrf_field') ? csrf_field() : platform_csrf_field(); $h = fn($s) => htmlspecialchars((string) $s, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8'); ?>
system_settings.
É onde as chaves e o URL do hub são guardados — sem ela não há emparelhamento nem
geração de chaves. Aplica as migrações pendentes em Sistema → Atualizar plataforma
e volta aqui.
Fixada no .env
Esta instalação define = $h($envName) ?> no .env, e o
.env ganha. É a configuração mais segura — um valor no .env nunca entra
numa cópia da base de dados. Para gerir por aqui, remove-a de lá.
Configurada guardada cifrada na base de dados
Por configurar
= $h($help) ?>
Duas chaves de propósito: a de leitura é sondada de poucos em poucos minutos e só devolve estado; a de operações dispara cópias e atualizações e usa-se à mão. Assim, quem sonda não consegue disparar nada.
Define o URL acima para poderes anunciar esta plataforma.
= $h($pairing['hub']) ?> — falta aprovar na
Frota do hub. As chaves só são geradas nesse momento.
= $h($pairing['hub']) ?>.
O anúncio leva só o URL e um código de emparelhamento — nenhuma chave sai daqui. Voltar a anunciar gera um código novo e invalida o anterior.
No hub, em Frota → esta app, cola o URL base e a chave.
GET = $h(hub_base_url('api/health.php')) ?>POST = $h(hub_base_url('api/hub_ops.php')) ?>X-Hub-Key: <chave> — a de leitura no estado, a de operações no resto
O Authorization: Bearer também é aceite, mas o proxy à frente dos contentores
remove esse cabeçalho — daí o X-Hub-Key ser o caminho principal.
backup.trigger — cópia de ficheiros ou da base de dadosgit.pull + migrations.apply_pending — atualização da plataforma
Num alojamento cPanel o git.pull costuma não estar disponível. Isso está previsto:
a resposta explica-o e as cópias continuam a funcionar, que é a parte que
protege o cliente.
Cópias não disponíveis nesta instalação.