Minecraft server dashboard (Next.js)
Find a file
hurkicorgi cf467b26c7 Expanded scheduled tasks + keyboard shortcuts
- scripts/run-task.sh: dispatcher for say / backup / snapshot-prune with
  safe arg handling (message stripped of CR/LF, integer-clamped keep
  count). Logs to ~/logs/mc-dashboard/tasks.log (falls back to /tmp).
- New /api/schedule/tasks GET/POST/DELETE route: stores tasks as
  crontab lines with `# mc-task:<base64(json)>` marker so the UI can
  round-trip them. Strict server-side validation:
    - Cron expression regex (5 fields, * / N / N-N / N,N / */N)
    - say message: 1–120 chars, no newlines/backticks/shell quotes
    - snapshot-prune keep: integer 1–50
    - task id: 16-hex only
  Single-quote-escaped message in the generated shell command.
- ScheduledTasks UI under ServerControls (alongside the existing single
  ScheduledRestart): pick type (Announce / Backup / Prune snapshots),
  preset schedule (daily at HH:MM or every N hours), adds with one
  click. Tasks list shows human-readable schedule + "next in Xh" hint
  computed client-side. Hover-reveal Remove action.
- Admin keyboard shortcuts: when not typing,
    r — refetch the active tab's query keys (toast feedback)
    / — focus the first input/contenteditable in the active panel
    ? — toast the shortcuts cheat sheet
  Chord-free, mirrors existing ⌘K palette and Esc handlers.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 05:57:39 -06:00
app Expanded scheduled tasks + keyboard shortcuts 2026-04-13 05:57:39 -06:00
components Expanded scheduled tasks + keyboard shortcuts 2026-04-13 05:57:39 -06:00
lib SSE events bridge, PWA service worker, offline banner, lazy admin tabs 2026-04-13 05:48:00 -06:00
public SSE events bridge, PWA service worker, offline banner, lazy admin tabs 2026-04-13 05:48:00 -06:00
scripts Expanded scheduled tasks + keyboard shortcuts 2026-04-13 05:57:39 -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 Pass 3 first slice: mod update action, error boundaries, a11y, palette 2026-04-13 05:30:23 -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 Pass 3 first slice: mod update action, error boundaries, a11y, palette 2026-04-13 05:30:23 -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.