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 , 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.