Thanks to visit codestin.com
Credit goes to github.com

Skip to content

a asynchronous API for the status of my self deployed applications written in rust with tokio, axum, and reqwest

License

Notifications You must be signed in to change notification settings

sachiniyer/status

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Status

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).

Features

  1. Pulls from my nginx conf to figure out what applications are currently exposed. Then does GET requests to make sure that they are active.
  2. 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
  3. Exposes a regular HTTP endpoint at https://status.sachiniyer.com - this is a bit slower
  4. Packaged as a docker container at sachiyer/status. I use github actions to automate that deployment.

How it's build

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.

Build Instructions

should be as simple as

cp env.sample .env
cargo build
cargo run

There are also auto built docker images at sachiyer/status

About

a asynchronous API for the status of my self deployed applications written in rust with tokio, axum, and reqwest

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published