osu! Switzerland national #1 tracker (snipe-api)
  • Rust 88.3%
  • PLpgSQL 11%
  • Shell 0.6%
Find a file
2026-09-13 22:13:57 +00:00
.forgejo/workflows feat!: rebuild the api on the new schema 2026-09-02 21:03:31 +02:00
migrations fix: escape markdown in webhook lines, so a title like DECO*27 stays text 2026-09-13 17:34:32 +02:00
rebuild feat!: rebuild the api on the new schema 2026-09-02 21:03:31 +02:00
scripts test: drop each test database on teardown and sweep dead runs 2026-08-26 22:22:32 +02:00
src fix: let a replay batch weigh more than the app-wide megabyte limit 2026-09-14 00:11:57 +02:00
tests fix: let a replay batch weigh more than the app-wide megabyte limit 2026-09-14 00:11:57 +02:00
.gitignore chore: scaffold snipe-api 2026-08-25 17:14:30 +02:00
.releaserc.cjs fix(ci): cut a patch release on revert commits 2026-08-27 00:41:24 +02:00
API-DESIGN.md docs: correct extra, peak-rank and rank_* null claims 2026-09-02 21:42:29 +02:00
Cargo.lock fix: rank flag changers in the monthly pp history from their ch_since on 2026-09-11 11:05:10 +02:00
Cargo.toml chore(release): 1.0.0-beta.248 [skip ci] 2026-09-13 22:12:19 +00:00
DECISIONS.md feat!: rebuild the api on the new schema 2026-09-02 21:03:31 +02:00
Dockerfile feat: data dump import, osu.direct mirrors, official star ratings, stable-board skip 2026-08-28 02:13:34 +02:00
openapi.json chore: update openapi.json snapshot [skip ci] 2026-09-13 22:13:57 +00:00
README.md revert: crawl workers, worker binary and supporter-pool removal, pending peppy's answer 2026-08-27 00:34:44 +02:00
renovate.json chore: scaffold snipe-api 2026-08-25 17:14:30 +02:00
rust-toolchain.toml chore: scaffold snipe-api 2026-08-25 17:14:30 +02:00
SCHEMA-DESIGN.md docs: correct extra, peak-rank and rank_* null claims 2026-09-02 21:42:29 +02:00

snipe-api

Tracks the Swiss national #1 on every ranked, loved and qualified osu! beatmap (all four rulesets, lazer and stable scoring) by tailing the osu! scores feed and refreshing country leaderboards with pooled supporter tokens.

Run: set DATABASE_URL and start snipe-api; the first-run wizard (/api/setup) designates the admin and stores the osu! OAuth client and everything else in app_settings (env vars named after src/app_settings.rs keys still work, DB rows win). Admins edit settings at /api/admin/settings; changes restart the process. Supporters join the token pool through /api/auth/login?join_pool=1; snipe-api auth still seeds one from the CLI, snipe-api --dump-openapi prints the spec.

Test: scripts/test.sh (needs docker; spins a throwaway Postgres, osu! is wiremock).