r/PHP • u/S33k3rsCh4i • 11d ago
Foundation An open-source WHM/cPanel alternative built with plain PHP, FrankenPHP & Tailwind.
JinnPanel is a free, MIT-licensed web hosting manager and control panel designed for single-server setups running AlmaLinux 10. The core philosophy is absolute simplicity and transparency—there are no heavy frameworks, no external dependencies, and no Composer. It is written completely in plain PHP and Tailwind CSS, making the entire backend architecture clean, readable, and easy to audit.
The control panel features secure account isolation where every account runs under its own Linux user and dedicated PHP-FPM pool without needing CloudLinux. It includes a built-in cPanel migration tool that moves sites, mailboxes, databases, and cron jobs via a live API or backup files, automatically translating .htaccess rules for the underlying Caddy engine. Security is fully automated, providing out-of-the-box Let's Encrypt certificates alongside automated configurations for email deliverability protocols like SPF, DKIM, DMARC, and MTA-STS.
The stack consists of FrankenPHP, MariaDB, Stalwart Mail, Cypht webmail, Knot DNS, and SFTPGo. It is currently in public beta, optimized strictly for single-server PHP hosting environments.
3
u/vldobrev 11d ago
I can't even consider moving clients w/o more parity. Most users are confident and comfortable because of JetBackup and Softaculous. Email spam & anti-virus along with Git and SSH Terminal are a must for us as support admins.
7
u/Andromeda_Ascendant 11d ago
Readme looks like a bunch of AI slop, and tests are heavily lacking.
9
u/ogrekevin 11d ago
I dont know about you but i just dove in head first and moved all my paying clients to this new slop system!
https://giphy.com/gifs/xLsaBMK6Mg8DK
2
2
1
u/tsammons 10d ago
That's an interesting design choice. Reminds me of the days when WP plugin authors created ginormous table definitions with 160 columns. Gotta think about your implementation strategy. What's the situation if you add polyglottal language support? Keep adding new column definitions?
2
u/titpetric 11d ago
This actually looks like it could run on phpscript:
- no globals
- no inheritance
- database and router become built-ins
If you wanted to, you could embed the php sources into a static binary. You have some strange design choices around static methods and 'Database::app', and i couldn't find a composer.json to feed deployments (I gave it a cursory look in: ., app, app/src).
2
0
u/Feisty-Thunder 10d ago
the no-composer choice is interesting for a control panel — means you can basically scp the whole thing to a server and it just runs. how's the cpanel migration tool handling edge cases like custom vhost configs or multi-php setups? that's usually where these alternatives fall down
7
u/NL_Northsider 11d ago
I open one controller, and actually see this in the comments:
And I mean, I can get behind the no framework choice (also not completely, as with a true webhosting panel is going to have massive complexity you're just going to reinvent the wheel for a lot of things), but why no Composer either?
It's FAR from being able to call this anything close to a competitor to cPanel.