Sign-in page rewritten for non-technical students: Google-first when configured, plain-language email path with honest 30-day scope, recovery note, placeholders, full-width CTA. deploy/termux-start.sh sources .env for GOOGLE_* credentials; deploy/env.example documents the 5-minute Cloud Console setup; .gitignore covers secrets, DBs, pid/log files. bench scripts send a browser UA so Cloudflare bot checks stop 403ing local load tests. Landing bank counts cached 60s (five aggregate subselects no longer run per hit). gzip compression on all responses.
27 lines
991 B
TOML
27 lines
991 B
TOML
[package]
|
|
name = "whaleprep"
|
|
version = "0.1.0"
|
|
edition = "2024"
|
|
|
|
[dependencies]
|
|
anyhow = "1.0.104"
|
|
axum = { version = "0.8.9", features = ["form", "query", "json", "http1", "http2"] }
|
|
base64 = "0.23.1"
|
|
chrono = { version = "0.4.45", features = ["serde"] }
|
|
jsonwebtoken = { version = "11.1.0", features = ["rust_crypto", "use_pem"] }
|
|
reqwest = { version = "0.13.5", features = ["form", "json"] }
|
|
serde = { version = "1.0.229", features = ["derive"] }
|
|
serde_json = "1.0.152"
|
|
sha2 = "0.11.0"
|
|
sqlx = { version = "0.9.0", features = ["sqlite", "runtime-tokio", "macros", "chrono", "uuid"] }
|
|
tokio = { version = "1.53.2", features = ["full"] }
|
|
tower-cookies = "0.11.0"
|
|
tower-http = { version = "0.7.1", features = ["fs", "compression-gzip"] }
|
|
tracing = "0.1.44"
|
|
tracing-subscriber = { version = "0.3.23", features = ["env-filter"] }
|
|
uuid = { version = "1.28.0", features = ["v4", "serde"] }
|
|
|
|
[dev-dependencies]
|
|
rand = "0.8"
|
|
rsa = { version = "0.9", features = ["pem"] }
|
|
serde_urlencoded = "0.7.1"
|