Minecraft server dashboard (Next.js)
Find a file
hurkicorgi b6cf8c7cdc Performance: RCON pooling, route caching, parallel status probe
Server:
- lib/cache.ts: tiny TTL memo for hot paths.
- lib/rcon.ts: pooled connection with 30s idle close and one-shot retry;
  was opening a fresh TCP per RCON call.
- /api/status: race protocol-ping + RCON with Promise.any (was sequential
  with 5s timeouts) and memo 3s; adds Cache-Control.
- /api/players: memo 10s, invalidated on mutations.
- /api/mods: getModDetails memo 10s (invalidated on install/remove) —
  eliminates per-request readdirSync/statSync/AdmZip parse.
- /api/analytics: reverse-scan JSONL to window cutoff (O(window) vs O(file))
  and memo 30s.
- /api/logs: memo 2s to throttle journalctl spawns during Live mode.

Client:
- StatusCard + ServerControls: staleTime 5s, both poll every 10s, dedup
  via shared query key.
- Analytics: staleTime 30s; memoize sparkline SVG paths.
- Modrinth search icons + mc-heads avatars: width/height + loading=lazy +
  decoding=async.
- next.config.ts: images.remotePatterns for future next/image migration,
  explicit compress=true.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 00:59:10 -06:00
app Performance: RCON pooling, route caching, parallel status probe 2026-04-13 00:59:10 -06:00
components Performance: RCON pooling, route caching, parallel status probe 2026-04-13 00:59:10 -06:00
lib Performance: RCON pooling, route caching, parallel status probe 2026-04-13 00:59:10 -06:00
public Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
scripts Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
.gitignore Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
AGENTS.md Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
bun.lock Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
CLAUDE.md Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
components.json Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
eslint.config.mjs Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
middleware.ts Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
next.config.ts Performance: RCON pooling, route caching, parallel status probe 2026-04-13 00:59:10 -06:00
package.json Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
postcss.config.mjs Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
README.md Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00
tsconfig.json Initial commit: Minecraft dashboard 2026-04-13 00:46:58 -06:00

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.