Start
Overview
StackPanel is a self-hosted, cPanel-style control panel for a single Ubuntu 24.04 server. Deploy Laravel, PHP or static projects from git, point domains at them with free SSL, create databases, schedule cron jobs, keep queue workers running and keep an eye on the server, all from one focused interface.
provision.sh installs, its options and the resulting file layout.
GuideProjects & deploysThe project wizard, the project page, deploy scripts and webhooks.
HelpTroubleshootingDeploy keys, certificates, 502s, workers and lock-outs.
AccessStackPanel is available by requestEmail info@endor.digital with a little about your setup to get access to the repository.
What it does
| Area | What you get |
|---|---|
| Dashboard | Live CPU, memory, disk and load with 24-hour history, public and private IPs, OS and kernel, service health with one-click restart, and a "needs attention" list (failed deploys, expiring certificates, stopped workers). |
| Projects | Wizard: git repo → deploy key → domains → database → setup & deploy scripts → review, with a live setup log. Deploy button and history, editable deploy script (default git pull, one-click Laravel preset), .env editor, GitHub/GitLab webhook auto-deploy. |
| Domains | One nginx vhost per domain; sub-domains and www aliases; domains without a project are parked on a built-in page or listed for sale; Let's Encrypt certificates with DNS checks and auto-renewal. |
| Databases | Wizard to create a MySQL database, user, strong password and grants (all / read-write / read-only / custom). Reveal and rotate passwords, adopt existing databases, Adminer built in behind the panel login. |
| File manager | Browse, view, edit, upload (drag & drop), create, rename, move, delete, zip download and extract, jailed to the home path with .ssh folders hidden. |
| FTP accounts | One-click pure-ftpd install, then FTP logins jailed to a single folder (usually a project), with TLS required, quotas, disable/enable, password reset and live sessions. |
| Backups | Scheduled per-project bundles (files zip plus a compressed dump of each database), separate schedules for databases and files, kept on the server for N days and pushed to SFTP, FTPS, FTP or Dropbox. History with live logs, download, retry push and Backup now. |
| Cron & workers | Visual schedule builder with plain-English preview and next run times; Laravel scheduler template; run-now and output logs. Supervisor workers with queue:work, Horizon and Reverb templates. |
| Storage | Every disk and DigitalOcean volume with usage; format and mount volumes; move all projects onto a volume and back, verified and rollback-safe. |
| PHP versions | Installed versions with FPM state, memory and extensions; what uses each one; move usages between versions; add and remove versions. |
| Memory | RAM per service and per process, with copy-paste suggestions for MySQL, unused PHP versions, snapd and swap. |
| Logs | Server logs (nginx, PHP-FPM, MySQL, Supervisor, SSL, system) and per-domain logs. Each project gets its own Logs tab with storage/logs (Laravel entries grouped, with level filters) and live follow. |
| Fail2ban | Jails and banned IPs, unban, manual bans, a persistent whitelist and one-click "whitelist my IP". |
| Users | A main administrator from the server's .env, plus panel users with mandatory two-factor authentication. |
How it fits together
The panel runs in a single Docker container with host networking. Everything it manages lives on the server itself; the container reaches the host through nsenter. Your sites are served by the host's nginx and PHP-FPM, so they keep running even when the panel is stopped.
Because the container can act as root on the server, the panel's login is the security boundary. Use a strong password, turn on two-factor authentication and, once a panel domain with SSL is set up, bind the port to 127.0.0.1. See the security checklist.
Tech stack
Laravel 13 (PHP 8.4 in the container), a React 19 + React Router 7 single-page app, Tailwind CSS 4, SQLite for the panel's own state, a database-backed queue for long-running jobs, and Adminer for database browsing.