OVH Eco dedicated servers are known for their low prices and high demand. As a result, they are often out of stock. This collection of bash scripts is used to check for server availability and send notifications when a server is available.
- List available servers from OVH Eco catalog
- Check availability of a specific server in one or multiple datacenters
- Send notifications to OpsGenie and/or Telegram when a server is available
git clone git@github.com:TheoBrigitte/kimsufi-notifier.git
cd kimsufi-notifier
cp config.env.example config.env
bin/check.sh
Configuration is done through environment variables. The following variables are available:
COUNTRY
: country code to list servers from (e.g.FR
)CATEGORY
: server category to list servers from (e.g.kimsufi
)PLAN_CODE
: plan code to check availability for (e.g.24ska01
)DATACENTERS
: comma-separated list of datacenters to check availability in (e.g.fr,gra,rbx,sbg
)ENDPOINT
: OVH API endpoint to use (e.g.ovh-eu
)HEALTHCHECKS_IO_UUID
: UUID for healthchecks.io to ping after successful run
More details can be found in the config.env.example file.
Notification(s) can be sent whenever a server is available. Either one or multiple notification services can be used.
Supported notification services:
- Discord via Webhook
- Gotify
- OpsGenie via Alerts API
- Telegram via Bots API#sendMessage
In order to use a notification service, it is recommended to set its environment variables in the config file, see config.env.example.
In order to receive notifications for Discord, the appropriate environment variable must be set:
DISCORD_WEBHOOK
: Webhook URL to use for Discord notification service
See Intro to Webhook for how to make and use a Discord Webhook.
In order to recieve notifications for Gotify, the appropriate environment variables must be set:
GOTIFY_URL
: URL to use for Gotify notification serviceGOTIFY_TOKEN
: token to use for Gotify notification serviceGOTIFY_PRIORITY
: prority for Gotify notification service
See Gotify Push messages documentation for more information.
In order to recieve notifications for OpsGenie, the appropriate environment variables must be set:
OPSGENIE_API_KEY
: API key to use OpsGenie notification service
See OpsGenie API key or OpsGenie integration for more information.
Example with OpsGenie:
$ bin/check.sh --plan-code 24ska01
> checking 24ska01 availability in all datacenters
> checked 24ska01 available in fr,gra,rbx,sbg
> sending OpsGenie notification
> sent OpsGenie notification
In order to recieve notifications for Telegram, the appropriate environment variables must be set:
TELEGRAM_CHAT_ID
: chat ID to use Telegram notification serviceTELEGRAM_BOT_TOKEN
: bot token to use Telegram notification service
See Telegram bot creation guide or this Gist
Example with Telegram:
$ bin/check.sh --plan-code 24ska01
> checking 24ska01 availability in all datacenters
> checked 24ska01 available in fr,gra,rbx,sbg
> sending Telegram notification
> sent Telegram notification
$ bin/list.sh -h
Usage: list.sh
List servers from OVH Eco (including Kimsufi) catalog
Arguments
--category Server category (default all)
Allowed values: kimsufi, soyoustart, rise, uncategorized
-c, --country Country code (required)
Allowed values with -e ovh-eu : CZ, DE, ES, FI, FR, GB, IE, IT, LT, MA, NL, PL, PT, SN, TN
Allowed values with -e ovh-ca : ASIA, AU, CA, IN, QC, SG, WE, WS
Allowed values with -e ovh-us : US
-e, --endpoint OVH API endpoint (default: ovh-eu)
Allowed values: ovh-eu, ovh-ca, ovh-us
-d, --debug Enable debug mode (default: false)
-h, --help Display this help message
Arguments can also be set as environment variables see config.env.example
Command line arguments take precedence over environment variables
Example:
list.sh --country FR
list.sh --country FR --category kimsufi
$ bin/check.sh -h
Usage: check.sh
Check OVH Eco (including Kimsufi) server availability
Arguments
-p, --plan-code Plan code to check (e.g. 24ska01)
--datacenters Comma-separated list of datacenters to check availability for (default all)
Example values: bhs, ca, de, fr, fra, gb, gra, lon, pl, rbx, sbg, waw (non exhaustive list)
-e, --endpoint OVH API endpoint (default: ovh-eu)
Allowed values: ovh-eu, ovh-ca, ovh-us
-d, --debug Enable debug mode (default: false)
-h, --help Display this help message
Arguments can also be set as environment variables see config.env.example
Command line arguments take precedence over environment variables
Environment variables
DISCORD_WEBHOOK Webhook URL to use for Discord notification service
GOTIFY_URL URL to use for Gotify notification service
GOTIFY_TOKEN token to use for Gotify notification service
GOTIFY_PRIORITY prority for Gotify notification service
OPSGENIE_API_KEY API key for OpsGenie to receive notifications
TELEGRAM_BOT_TOKEN Bot token for Telegram to receive notifications
TELEGRAM_CHAT_ID Chat ID for Telegram to receive notifications
HEALTHCHECKS_IO_UUID UUID for healthchecks.io to ping after successful run
Example:
check.sh --plan-code 24ska01
check.sh --plan-code 24ska01 --datacenters fr,gra,rbx,sbg
List servers from OVH Eco catalog in a specific country and from a specific category.
$ bin/list.sh --country FR --category kimsufi
> fetching servers in FR
> fetched servers
PlanCode Category Name Price (EUR)
24ska01 kimsufi KS-A | Intel i7-6700k 4.99
24sk10 kimsufi KS-1 | Intel Xeon-D 1520 16.99
24sk40 kimsufi KS-4 | Intel Xeon-E3 1230 v6 16.99
24sk20 kimsufi KS-2 | Intel Xeon-D 1540 18.99
24sk30 kimsufi KS-3 | Intel Xeon-E3 1245 v5 18.99
24sk50 kimsufi KS-5 | Intel Xeon-E3 1270 v6 25.99
24sk60 kimsufi KS-6 | AMD Epyc 7351P 38.99
24skstor01 kimsufi KS-STOR | Intel Xeon-D 1521 49.99
22skgameapac01-sgp kimsufi KS-GAME-APAC-1-1 53.99
22skgameapac01-syd kimsufi KS-GAME-APAC-1-1 53.99
24ska01-syd kimsufi KS-A | Intel i7-6700k 53.99
24sk30-sgp kimsufi KS-3 | Intel Xeon-E3 1245 v5 54.99
24sk30-syd kimsufi KS-3 | Intel Xeon-E3 1245 v5 54.99
24sk40-syd kimsufi KS-4 | Intel Xeon-E3 1230 v6 54.99
24sk70 kimsufi KS-7 | AMD Epyc 7451 76.99
Check availability of a specific server in all datacenters.
$ bin/check.sh --plan-code 24ska01
> checking 24ska01 availability in all datacenters
> checked 24ska01 unavailable in fr,gra,rbx,sbg