Web application and portal service for the Morino Party (もりのパーティ) Minecraft server network. It provides players with access to in-game account data, balances, land claims, quests, and server statuses through a modern web dashboard.
- Player dashboard: View player profile, statistics, and in-game status
- Minecraft authentication: Secure sign-in integrated with MineAuth (OAuth2 / OpenID Connect)
- Economy & Claims: Check Vault balances, view land claim boundaries, and purchase claim blocks directly from the web
- Server status: Monitor online players and active server states across the network
- Storybook integration: Component catalog developed with Storybook and bundled under
/storybook - Edge rendering: High-performance SSR and edge execution powered by Cloudflare Workers
The live portal is available at moripath.morinoparty.workers.dev, and the component catalog is accessible at moripath.morinoparty.workers.dev/storybook.
| Module | Description |
|---|---|
app |
Main web application (TanStack Start, Vite, Cloudflare Workers) |
storybook |
Component catalog and documentation built with Storybook 10 |
- TanStack Start / TanStack Router - full-stack React framework with SSR and file-based routing
- React 19 / TypeScript 5.9
- Cloudflare Workers (
cfCLI / workerd) - edge serverless runtime - Vite 7 - frontend tooling and build pipeline
- TanStack Query - asynchronous server state synchronization and data fetching
- Chlorophyll (
@morinoparty/chlorophyll-react) - Morino Party design system component library - Ark UI / Panda CSS - accessible headless UI primitives and zero-runtime CSS-in-JS
- Better Auth - authentication framework integrated with MineAuth OIDC provider
- Biome - linter and code formatter
- Storybook 10 - UI component development and preview
- Node.js 26+
- pnpm 12 (version pinned by
packageManagerinpackage.json) - Task (optional)
# Install dependencies
pnpm install
# Setup git hooks
pnpm lefthook installCopy the example environment configuration in app:
cp app/.env.example app/.env| Variable | Description |
|---|---|
CLOUDFLARE_ACCOUNT_ID |
Cloudflare account ID used by the cf CLI (not passed to the Worker) |
CLOUDFLARE_API_TOKEN |
Cloudflare API token used by the cf CLI (not passed to the Worker) |
AUTH_SECRET |
Secret key used for session encryption (at least 32 characters) |
SERVER_URL |
Base API endpoint for Morino Party services (e.g. https://api.morino.party/). The server list is fetched from ${SERVER_URL}servers, and the first reachable server in that list is used as the MineAuth server |
CLIENT_ID |
MineAuth OAuth2 client ID (defined as a var in app/cloudflare.config.ts; set it in .env only to override it locally). The redirect URI to register on MineAuth is <origin>/api/auth/callback/MineAuth |
# Start the web app (TanStack Start + Vite)
pnpm dev
# Start Storybook dev server
pnpm dev:storybook
# Or run both concurrently
pnpm dev:all# Run Biome linter and formatter
pnpm check
# Build Storybook and the web app
pnpm build
# Preview production build locally
cd app && pnpm previewThe app is deployed with the cf CLI as the Worker moripath and served only on https://moripath.morinoparty.workers.dev (no custom domain).
.github/workflows/deploy-app.ymlrunscf buildandcf deploy --prebuilt --mode production --dry-run, and deploys to production on push tomain..github/workflows/preview.ymldeploys each PR withcf previews deployand comments the preview URL on the PR.
Secrets are read from GitHub Actions secrets: CLOUDFLARE_API_TOKEN and CLOUDFLARE_ACCOUNT_ID for the cf CLI, and AUTH_SECRET and SERVER_URL, which CI uploads as Worker secrets with cf deploy --secrets-file. Register them from your local .env:
gh secret set -f app/.envTo build and deploy manually (cf reads CLOUDFLARE_* from app/.env):
pnpm run deploy| Script | Description |
|---|---|
pnpm dev |
Start web application dev server (app) |
pnpm dev:storybook |
Start Storybook dev server (storybook) |
pnpm dev:all |
Start both web application and Storybook concurrently |
pnpm build |
Build Storybook and web application |
pnpm build:storybook |
Build Storybook static assets |
pnpm check |
Run Biome linter and formatter checks with autofix |
pnpm run deploy |
Build Storybook and deploy application via cf deploy |
pnpm cf-typegen |
Generate Cloudflare Worker environment bindings |
MoriPath utilizes Chlorophyll, Morino Party's component library and design token system. Color schemes and base tokens are defined in accordance with the Morino Party BaseToken specification.
Written in 2025-2026 by Morinoparty developer team. No Rights Reserved.
To the extent possible under law, morinoparty has waived all copyright and related or neighboring rights to MoriPath. This work is published from: Japan.
You should have received a copy of the CC0 Public Domain Dedication along with this software. If not, see http://creativecommons.org/publicdomain/zero/1.0/.
This CC0 dedication applies to the source code only. Non-code assets (images, icons, logos, and other media) are not covered and remain under their respective rights unless stated otherwise.