Skip to content
morinopartyPublic

About

MoriPath is a service that provides information about Morinoparty as a web application.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Repository files navigation

MoriPath

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.

Features

  • 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.

Modules

Module Description
app Main web application (TanStack Start, Vite, Cloudflare Workers)
storybook Component catalog and documentation built with Storybook 10

Tech stack

  • TanStack Start / TanStack Router - full-stack React framework with SSR and file-based routing
  • React 19 / TypeScript 5.9
  • Cloudflare Workers (cf CLI / 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

Requirements

  • Node.js 26+
  • pnpm 12 (version pinned by packageManager in package.json)
  • Task (optional)

Development

Setup

# Install dependencies
pnpm install

# Setup git hooks
pnpm lefthook install

Environment variables

Copy 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

Running dev servers

# Start the web app (TanStack Start + Vite)
pnpm dev

# Start Storybook dev server
pnpm dev:storybook

# Or run both concurrently
pnpm dev:all

Build & check

# Run Biome linter and formatter
pnpm check

# Build Storybook and the web app
pnpm build

# Preview production build locally
cd app && pnpm preview

Deployment

The 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.yml runs cf build and cf deploy --prebuilt --mode production --dry-run, and deploys to production on push to main.
  • .github/workflows/preview.yml deploys each PR with cf previews deploy and 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/.env

To build and deploy manually (cf reads CLOUDFLARE_* from app/.env):

pnpm run deploy

Scripts

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

Design system

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.

License

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.

About

MoriPath is a service that provides information about Morinoparty as a web application.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages