Single-binary self-hosted uptime monitoring and status pages on Rust axum: HTTP probes, Lighthouse audits, SEO crawler, and PDF reports.
axumdockerrustself-hostedsqlitestatus-pageuptime-monitoringvite
1[package]
2name = "status"
3version = "0.1.0"
4edition = "2021"
5default-run = "status"
6
7[dependencies]
8axum = { version = "0.8", features = ["macros"] }
9tokio = { version = "1", features = ["full"] }
10tower = { version = "0.5", features = ["util"] }
11tower-http = { version = "0.6", features = ["fs", "trace", "set-header"] }
12tower-cookies = { version = "0.11", features = ["signed"] }
13minijinja = { version = "2", features = ["loader", "loop_controls", "json"] }
14serde = { version = "1", features = ["derive"] }
15serde_json = "1"
16serde_urlencoded = "0.7"
17sqlx = { version = "0.8", default-features = false, features = ["runtime-tokio", "sqlite", "macros", "migrate", "chrono", "uuid"] }
18uuid = { version = "1", features = ["v4", "serde"] }
19chrono = { version = "0.4", features = ["serde"] }
20hmac = "0.12"
21sha2 = "0.10"
22base64 = "0.22"
23dotenvy = "0.15"
24anyhow = "1"
25thiserror = "2"
26tracing = "0.1"
27tracing-subscriber = { version = "0.3", features = ["env-filter"] }
28reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "stream", "gzip", "brotli"] }
29# Pin to ring (matching tokio-rustls below) so we don't drag aws-lc-sys's
30# C build into the deps tree just for a feature flag default. The phased
31# prober installs ring as the process-wide CryptoProvider in main.rs.
32rustls = { version = "0.23", default-features = false, features = ["ring", "logging", "std", "tls12"] }
33tokio-rustls = { version = "0.26", default-features = false, features = ["ring"] }
34webpki-roots = "0.26"
35h2 = "0.4"
36http = "1"
37tempfile = "3"
38mime_guess = "2"
39urlencoding = "2"
40futures-util = "0.3"
41url = "2"
42scraper = "0.20"
43html5ever = "0.27"
44robotstxt = "0.3"
45regex = "1"
46once_cell = "1"
47hickory-resolver = "0.24"
48lettre = { version = "0.11", default-features = false, features = ["smtp-transport", "rustls-tls", "tokio1-rustls-tls", "builder", "tokio1"] }
49typst = "0.14"
50typst-pdf = "0.14"
51typst-kit = { version = "0.14", default-features = false, features = ["fonts", "embed-fonts"] }
52
53[profile.release]
54# Skip LTO so release builds stay tractable on the 1-vCPU alpine VPS once
55# typst-library entered the dep tree. codegen-units defaults to 16.
56strip = true