Ir para o conteúdo

Documentação

HestiaCP

O HestiaCP é um painel de controlo de código aberto para alojamento web. O Provibr fala com a API dele através de uma chave de acesso e gere as contas que lá estão: criá-las, suspendê-las e reativá-las, mudá-las para outro pacote e removê-las.

Ligar a API e deixar passar o agente

O HestiaCP tem uma API própria na porta 8083, a mesma do painel. Desde a versão 1.10 vem ligada; a definição está em Server settings, Security.

O painel mantém ainda uma lista de endereços que podem usar essa API, e numa instalação nova essa lista está vazia, o que ali significa ninguém e não toda a gente. Enquanto o endereço público da máquina com o seu agente não constar dela, cada chamada é recusada apesar de a chave estar certa.

Define-se no mesmo ecrã do painel, ou a partir de uma consola no anfitrião do painel:

shell
v-change-sys-config-value API_ALLOWED_IP '<agent-ip>'
Os comandos e a saída do terminal estão em inglês em todo o lado, no painel e nestas páginas. Um só texto, uma só verdade: o que aqui se lê é literalmente o que o seu host vai devolver.

Uma chave de acesso para o Provibr

A chave cria-se em Access keys, para o utilizador admin, deixando a lista de permissões vazia:

shell
v-add-access-key admin "" "provibr-agent"
Os comandos e a saída do terminal estão em inglês em todo o lado, no painel e nestas páginas. Um só texto, uma só verdade: o que aqui se lê é literalmente o que o seu host vai devolver.
Vazio significa todos os comandos, e o HestiaCP só o aceita para o administrador. O conjunto de permissões billing que vem de origem aproxima-se, mas deixa de fora os dois comandos que leem os pacotes e os domínios de uma conta: com esse conjunto, ambos ficam vazios. Uma chave revoga-se sozinha, e é por isso que o Provibr pede uma em vez da palavra-passe do painel.
O HestiaCP bloqueia um endereço ao fim de cinco inícios de sessão recusados, e um comando fora das permissões de uma chave conta como um deles. A partir daí o painel deixa de responder de todo: a ligação já não falha com uma mensagem, esgota o tempo de espera. O bloqueio levanta-se no painel com v-delete-firewall-ban, seguido do endereço e da palavra HESTIA.

O que o Provibr pede

Quatro campos. O agente guarda-os no cofre dele, no seu anfitrião; o Provibr não os consegue voltar a ler.

  • O endereço do painel com a porta, por exemplo https://panel.example.com:8083. Sem porta, o Provibr acrescenta a 8083.
  • O id da chave: 20 caracteres. Não é um segredo. O painel mostra-o.
  • O segredo: 40 caracteres entre letras, algarismos e pontuação.
  • A impressão digital SHA-256 do certificado, enquanto o painel usar o autoassinado.
O http sem cifra é recusado. A porta 8083 só fala TLS, pelo que um endereço http nunca aponta para a API.

O certificado

Um HestiaCP acabado de instalar apresenta um certificado autoassinado. Ao preencher a impressão digital, o agente confia exatamente nesse certificado em vez de desligar a verificação. Lê-se a partir de qualquer máquina que alcance o painel:

shell
openssl s_client -connect <host>:8083 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Os comandos e a saída do terminal estão em inglês em todo o lado, no painel e nestas páginas. Um só texto, uma só verdade: o que aqui se lê é literalmente o que o seu host vai devolver.

Assim que der ao painel um certificado Let's Encrypt no seu próprio nome de anfitrião, a cadeia valida-se sozinha e o campo pode ficar vazio. Aí é também a melhor opção: um certificado desses renova-se cerca de cada noventa dias, e um fixado teria de ser substituído aqui de cada vez. O teste de ligação diz qual dos dois tem.

Pacotes

O HestiaCP descreve num pacote aquilo que uma conta pode usar: espaço em disco, tráfego e quantos domínios, bases de dados e caixas de correio. O Provibr lê essa lista e refere-se a um pacote pelo nome; o que lá está dentro continua a ser seu.

Um plano de alojamento web no Provibr aponta para um pacote de uma integração. É isso que o seu cliente encomenda, e o preço define-o você.

O que o Provibr faz com uma conta

Cinco ações, todas endereçadas pelo nome de utilizador, o mesmo nome que o Provibr guarda como identidade desse servidor.

  • Criar uma conta, com um domínio, um pacote e um endereço de contacto.
  • Suspendê-la e reativá-la. Uma conta suspensa não conta para a sua capacidade.
  • Mudá-la para outro pacote.
  • Removê-la, com tudo o que o painel leva atrás.
Criar custa duas chamadas no HestiaCP: uma para o utilizador e outra para o domínio, porque não há comando que faça as duas coisas. Se a segunda falhar, por exemplo porque o domínio já pertence a outra pessoa, o agente remove o utilizador que acabou de criar e comunica o erro original. Um domínio recusado nunca deixa, assim, meia conta para trás.

Espaço em disco e tráfego

Cada leitura do painel traz o limite e o consumo de cada conta, em megabytes. Aparecem na página do servidor e nos gráficos, sem uma segunda chamada que possa ficar atrás da primeira.

O Provibr não gere DNS, caixas de correio nem bases de dados no HestiaCP, e não há consola. Isso fica no próprio painel, onde você e os seus clientes continuam a usá-lo.

Contas que já existem

As contas criadas fora do Provibr podem ser importadas na página da integração: o agente enumera o que está no painel e você escolhe quais passam a ser um servidor no Provibr.

Uma conta importada conta para a sua capacidade a partir desse momento, como qualquer outro servidor web.

O que isto não faz

O Provibr gere contas, não o painel: não instala o HestiaCP, não o atualiza, não muda definições do servidor e não toca em DNS, correio ou bases de dados. Ler um painel com muitas contas custa uma chamada extra por conta para os domínios, porque o HestiaCP não tem nenhum comando que os enumere todos de uma vez.