Panel

Overview

The Panel is a Next.js dashboard for managing game servers, nodes, users, and more.

The Panel is a web-based control panel built with Next.js 16, React 19, and Better Auth. It connects to MySQL for persistence and communicates with Wings nodes for game server control.

Features

  • Server management - Create, start, stop, restart, and delete game servers
  • Real-time console - WebSocket-based live console output and command input
  • File manager - Browse, edit, upload, download, and delete server files via Wings API
  • User management - Admin console for managing panel users and roles
  • Node management - Register and monitor Wings nodes and their port allocations
  • Eggs / Nests - Game server templates based on the Pterodactyl egg format
  • Minecraft plugins & mods - Browse and install Modrinth resources onto a server, for eggs an admin has opted in (see Plugins & Mods)
  • Schedules - Cron-based automated tasks (power actions, commands, backups)
  • Backups - Local and S3-compatible server backups
  • Activity logs - Audit trail for all user and system actions
  • API key management - Per-user API keys via Better Auth

System Requirements

MinimumRecommended
OSUbuntu 22.04 / Debian 12Ubuntu 22.04 LTS
CPU1 vCPU2 vCPU
RAM512 MB1 GB
Disk5 GB20 GB

Docker is required. The Panel and MySQL both run as Docker containers - Docker must be installed and running on the host.

Running Wings on the same host as the Panel is possible but not recommended. Resource contention between game servers and the Panel can cause instability under load.

Admin Panel

The admin section (/admin) is restricted to users with the admin role. From here you can manage:

  • Nodes and their allocations (IP:port assignments)
  • Nests and Eggs (server templates)
  • Database hosts for server-managed databases
  • All users and all servers

Technology Stack

LayerTechnology
FrameworkNext.js 16, React 19
AuthBetter Auth (sessions + API keys)
APIoRPC (type-safe RPC over HTTP)
DatabaseMySQL via Drizzle ORM
Node agentWings (REST + WebSocket)
DeploymentDocker Compose

On this page