Compare commits

..

2 commits

Author SHA1 Message Date
b03b64c7ed
ci: added tci script 2024-12-10 11:23:27 +01:00
ec7632dff1
chore: renamed to upp 2024-12-10 11:20:09 +01:00
9 changed files with 20 additions and 14 deletions

5
.tci Executable file
View file

@ -0,0 +1,5 @@
#!/bin/sh
cargo build --release
systemctl --user stop upp
cat target/release/upp > /opt/bin/upp
systemctl --user start upp

2
Cargo.lock generated
View file

@ -1392,7 +1392,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "adb9e6ca4f869e1180728b7950e35922a7fc6397f7b641499e8f3ef06e50dc83"
[[package]]
name = "uppe-rs"
name = "upp"
version = "0.2.0"
dependencies = [
"async-recursion",

View file

@ -1,5 +1,5 @@
[package]
name = "uppe-rs"
name = "upp"
version = "0.2.0"
edition = "2021"

View file

@ -1,10 +1,10 @@
# uppe.rs
# upp
> batteries-included uptime monitor for your infrastructure
`uppe.rs` runs off a single binary, a configuration file (in toml) and an sqlite database (can be in memory or persisted on disk), and provides a daemon that tests configured routes while also serving a tiny API and web frontend.
`upp` runs off a single binary, a configuration file (in toml) and an sqlite database (can be in memory or persisted on disk), and provides a daemon that tests configured routes while also serving a tiny API and web frontend.
it periodically makes requests to configured services, and tracks roundtrip time (or if no response was returned at all!). this data is then accessible using `uppe.rs` tiny builtin api, and can be viewed on the integrated webpage (served on service's `/`)
it periodically makes requests to configured services, and tracks roundtrip time (or if no response was returned at all!). this data is then accessible using `upp` tiny builtin api, and can be viewed on the integrated webpage (served on service's `/`)
as an example, check out my instance on [up.alemi.dev](https://up.alemi.dev)
@ -21,4 +21,4 @@ future features which would be nice to add are:
* multi-protocol endpoint tester
## name
honestly pretty bad, probably a mix of uptime + rust + monitors + stimulants. send me better ideas plz, contacts on my site
small but not really specific, `uprs` and `up-rs` and `up` were taken. if you have better name ideas let me know c:

View file

@ -13,7 +13,7 @@ pub async fn serve(config: Config, db: Database, addr: &str) -> std::io::Result<
let app = axum::Router::new()
.route("/", axum::routing::get(|| async { Html(index) }))
.route("/favicon.ico", axum::routing::get(|| async { include_bytes!("../web/uppe.ico") }))
.route("/favicon.ico", axum::routing::get(|| async { include_bytes!("../web/upp.ico") }))
.route("/api/status", axum::routing::get(api_status))
.route("/api/status/:service", axum::routing::get(api_status_service))
.with_state(db);

View file

@ -15,7 +15,7 @@ struct Cli {
storage: Option<String>,
/// path to config file
#[arg(short, long, default_value = "uppe.toml")]
#[arg(short, long, default_value = "upp.toml")]
config: String,
/// host to bind api onto

View file

@ -1,5 +1,6 @@
interval_s = 10
history = 600
batchsize = 100
description = "keeping track of your infra status"
[service.moonlit]
endpoint = "https://moonlit.technology"
@ -7,7 +8,7 @@ endpoint = "https://moonlit.technology"
[service.site]
endpoint = "https://alemi.dev"
[service.codemp]
[service."code.mp"]
endpoint = "https://code.mp"
[service.down]

View file

@ -4,7 +4,7 @@
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link crossorigin rel="stylesheet" href="https://cdn.alemi.dev/web/alemi.css">
<title>uppe.rs</title>
<title>up.rs</title>
<style>
span.cell {
position: relative;
@ -109,12 +109,12 @@
<body>
<div class="content">
<div class="ml-1">
<h1 class="mt-0 pt-1">uppe.rs</h1>
<h1 class="mt-0 pt-1">up.rs</h1>
<p>%%DESCRIPTION%%</p>
</div>
<hr class="color"/>
<main id="uppe-rs-content">
<main id="upp-content">
<h2 class="center mt-3">loading<span class="dots"></span></h2>
</main>
</div>
@ -164,7 +164,7 @@ function card(key, history, last_rtt) {
</div>`;
}
const main = document.getElementById("uppe-rs-content");
const main = document.getElementById("upp-content");
const batchsize = (new URLSearchParams(window.location.search)).get('batch') || '%%BATCHSIZE%%';
async function updateStatus() {

View file

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB