Le terminal : hostbrid

Ce que vous y gagnez : faire ce que fait le panneau en écrivant une seule ligne. Créer un site, lui changer sa version de PHP, ajouter un enregistrement DNS ou lister vos boîtes e-mail sans ouvrir le navigateur — et surtout, glisser tout cela dans un script ou un pipeline.

C’est un seul fichier et il n’y a rien à installer : si vous avez Python 3, ça marche.

Avant de commencer

Il vous faut une clé d’API. Elle se crée dans le panneau, dans Compte ‣ Clés pour l’IA, et elle ne s’affiche qu’une seule fois. Si vous n’en avez pas encore, voyez L’API, pour automatiser votre compte — la première partie explique comment la créer et quelles permissions elle porte.

L’installer sur votre machine

curl -o ~/bin/hostbrid https://my.hostbrid.com/cli/hostbrid.py
chmod +x ~/bin/hostbrid

Vérifiez qu’il répond :

hostbrid --version

Se connecter

hostbrid login

Il vous demande la clé et la vérifie avant de l’enregistrer : s’il vous dit qu’elle est prête, elle l’est. Elle est enregistrée dans ~/.config/hostbrid/config.json, avec des permissions qui font que vous seul pouvez la lire.

Pour vous déconnecter, hostbrid logout. Attention : cela l’efface de cette machine, mais la clé reste valable. Pour l’annuler pour de bon, il faut la révoquer dans le panneau.

Ce que vous utiliserez le plus

hostbrid whoami                 # de qué cuenta es esta clave
hostbrid sites list             # tus sitios
hostbrid sites show 12          # uno, con todo su detalle
hostbrid dns-zones list         # tus zonas de DNS
hostbrid mailboxes list         # tus buzones

Toutes les commandes suivent le même schéma :

hostbrid <recurso> <acción> [id] [campo=valor ...]

Les actions sont list, show, create, update et delete. Les ressources sont les mêmes que celles de la référence de l’API : sites, domains, databases, dns-zones, dns-records, mailboxes, mail-aliases, ftp-accounts, ssl-certificates et quelques autres. Vous les voyez toutes avec hostbrid --help.

Créer des choses

Les données s’écrivent en campo=valor, sans guillemets ni accolades :

hostbrid sites create domain=ejemplo.com php_version=8.3
hostbrid dns-records create zone=4 name=www type=A value=203.0.113.10

Pour modifier quelque chose, ne passez que le champ qui change — le reste ne bouge pas :

hostbrid sites update 12 php_version=8.4

Note

Créer, modifier et supprimer exigent que votre clé ait ces permissions, et une clé tout juste créée ne fait que lire. Si la réponse vous dit qu’il manque une permission, elle vous dit laquelle : demandez-la dans un ticket.

Supprimer

hostbrid sites delete 12

Avant de supprimer, il vous montre ce que vous allez supprimer et vous demande d’écrire le nom exact. Ce n’est pas un ¿seguro? [s/N] : à ça, on répond oui sans lire.

Il y a trois choses qui ne se suppriment pas d’ici, même avec confirmation — votre fiche client, votre offre et votre marque blanche. Cette suppression ne se défait pas avec une autre commande, alors elle se fait dans le panneau, en la regardant.

Dans un script ou un pipeline

Deux choses font que ça marche bien en automatique :

La clé se passe par variable d’environnement, sans fichier de configuration :

export HOSTBRID_TOKEN=nxp_tu_clave
hostbrid sites list

La sortie standard ne contient que la donnée. Les avertissements et les erreurs partent par la sortie d’erreur : vous pouvez donc enchaîner sans rien filtrer :

hostbrid sites list --json | jq -r '.results[].domain'

Et pour supprimer sans qu’il pose de question — parce que dans un pipeline il n’y a personne pour répondre — il faut le dire explicitement :

hostbrid sites delete 12 --si

Si vous oubliez le --si, il ne supprime rien et vous le dit. C’est voulu : nous préférons qu’un script échoue plutôt qu’il supprime quelque chose que personne n’allait regarder.

Quand la commande n’existe pas encore

Si l’API sait faire quelque chose que ce programme ne sait pas encore appeler :

hostbrid api GET sites/12/
hostbrid api POST databases/ name=mitienda site=12

Comme ça, vous n’attendez pas une nouvelle version.

Ce que ce programme ne fait pas

Il ne déploie pas depuis git, il ne construit rien et il n’a ni « projets » ni « environnements ». C’est une fine couche au-dessus de l’API de vos sites : tout ce qu’il fait se fait aussi avec curl, et tout ce que l’API apprend, il en hérite.

Problèmes fréquents

« La clé n’est pas valable (401) »

Soit vous l’avez révoquée, soit elle est mal copiée. Refaites hostbrid login.

« Permission insuffisante (403) »

Il manque une permission à votre clé, et le message dit laquelle. Elles se demandent dans un ticket.

« N’existe pas, ou n’est pas à vous (404) »

L’identifiant est erroné, ou il appartient à un autre compte. L’API répond la même chose dans les deux cas volontairement : les distinguer confirmerait quels identifiants existent.

« Vous avez dépassé la limite (429) »

Trop de requêtes par minute avec cette clé. Attendez et réessayez.

«command not found: hostbrid» après le téléchargement

Le fichier est téléchargé mais il n’est pas exécutable, ou il n’est pas dans votre PATH. Donnez-lui les permissions d’exécution et appelez-le avec son chemin complet la première fois.

Je ne veux pas stocker le mot de passe sur l’ordinateur

Ne le sauvegardez pas : placez-le dans la variable d’environnement HOSTBRID_TOKEN et sautez le login. C’est ce qu’on fait dans un pipeline.

Le script reste en attente lors de la suppression

Il manque le –si. Sans lui, il demande une confirmation par clavier, et dans un pipeline, il n’y a personne pour lui donner la confirmation.

Mon jq ne reçoit rien et la commande fonctionne

Vous capturez la sortie d’erreur au lieu des données. La sortie standard ne contient que les données ; les avertissements sont séparés, juste pour que cela fonctionne.

Je veux supprimer ma fiche de client ou mon forfait et il ne me laisse pas

Ces trois effacements - fiche de client, plan et marque blanche - ne sont pas effectués à partir du terminal exprès : ils ne sont pas annulés, donc ils sont effectués dans le panneau, en le regardant.

La commande dont j’ai besoin n’existe pas

Utilisez hostbrid api avec la méthode et le chemin, et appelez n’importe quoi de l’API sans attendre une nouvelle version du programme.