La terminal: hostbrid

Qué consigues: hacer lo del panel escribiendo una línea. Crear un sitio, cambiarle el PHP, añadir un registro de DNS o listar tus buzones sin abrir el navegador — y, sobre todo, meter eso dentro de un script o de un pipeline.

Es un solo fichero y no necesita instalar nada: si tienes Python 3, funciona.

Antes de empezar

Necesitas una clave de API. Se crea en el panel, en Cuenta ‣ Claves para IA, y se enseña una sola vez. Si no la tienes todavía, mira La API, para automatizar tu cuenta — la primera parte explica cómo se crea y qué permisos lleva.

Ponerlo en tu equipo

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

Comprueba que responde:

hostbrid --version

Entrar

hostbrid login

Te pide la clave y la comprueba antes de guardarla, así que si te dice que está lista, está lista. Se guarda en ~/.config/hostbrid/config.json, con permisos para que sólo la puedas leer tú.

Para salir, hostbrid logout. Ojo: eso la borra de este equipo, pero la clave sigue siendo válida. Para anularla de verdad hay que revocarla en el panel.

Lo que más vas a usar

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

Todos los comandos siguen el mismo patrón:

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

Las acciones son list, show, create, update y delete. Los recursos son los mismos que ves en la referencia de la API: sites, domains, databases, dns-zones, dns-records, mailboxes, mail-aliases, ftp-accounts, ssl-certificates y unos cuantos más. Los ves todos con hostbrid --help.

Crear cosas

Los datos van como campo=valor, sin comillas ni llaves:

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

Para cambiar algo, sólo el campo que cambia — lo demás se queda como está:

hostbrid sites update 12 php_version=8.4

Note

Crear, cambiar y borrar necesitan que tu clave tenga esos permisos, y una clave recién creada sólo lee. Si te responde que falta un permiso, la respuesta te dice cuál: pídelo en un ticket.

Borrar

hostbrid sites delete 12

Antes de borrar te enseña qué vas a borrar y te pide escribir el nombre exacto. No es un ¿seguro? [s/N]: eso se contesta que sí sin leer.

Hay tres cosas que no se borran desde aquí ni con confirmación —tu ficha de cliente, tu plan y tu marca blanca—. Ese borrado no se deshace con otro comando, así que se hace en el panel, mirándolo.

Dentro de un script o un pipeline

Dos cosas hacen que esto funcione bien automatizado:

La clave se pasa por variable de entorno, sin fichero de configuración:

export HOSTBRID_TOKEN=nxp_tu_clave
hostbrid sites list

La salida estándar es sólo el dato. Los avisos y los errores van por la salida de error, así que puedes encadenar sin filtrar nada:

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

Y para borrar sin que pregunte —porque en un pipeline no hay nadie para contestar— hace falta decirlo explícitamente:

hostbrid sites delete 12 --si

Si se te olvida el --si, no borra y te lo dice. Es a propósito: preferimos que un script falle a que borre algo que nadie iba a mirar.

Cuando el comando no existe todavía

Si la API tiene algo que este programa aún no sabe llamar:

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

Con eso no te quedas esperando a una versión nueva.

Lo que este programa no hace

No despliega desde git, no construye nada y no tiene «proyectos» ni «entornos». Es una tapa fina sobre la API de tus sitios: todo lo que hace se puede hacer con curl, y todo lo que la API aprenda, lo hereda.

Problemas frecuentes

«La clave no vale (401)»

O la has revocado, o está mal copiada. Vuelve a hostbrid login.

«Permiso insuficiente (403)»

A tu clave le falta un permiso, y el mensaje dice cuál. Se piden en un ticket.

«No existe, o no es tuyo (404)»

El identificador está mal, o es de otra cuenta. La API responde igual en los dos casos a propósito: distinguirlos confirmaría qué identificadores existen.

«Te has pasado del límite (429)»

Demasiadas peticiones por minuto con esa clave. Espera y reintenta.

«command not found: hostbrid» después de descargarlo

El fichero está bajado pero no es ejecutable, o no está en tu PATH. Dale permiso de ejecución y llámalo con su ruta completa la primera vez.

No quiero guardar la clave en el ordenador

No la guardes: ponla en la variable de entorno HOSTBRID_TOKEN y sáltate el login. Es lo que se hace en un pipeline.

El script se me queda esperando al borrar

Falta el –si. Sin él pide confirmación por teclado, y en un pipeline no hay nadie para dársela.

Mi jq no recibe nada y el comando sí funciona

Estás capturando la salida de error en vez del dato. Por la salida estándar va sólo el dato; los avisos van aparte, justo para que esto funcione.

Quiero borrar mi ficha de cliente o mi plan y no me deja

Esos tres borrados —ficha de cliente, plan y marca blanca— no se hacen desde la terminal a propósito: no se deshacen, así que se hacen en el panel, mirándolo.

El comando que necesito no existe

Usa hostbrid api con el método y la ruta, y llamas a cualquier cosa de la API sin esperar a una versión nueva del programa.