Loading...
Servers
Loading servers...
Players & Stats
Mods & Resources
Mods, plugins, modpacks, resource packs, data packs and Bedrock packs for a server.
Search Results
Installed Mods/Plugins
Mods & Resources
Backups
Server Backup Settings
Loading server configurations...
All Backups
Loading backups...
Nodes
Machines that run game servers. Players always connect through this controller's address, so nodes on this network need no port forwarding or DNS records of their own. A node elsewhere (a VPS, another site) only lets this panel in. Nodes are kept on this panel's agent version automatically.
Loading nodes...
Users
Loading users...
System Settings
System Information
Version: -
Appearance
The panel's design for everyone, the login page included.
Games
Every game comes with GHS. Add a game to show it in the menu and when making servers (its files are downloaded when a server of it is made); hide it when you no longer host it.
Security
Admins without it set up are taken to set it up when they next sign in or reload the panel, and can do nothing else until they have. It cannot be turned off while this is on. Server managers can be required to use it one by one on the Users page.
Updates
Install a new GHS version from an update package (ghs-update-….zip, made by the
"Build update package" workflow). The package is checked before anything changes. Installing
saves the database, restarts the panel on the new version (about a minute) and goes back to
the current version if the new one does not start. Game servers keep running; other nodes
update their agent automatically afterwards.
Log of the last update
Network & Domains
Players connect with subdomain.primary-domain:port (or a game's own domain, below). Add one wildcard DNS record
(*.primary-domain → your public IP) and forward both port ranges (TCP and UDP) on your
router once; new servers then need no DNS or router changes. Without a domain, set the players'
address instead: players then connect with address:port. Servers in a proxy network
are only reachable through their proxy.
Player Guard
Firewall rules on this machine in front of every game port (the port ranges above): servers here and the relay to servers on other nodes alike. It turns away addresses that open too many connections or open them too fast (join floods, bots), and keeps banned addresses out of every server. Players banned by name are under Global Bans.
Banned addresses
Game Servers and the Local Network
Firewall rules on every node stop game servers opening connections to this network and other private addresses: routers, NAS boxes, databases, the machines' own services and cloud metadata. A server's plugins and mods can then only reach the internet. Players on the local network still join, and proxies still reach their servers on other nodes.
Addresses Without a Port
A Java server can also be reached as survival.example.com, without its port: GHS keeps an
SRV record for it at the DNS host of your domain. Turn it on per server in its Settings. Bedrock players
always need the port.
HTTPS for the Panel
Reach the panel at https:// with a free Let's Encrypt certificate, renewed automatically.
It keeps working over plain HTTP on this network as before. Servers' BlueMap web maps get
HTTPS too, at https:// and the server's address (the wildcard record covers them).
- A DNS record for the hostname below pointing at your public IP address (or a wildcard record for the primary domain, which already covers it)
- Ports 80 and 443 (TCP) forwarded on your router to this machine
- Optionally the ACME email above, for Let's Encrypt's notices
License Information
Controllers
Standby controllers on other machines keep a live copy of this panel's database, ready to take its place. With them, game servers run on nodes only, not on the controllers.
Sites
A site is one network with controllers on it (set each controller's site under Addresses). Its floating IP is an unused address on that network, held by whichever of its controllers is active: point the router's port forwards for players and the panel (game ports, 80 and 443, SFTP) at it, and a switch over needs no router change. Its public IP is only needed with controllers at more than one site.
Public API
Let your own website or billing system create and run servers, with its own accounts and payments: it calls this panel's API with a key. API documentation · API tester
Base address:
API Keys
Webhooks
GHS tells your system when a server is created, starts, stops, crashes, is suspended or backed up. Each delivery is signed with the webhook's secret (see the documentation).
Prometheus and Grafana
Charts of your servers, players, ticks per second, nodes and backups over time. GHS can install Prometheus (which keeps the history) and Grafana (which draws the charts) on this machine, already connected to this panel and with GHS's dashboard, and open Grafana here for admins.
Backup Storage
Network storage for backups (SMB shares such as a UniFi UNAS, SFTP or FTP servers). Each server picks where its backups go in its backup settings; servers that don't choose use the default. Backups are zipped on this server, then stored on the target.
Panel Backups
Backs up the panel itself - its database (servers, users, settings, schedules) and its secret key - to a storage target on another machine, so the panel can be restored if this machine fails. A full backup also has the files of the servers on this machine, so everything comes back in one go: a new panel's first screen offers "Restore from a backup".
Encryption
Encrypts the backups that leave this machine (panel backups, and server backups kept on backup storage) with a recovery key, so someone who gets into the storage cannot read them. Local backups stay plain zips, and downloads from the panel are always decrypted.
Restoring the panel
On a new machine: install GHS, open the panel and choose Restore from a backup on its first screen. Connect it to the same storage, pick a backup and it brings back the panel and, from a full backup, the servers' files; then sign in with your usual account.
Or, on the command line: download a backup's panel file here and, in the install's directory,
run sudo ./ghs.sh restore panel.tar (on a new machine
sudo ./ghs.sh restore --keys panel.tar, which puts this panel's secret key back
too). A backup holds the secret key: keep its storage somewhere only you can reach.
An encrypted backup (with encryption on, below) needs its recovery key: the first screen asks for
it, and so does ghs.sh restore panel.tar.enc. "Download panel file" gives it decrypted.
Email Notifications (SMTP)
Configure SMTP to receive email notifications for server events.
Discord Notifications
Send notifications to a Discord channel via webhook.
Setup Guide
- Open Discord and go to your server
- Right-click on the channel you want notifications in
- Click Edit Channel → Integrations
- Click Webhooks → New Webhook
- Name it "GHS Bot" and copy the Webhook URL
- Paste the URL below and save
CurseForge API Configuration
Configure your CurseForge API key to enable mod and modpack downloads from CurseForge.
How to Get Your API Key
- Visit CurseForge Developer Console
- Sign in to your CurseForge account (or create one)
- Click "Create Token"
- Enter a name (e.g., "GHS Server")
- Copy the generated token
- Paste it below and click Save
Steam Workshop
A Steam Web API key lets the panel search the Steam Workshop: tModLoader servers' Mods tab and Mods & Resources page get a Workshop browser, and adding a mod adds the mods it needs too. Without one, mods are still added by their Workshop ID or link.
How to get a key
- Open steamcommunity.com/dev/apikey and sign in with your Steam account.
- Enter a domain (your panel's address, for example
panel.example.com) and register. Steam shows your key. - Copy the key, paste it below and click Save key. The panel checks it with Steam before saving it.
Notification Events
Choose which events trigger notifications.
Global Ban List
Players on this list are banned from all servers. Only admins can manage global bans.
Loading global bans...
Activity Logs
View all user actions and system events. Logs are preserved even after users or servers are deleted.
Loading activity logs...
User Settings
Account Information
Username:
Role:
Email Address
You can sign in with it instead of your username; password resets and alerts go to it.
Change Password
Where You're Signed In
Sign out of a device you no longer use, or everywhere but here if you think someone else has your password (then change it).
Loading...
Version History
Loading...