Panel. Daemon. Billing.One stack. Zero glue.

grnd0 fuses the pyrodactyl panel, the elytra daemon, and Paymenter billing into one self-hosted process.

ONE LOGINONE DATABASEWINGS-COMPATIBLE NODESPTERODACTYL EGGS WORKNO WHMCS BRIDGEMIT LICENSEDSELF-HOSTEDONE LOGINONE DATABASEWINGS-COMPATIBLE NODESPTERODACTYL EGGS WORKNO WHMCS BRIDGEMIT LICENSEDSELF-HOSTED

× THE STACK TAX

Three apps to host one server.

AUTH SPRAWL001

Three logins, one customer.

A player buys a server in your store, then needs a second account to reach its console.

SPLIT STATE002

Two databases, one truth.

Billing knows the invoice. The panel knows the server. When a payment fails, they disagree for hours.

GLUE CODE003

One bridge, always rotting.

A WHMCS module or cron script keeps both sides synced, until an update quietly breaks it.

Order in. Server up. Paid.

Provisioning is a database row, not a webhook chain.

PLAYER ORDERvanilla-1.21 / 8 gbpaid with stripe
grnd0
  • billingmarks INV-1042 paid
  • panelwrites the server row
  • daemonboots eu-01:25565
ONE PROCESS / ONE DATABASE
GAME SERVER LIVE dirtblock onlineconsole, files, backups
ON PAYMENT
The server row is created, the daemon boots it, the player gets credentials.
ON LAPSE
The server suspends itself the hour the invoice goes overdue. Nothing to reconcile.
ON CANCEL
Allocation freed, files archived for thirty days, then the row is gone.

× THE SURFACE

Everything a host touches.

[ 01 ]

Live console

Stream stdout over websockets, send commands, watch crash loops as they happen.

[ 02 ]

Billing that provisions

A paid invoice creates the server. A lapsed one suspends it. No module in between.

[ 03 ]

Node fleet

Enroll elytra nodes, watch allocation and health from the same screen you deploy from.

[ 04 ]

Eggs, unchanged

Existing Pterodactyl eggs install as-is. Your game library carries over on day one.

[ 05 ]

Schedules and backups

Cron-style restarts, wipes, and snapshots per server, stored where you point them.

[ 06 ]

A storefront players see

Paymenter's checkout, themed to your host, selling plans the panel actually enforces.

× FIRST BOOT

Running in three moves.

GRND0 / FIRST BOOT
$ docker compose up -d
pulling grnd0/core ............ done
migrate: 41 tables, one schema
panel listening on :8080 [ok]
PANELpyrodactyl, react
DAEMONelytra, wings-compatible
BILLINGpaymenter, gateway-native
RUNTIMEdocker, per-server isolation
ENGINES3panel, daemon, billing
PROCESSES1one compose file
DATABASES1postgres or sqlite
BRIDGES0nothing left to sync

Frequently asked questions.

01What is grnd0?

A self-hosted game server stack: the pyrodactyl panel, the elytra daemon, and Paymenter billing compiled into one application with one database.

02Do my Pterodactyl eggs work?

Yes. Eggs import unchanged, including install scripts, variables, and startup commands.

03Can existing Wings nodes join?

elytra speaks the Wings API. Re-enroll a node and its servers migrate in place.

04Which payment gateways work?

Everything Paymenter supports: Stripe, PayPal, Mollie, and the community gateway list.

05What does it run on?

One Linux box with Docker for the stack, plus any number of nodes for game servers.

06How do I migrate?

An importer reads your existing panel and billing databases and recreates servers, users, plans, and allocations.

07What is the license?

MIT. Self-host it, fork it, build a hosting business on it.

08Why the name?

Ground zero: the point where the stack starts over as one piece.

grnd0

Collapse the stack.