DediboxApi
DediboxApi — client Crystal pur (stdlib uniquement) pour l'API Dedibox / Online.net v1.
Auth par Bearer token simple (un jeton unique, généré depuis la console https://console.online.net/fr/api/access). Couvre le strict nécessaire au provisioning de serveurs dédiés Dedibox :
-
client.serverslist— liste les IDs des serveurs du compteinfo(id)— détail serveur (hostname, IPs, boot mode…)rescue_images(id)— liste des slugs images rescue disponiblesprepare_rescue(id, image)— sélectionne l'image rescue à booterreboot(id)— déclenche un reboot bare metal (applique le rescue)boot_normal(id)— demande le retour boot disque (post-bootstrap)
-
client.ssh_keyslist,info(id),create(description, key),delete(id)
Flux typique pour un bootstrap Aloli :
require "dedibox-api"
client = DediboxApi::Client.new(token: ENV["DEDIBOX_TOKEN"])
info = client.servers.info(186260)
puts info.public_ip # => "195.154.254.221"
images = client.servers.rescue_images(186260)
client.servers.prepare_rescue(186260, "debian-12_amd64")
client.servers.reboot(186260)
# ... attendre retour SSH en rescue, lancer mfsBSD-in-QEMU …
client.servers.boot_normal(186260)
client.servers.reboot(186260)
Constants
DEFAULT_ENDPOINT = "https://api.online.net/api/v1"
Endpoint par défaut de l'API Dedibox (racine v1).
VERSION = {{
(((read_file("/tmp/tmp.eijHJH/src/src/dedibox_api/../../shard.yml"))
.lines
.find(&.starts_with?("version:")) || "version: 0.0.0")
.gsub(/^version:\s*/, ""))
.chomp
}}
Lue au compile-time depuis shard.yml via le macro read_file.
Cf. note mémoire feedback_shard_version_macro.md (mémoire ALOLI).