A comprehensive web-based guide for Uma Musume Pretty Derby, helping trainers quickly find character guides, skill recommendations, support card builds, race schedules, and more.
Live Site: umamusume.wildquaker.com
- Characters — Browse Uma Musume character guides with training tips
- Skills — Skill recommendations and details
- Builds — Support card deck suggestions
- Races — Key race schedules and scenarios
- Links — Curated collection of external community resources
- Framework: Next.js 16 (App Router, React 19)
- Language: TypeScript
- Styling: Tailwind CSS 4
- Package Manager: pnpm
- Deployment: Docker + Nginx (self-hosted via GitHub Actions)
pnpm installpnpm devThe app will be available at http://localhost:3000.
pnpm buildpnpm lintThe project deploys automatically to production via a self-hosted GitHub Actions runner when changes are pushed to the master branch. Deployment can also be triggered manually from the Actions tab.
The production stack uses Docker Compose with two services:
| Service | Description |
|---|---|
umamusume-app |
Next.js standalone server (port 3000) |
umamusume-nginx |
Nginx reverse proxy (port 80 → 3000) |
To deploy manually:
docker compose up -d --build├── app/
│ ├── builds/ # Builds page
│ ├── characters/ # Characters page
│ ├── components/ # Shared UI components
│ ├── data/ # JSON data files (characters, skills, builds, races, links)
│ ├── lib/ # Utility functions
│ ├── links/ # Links page
│ ├── races/ # Races page
│ ├── skills/ # Skills page
│ ├── layout.tsx # Root layout
│ ├── page.tsx # Homepage
│ └── globals.css # Global styles
├── docker/
│ ├── Dockerfile # Multi-stage Docker build
│ └── nginx.conf # Nginx configuration
├── public/ # Static assets (favicons, images, sitemap)
├── .github/workflows/ # CI/CD pipeline
├── docker-compose.yml
├── package.json
└── pnpm-workspace.yaml
Game data is stored as JSON files in app/data/ and mounted as a read-only volume in production, allowing data updates without rebuilding the Docker image.
This project is licensed under the MIT License.