A modern monorepo for managing and displaying private or community osu! servers — built with Bun, TypeScript, and TurboRepo for blazing-fast development and builds.
osu-server-list/
├── apps/
│ ├── crawler/ # Service that scrapes or updates osu! server data
│ └── frontend/ # Web frontend for displaying servers
│
├── packages/
│ └── db/ # Shared database package (Drizzle ORM + schema definitions)
│ ├── src/
│ │ ├── index.ts
│ │ ├── query.ts
│ │ └── schema.ts
│ ├── drizzle.config.ts
│ └── package.json
│
├── .gitignore
├── bunfig.toml
├── LICENSE
├── package.json
├── turbo.json
├── tsconfig.json
└── README.md
- 🧠 Language: TypeScript
- ⚡ Runtime: Bun
- 📦 Monorepo Management: Turborepo
- 🗃 Database: Drizzle ORM
- 🌐 Frontend: SvelteKit
- 🔍 Crawler: Custom Bun service for collecting osu! server data
Shared Drizzle ORM setup used by all apps in the monorepo. Includes:
schema.ts: database schema definitionsquery.ts: reusable query helpersindex.ts: exports for external use
Frontend web app displaying osu! servers with sorting, filtering, and details.
Backend crawler that fetches or updates server info periodically.
git clone https://github.com/ezppfarm/osu-server-list.git
cd osu-server-listUsing Bun:
bun installUse Turborepo to start everything in parallel:
bun run devOr run individual apps:
bun run dev --filter=frontend
bun run dev --filter=crawlerTo build all packages and apps:
bun run buildTo run, run:
docker compose upIf you want to run in the background, run:
docker compose up -dThis project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.
Pull requests are welcome! If you’d like to contribute:
- Fork the repo
- Create a new branch (
feature/your-feature) - Commit your changes
- Open a PR