Aller au contenu

Documentation

HestiaCP

HestiaCP est un panneau de contrôle libre pour l’hébergement web. Provibr dialogue avec sa propre API au moyen d’une clé d’accès et gère les comptes qui s’y trouvent : les créer, les suspendre et les réactiver, les déplacer vers un autre paquet et les supprimer.

Activer l’API et laisser passer l’agent

HestiaCP dispose de sa propre API sur le port 8083, le même que le panneau. Depuis la version 1.10 elle est activée d’origine ; le réglage se trouve dans Server settings, Security.

Le panneau tient par ailleurs une liste des adresses autorisées à utiliser cette API, et sur une installation neuve cette liste est vide, ce qui y signifie personne et non tout le monde. Tant que l’adresse publique de la machine qui héberge votre agent n’y figure pas, chaque appel est refusé alors que votre clé est bonne.

Cela se règle dans le même écran du panneau, ou depuis un terminal sur l’hôte du panneau :

shell
v-change-sys-config-value API_ALLOWED_IP '<agent-ip>'
Les commandes et les sorties de terminal sont en anglais partout, dans le panneau comme dans ces pages. Un seul texte, une seule vérité : ce que vous lisez ici est littéralement ce que votre hôte affichera.

Une clé d’accès pour Provibr

Créez la clé dans Access keys, pour l’utilisateur admin, en laissant la liste des permissions vide :

shell
v-add-access-key admin "" "provibr-agent"
Les commandes et les sorties de terminal sont en anglais partout, dans le panneau comme dans ces pages. Un seul texte, une seule vérité : ce que vous lisez ici est littéralement ce que votre hôte affichera.
Vide signifie toutes les commandes, ce que HestiaCP n’accepte que pour l’administrateur. Le jeu de permissions billing fourni d’origine s’en approche, mais il laisse de côté les deux commandes qui lisent vos paquets et les domaines d’un compte : avec ce jeu, les deux restent vides. Une clé se révoque séparément, et c’est pour cela que Provibr en demande une plutôt que le mot de passe de votre panneau.
HestiaCP bannit une adresse après cinq connexions refusées, et une commande hors des permissions d’une clé compte parmi elles. Le panneau cesse ensuite complètement de répondre : la liaison n’échoue plus avec un message, elle part en délai d’attente. Le bannissement se lève sur le panneau avec v-delete-firewall-ban, suivi de l’adresse et du mot HESTIA.

Ce que Provibr demande

Quatre champs. L’agent les conserve dans son propre coffre sur votre hôte ; Provibr ne peut pas les relire.

  • L’adresse du panneau avec le port, par exemple https://panel.example.com:8083. Sans port, Provibr ajoute le 8083.
  • L’identifiant de la clé : 20 caractères. Ce n’est pas un secret, le panneau l’affiche lui-même.
  • Le secret : 40 caractères, lettres, chiffres et ponctuation.
  • L’empreinte SHA-256 du certificat, tant que le panneau utilise celui qui est auto-signé.
Le http en clair est refusé. Le port 8083 ne parle que TLS, une adresse http ne pointe donc jamais vers l’API.

Le certificat

Un HestiaCP neuf présente un certificat auto-signé. En renseignant l’empreinte, l’agent fait confiance à ce certificat précis au lieu de désactiver la vérification. Vous la relevez depuis n’importe quelle machine qui atteint le panneau :

shell
openssl s_client -connect <host>:8083 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Les commandes et les sorties de terminal sont en anglais partout, dans le panneau comme dans ces pages. Un seul texte, une seule vérité : ce que vous lisez ici est littéralement ce que votre hôte affichera.

Dès que vous donnez au panneau un certificat Let's Encrypt sur son propre nom d’hôte, la chaîne se valide seule et le champ peut rester vide. C’est d’ailleurs le meilleur choix : un tel certificat se renouvelle environ tous les quatre-vingt-dix jours, et une empreinte épinglée devrait être remplacée ici à chaque fois. Le test de connexion vous dit lequel des deux vous avez.

Les paquets

HestiaCP décrit dans un paquet ce qu’un compte peut utiliser : espace disque, trafic, et combien de domaines, de bases de données et de boîtes aux lettres. Provibr lit cette liste et désigne un paquet par son nom ; son contenu reste le vôtre.

Une formule d’hébergement web dans Provibr pointe vers un paquet d’une intégration. C’est ce que votre client commande, et vous en fixez le prix.

Ce que Provibr fait d’un compte

Cinq actions, toutes désignées par le nom d’utilisateur, celui-là même que Provibr conserve comme identité de ce serveur.

  • Créer un compte, avec un domaine, un paquet et une adresse de contact.
  • Le suspendre et le réactiver. Un compte suspendu ne compte pas dans votre capacité.
  • Le déplacer vers un autre paquet.
  • Le supprimer, avec tout ce que le panneau emporte au passage.
Une création coûte deux appels sur HestiaCP : un pour l’utilisateur et un pour le domaine, car aucune commande ne fait les deux. Si le second échoue, parce que le domaine appartient déjà à quelqu’un par exemple, l’agent supprime l’utilisateur qu’il venait de créer et signale l’erreur d’origine. Un domaine refusé ne laisse donc jamais un demi-compte derrière lui.

Espace disque et trafic

Chaque relevé du panneau porte la limite et la consommation de chaque compte, en mégaoctets. Ils apparaissent sur la page du serveur et dans les graphiques, sans second appel susceptible de prendre du retard sur le premier.

Provibr ne gère ni DNS, ni boîtes aux lettres, ni bases de données sur HestiaCP, et il n’y a pas de console. Tout cela reste dans le panneau, où vous et vos clients continuez de l’utiliser.

Les comptes qui existent déjà

Les comptes créés en dehors de Provibr s’importent depuis la page de l’intégration : l’agent énumère ce qui se trouve sur le panneau et vous choisissez lesquels deviennent un serveur dans Provibr.

Un compte importé compte dans votre capacité à partir de ce moment, comme n’importe quel autre serveur web.

Ce que cela ne fait pas

Provibr gère des comptes, pas le panneau : il n’installe pas HestiaCP, ne le met pas à jour, ne modifie aucun réglage serveur et ne touche ni au DNS, ni au courrier, ni aux bases de données. Relever un panneau qui compte beaucoup de comptes coûte un appel supplémentaire par compte pour les domaines, car HestiaCP n’a aucune commande qui les énumère tous d’un coup.