Get to be notified when an availability changes on eco.ovhcloud.com
Find a file
theadam 7c1a7e7c02
All checks were successful
push stable package / docker (push) Successful in 22s
expand cpu info and show setup fee
2025-11-01 20:50:46 +01:00
.forgejo/workflows ci fix 2024-11-18 15:33:40 +01:00
.gitignore add ignoring json and txt 2024-09-10 16:23:44 +02:00
browser.py expand cpu info and show setup fee 2025-11-01 20:50:46 +01:00
docker-compose.yml Docker + readme 2024-11-18 17:00:17 +01:00
Dockerfile no longer need to create empty files 2024-11-01 10:39:17 +01:00
README.md +Show bw 2025-04-13 13:03:57 +02:00
webhooks.json.sample +new: endpoint definition changes 2025-03-29 18:08:46 +01:00

ovh-eco-hunter

OVHCloud eco line scraper and hunter.

A brief summary

This service looks the OVH availability API about the availabilities of configurations.

And looks the catalog API too, which makes the configurations orderable with catalog (price, details and etc.).

A config available only when the availability API lists that, but an availability possible available without category. On fresh modells usualy OVH provides the availability and catalog later which makes possible to prepare for ordering.

This service sends the FQN regex match on server change to the set Discord webhooks in the webhooks json.

FQN always identifies the different server configurations. A server has a family and model id, for example 24sk10, a memory and a disk id. Memory and disk makes that unique and parts from the catalog is pairable. The planCode identifies a server but in the new range one server has multiple configurations.

Files

To use this you need to create two files.

  • A webhooks.json that uses the server FQN and Python regex to filter which type of server notification routed to which Discord webhook. check the sample file.
  • An offer.json which contains offers

These are required only to create by hand if you run it with Docker

Run in Docker

See the docker-compose.yml file. If you use it, do not forget to create the two starting files. Webhooks and offers.

touch webhooks.json
echo "{}" > offers.json
echo "{}" > offers_archive.json

It is an empty example. Fill up webhooks.json if you want to get webhooks. Otherwise you only can read offers.json.

You can change who runs the service in compose file. Keep in mind that this user need to be to know read and write the JSONs.

Run

You can simply run the script with python3 browser.py. Suggested to do it in tmux to run in background. Or use Docker.

CI/CD

Due to the special installation of this instance the workflows configured to work over HTTP. With this we do not need to install the own CA to all containers and instances.

Changelog

V2.1

  • Show bandwidth on changes
  • show an estimated prices based on the addons of specific FQN

V2.0

  • Changed JSON format. Added the urls and urls_listchanges. The urls fired at every DC change but urls_listchanges only when availability or catalog changed. This helps to look the new availabilities only and avoid too much notifications.

v1.9

  • Fix: Archive servers at every run, not on the first.

v1.8

  • Added datacenters for new FQNs
  • Added docker-compose file
  • Continue run on network error, do not crash
  • New CPU determination logic fix to avoid crash if server invoice not provide CPU information
  • New repository with CI/CD

v1.4

  • Labels added to offers.json to make easier autoorder.
  • Regenerate catalog on change.
  • New logic to determine CPU. If catalog not provides this information well, we use the invoiceName as an alternative.
  • If only one disk or RAM option possible, get it directly instead search with regex.

v1.1

  • Added: Last seen for FQNs
  • Added: Auto deploy Docker container package

v1.0

  • Initial release