Zum Inhalt springen

Dokumentation

HestiaCP

HestiaCP ist ein quelloffenes Control Panel für Webhosting. Provibr spricht über einen Access Key mit dessen eigener API und verwaltet die Konten darauf: anlegen, stilllegen und reaktivieren, in ein anderes Paket verschieben und löschen.

Die API einschalten und den Agenten durchlassen

HestiaCP hat eine eigene API auf Port 8083, demselben Port wie das Panel. Seit Version 1.10 ist sie standardmäßig eingeschaltet; die Einstellung steht unter Server settings, Security.

Das Panel führt außerdem eine Liste der Adressen, die diese API benutzen dürfen, und bei einer frischen Installation ist diese Liste leer, was dort niemand bedeutet und nicht jeder. Solange die öffentliche Adresse der Maschine mit Ihrem Agenten nicht darauf steht, wird jeder Aufruf abgelehnt, obwohl Ihr Schlüssel stimmt.

Einstellen lässt sich das im selben Fenster des Panels oder aus einer Shell auf dem Panel-Host:

shell
v-change-sys-config-value API_ALLOWED_IP '<agent-ip>'
Befehle und Terminal-Ausgaben sind überall auf Englisch, im Panel und auf diesen Seiten. Ein Text, eine Wahrheit: Was Sie hier lesen, ist wörtlich das, was Ihr Host zurückschreibt.

Ein Access Key für Provibr

Legen Sie den Schlüssel unter Access keys für den Benutzer admin an und lassen Sie die Berechtigungsliste leer:

shell
v-add-access-key admin "" "provibr-agent"
Befehle und Terminal-Ausgaben sind überall auf Englisch, im Panel und auf diesen Seiten. Ein Text, eine Wahrheit: Was Sie hier lesen, ist wörtlich das, was Ihr Host zurückschreibt.
Leer bedeutet alle Befehle, und das akzeptiert HestiaCP nur für den Administrator. Der mitgelieferte Berechtigungssatz billing kommt nahe heran, lässt aber die zwei Befehle aus, die Ihre Pakete und die Domains eines Kontos lesen, und mit diesem Satz bleiben beide leer. Ein Schlüssel lässt sich einzeln zurückziehen, und deshalb fragt Provibr danach statt nach dem Passwort Ihres Panels.
HestiaCP sperrt eine Adresse nach fünf abgelehnten Anmeldungen, und ein Befehl außerhalb der Berechtigungen eines Schlüssels zählt dabei mit. Danach antwortet das Panel überhaupt nicht mehr: die Verbindung scheitert nicht mit einer Meldung, sondern läuft in einen Timeout. Aufheben lässt sich die Sperre im Panel mit v-delete-firewall-ban, gefolgt von der Adresse und dem Wort HESTIA.

Wonach Provibr fragt

Vier Felder. Der Agent bewahrt sie in seinem eigenen Tresor auf Ihrem Host auf; Provibr kann sie nicht zurücklesen.

  • Die Adresse des Panels samt Port, zum Beispiel https://panel.example.com:8083. Ohne Port ergänzt Provibr 8083.
  • Die Schlüssel-ID: 20 Zeichen. Kein Geheimnis: Das Panel zeigt sie selbst an.
  • Das Geheimnis: 40 Zeichen aus Buchstaben, Ziffern und Satzzeichen.
  • Der SHA-256-Fingerabdruck des Zertifikats, solange das Panel das selbstsignierte verwendet.
Reines http wird abgelehnt. Port 8083 spricht ausschließlich TLS, eine http-Adresse zeigt also nie auf die API.

Das Zertifikat

Ein frisches HestiaCP liefert ein selbstsigniertes Zertifikat aus. Tragen Sie den Fingerabdruck ein, dann vertraut der Agent genau diesem einen Zertifikat, statt die Prüfung abzuschalten. Auslesen lässt er sich von jeder Maschine aus, die das Panel erreicht:

shell
openssl s_client -connect <host>:8083 </dev/null 2>/dev/null | \
  openssl x509 -noout -fingerprint -sha256
Befehle und Terminal-Ausgaben sind überall auf Englisch, im Panel und auf diesen Seiten. Ein Text, eine Wahrheit: Was Sie hier lesen, ist wörtlich das, was Ihr Host zurückschreibt.

Sobald Sie dem Panel ein Let's-Encrypt-Zertifikat auf seinem eigenen Hostnamen geben, prüft sich die Kette selbst und das Feld darf leer bleiben. Das ist dort auch die bessere Wahl: ein solches Zertifikat erneuert sich etwa alle neunzig Tage, und ein gepinntes müsste hier jedes Mal ersetzt werden. Der Verbindungstest sagt Ihnen, welches von beiden Sie haben.

Pakete

HestiaCP beschreibt in einem Paket, was ein Konto nutzen darf: Speicherplatz, Datenvolumen und wie viele Domains, Datenbanken und Postfächer. Provibr liest diese Liste und verweist auf ein Paket über seinen Namen; was darin steht, bleibt Ihre Sache.

Ein Webhosting-Plan in Provibr zeigt auf ein Paket einer Integration. Das ist es, was Ihre Kundschaft bestellt, und den Preis legen Sie selbst fest.

Was Provibr mit einem Konto macht

Fünf Aktionen, alle über den Benutzernamen adressiert, denselben Namen, den Provibr als Identität dieses Servers speichert.

  • Ein Konto anlegen, mit Domain, Paket und Kontaktadresse.
  • Es stilllegen und reaktivieren. Ein stillgelegtes Konto zählt nicht zu Ihrer Kapazität.
  • Es in ein anderes Paket verschieben.
  • Es löschen, mit allem, was das Panel dabei mitnimmt.
Anlegen kostet bei HestiaCP zwei Aufrufe: einen für den Benutzer und einen für die Domain, denn es gibt keinen Befehl, der beides erledigt. Scheitert der zweite, etwa weil die Domain schon jemandem gehört, dann löscht der Agent den eben angelegten Benutzer wieder und meldet den ursprünglichen Fehler. Eine abgelehnte Domain hinterlässt also nie ein halbes Konto.

Speicherplatz und Datenvolumen

Jede Auslesung des Panels trägt Grenze und Verbrauch jedes Kontos in Megabyte mit sich. Beides steht auf der Serverseite und in den Diagrammen, ohne einen zweiten Aufruf, der dem ersten hinterherhinken könnte.

Provibr verwaltet auf HestiaCP weder DNS noch Postfächer noch Datenbanken, und eine Konsole gibt es nicht. Das bleibt im Panel selbst, wo Sie und Ihre Kundschaft es weiter benutzen.

Konten, die es schon gibt

Konten, die außerhalb von Provibr angelegt wurden, lassen sich auf der Integrationsseite importieren: der Agent listet auf, was auf dem Panel steht, und Sie wählen aus, welche davon ein Server in Provibr werden.

Ein importiertes Konto zählt ab diesem Moment zu Ihrer Kapazität, wie jeder andere Webserver auch.

Was dies nicht tut

Provibr verwaltet Konten und nicht das Panel: es installiert HestiaCP nicht, aktualisiert es nicht, ändert keine Servereinstellungen und rührt weder DNS noch Mail noch Datenbanken an. Ein Panel mit vielen Konten auszulesen kostet je Konto einen zusätzlichen Aufruf für die Domains, denn HestiaCP hat keinen Befehl, der sie alle auf einmal auflistet.