finds.dev← search

// the find

Ctrlpanel-gg/panel

★ 506 · PHP · MPL-2.0 · updated May 2026

Free, easy-to-use billing solution for hosting providers with seamless Pterodactyl Panel integration

CtrlPanel is a Laravel-based billing and client portal that sits in front of a Pterodactyl game-server hosting panel. It handles credit purchases, server ordering, invoicing, and Discord verification — the full stack a small hosting provider needs to take money and provision servers without writing it themselves. Only works with Pterodactyl; if you're on Pelican or anything else, stop reading.

The payment gateway abstraction is done right — each gateway (Stripe, PayPal, Mollie, MercadoPago) lives in its own directory with its own migrations and routes, so adding a new one doesn't touch core code. The extension system via AbstractExtension and ExtensionServiceProvider follows a real plugin pattern, not a hook-riddled mess. Migration history goes back to 2021 and is continuous, which means you can actually run a fresh install without hand-holding the DB. The referral, voucher, and coupon systems are first-class models, not afterthoughts bolted on.

Pterodactyl hard-lock is a real adoption risk — the project explicitly says no Pelican support and the Pterodactyl project itself has been in a rocky state; you're betting on a specific panel's survival. Docker support is labeled beta/experimental and not officially documented, which in 2026 means you're on bare-metal Linux or you're on your own. The settings architecture mixes a legacy flat `settings` table with typed Settings classes, and there's a `LegacySettingsMigration` class to paper over it — that kind of dual-system always creates confusion about which one is authoritative. No mention of multi-tenancy or white-labeling, so if you're running this as infrastructure for multiple brands, you're forking it.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →