A small Rust TUI for exploring OVHcloud dedicated servers from the US OVH API.
On first run, frenchy creates:
~/.config/frenchy/config.toml
Fill it with your OVH API application and consumer key:
application_key = "..."
application_secret = "..."
consumer_key = "..."
endpoint = "https://api.us.ovhcloud.com/1.0"
ipmi_type = "kvmipHtml5URL"
ipmi_ttl = "15"Environment variables can override the config file:
export OVH_APPLICATION_KEY=...
export OVH_APPLICATION_SECRET=...
export OVH_CONSUMER_KEY=...
export OVH_ENDPOINT=https://api.us.ovhcloud.com/1.0
export OVH_IPMI_TYPE=kvmipHtml5URL
export OVH_IPMI_TTL=15The consumer key needs read access to dedicated server routes and write access for IPMI session creation and restarts:
GET /dedicated/server
GET /dedicated/server/*
POST /dedicated/server/*/features/ipmi/access
POST /dedicated/server/*/reboot
You can also print this from the binary:
cargo run -- credential-helpcargo run/ filter by displayed server name
enter/esc finish filtering
backspace edit filter
ctrl-u clear filter while filtering
r refresh servers
j/k or arrows move selection
ctrl-d/ctrl-u move selection by half a page
gg/G jump to first/last server
tab/enter switch focus
pgup/pgdn scroll details
i/K request HTML5 KVM/IPMI access and open the returned URL
R press twice to restart the selected server
q/esc/ctrl-c quit
The KVM action calls OVH's IPMI access API:
POST /dedicated/server/{serviceName}/features/ipmi/access
GET /dedicated/server/{serviceName}/features/ipmi/access?type=kvmipHtml5URL
and opens the returned HTML5 KVM URL with the system browser.
The restart action calls:
POST /dedicated/server/{serviceName}/reboot