Deployed at https://status.sachiniyer.com.
Just used to check the status of my currently deployed applications. Consumed by https://sachiniyer.com and https://botsin.space/@sachiniyerstatus (code).
- Pulls from my nginx conf to figure out what applications are currently exposed. Then does GET requests to make sure that they are active.
- Exposes a websocket endpoint at https://status.sachiniyer.com/ws - this is best, because you will get information as soon as a response comes in
- Exposes a regular HTTP endpoint at https://status.sachiniyer.com - this is a bit slower
- Packaged as a docker container at sachiyer/status. I use github actions to automate that deployment.
Everything is written in async with tokio, axum, and reqwest.
I use async and multi-threading to send out all the requests with reqwest. Then for the websocket version, I send back the results as soon as the threads complete. For the web version, I collect results from all the threads and then send it out as an HTTP response. The websocket version is what is used on my main website.
should be as simple as
cp env.sample .env
cargo build
cargo runThere are also auto built docker images at sachiyer/status