Self-hosted server control panel

The control room for your own server.

Deploy from git. Point a domain, get SSL. Make the database, schedule the jobs, watch the load. StackPanel runs the Ubuntu server you already pay for, from one calm, fast interface.

Runs onUbuntu 24.04 LTS
ServesLaravel · PHP · static
Drivesnginx · PHP-FPM · MySQL 8
Ships asOne Docker container

How it works

Six layers.
One panel.

Every site you host sits on the same stack. StackPanel writes the config for each layer, checks it and reloads it, and leaves everything running as ordinary services on your server. Stop the panel and your sites keep serving.

01 · Your code

From repository to live site

Paste a git URL. The wizard creates a deploy key for that project, tests access, then sets up domains, database, queue worker and scheduler and provisions everything with a live log.

  • Laravel, plain PHP or static builds
  • Push-to-deploy webhooks for GitHub and GitLab
  • Every deploy kept with its full output
Projects & deploys

02 · nginx + SSL

Domains that just work

One vhost per domain, sub-domains and www handled, a DNS check before Let's Encrypt is asked for a certificate, and automatic renewal after that.

  • Every change tested with nginx -t, rolled back on failure
  • Park a domain or list it for sale with an enquiry page
Domains & SSL

03 · PHP-FPM

Several PHP versions, side by side

Pick a version per project. Add a new one from the panel, see exactly what uses each version, and move projects, cron jobs and workers across in one click.

  • Missing extensions flagged before you move
  • Pools run as the deploy user, OPcache on
PHP versions

04 · MySQL 8

Databases in one step

Database, user, strong password and grants in one wizard, then straight into the project's .env. Adminer is built in, behind the panel's login.

  • Reveal or rotate passwords; adopt existing databases
  • Localhost only; remote access is never opened
Databases

05 · Supervisor + cron

The work that runs while you sleep

Cron schedules with a plain-English preview and the next run times. Supervisor workers with templates for queue:work, Horizon and Reverb.

  • Run now, pause, live state and logs
  • Laravel scheduler in one click
Cron & workers

06 · Ubuntu 24.04

The machine underneath

Live CPU, memory, disk and load, services with restart buttons, a memory breakdown per process, fail2ban, logs, and DigitalOcean volumes you can move every project onto.

  • UFW and fail2ban configured at provisioning
  • Verified, rollback-safe storage moves
Storage & server tools

The panel

Calm by design.

Every screen links to the next. A project knows its domains, database, workers and cron jobs, so you never go hunting for where something lives. These are real screens from a running server.

Deploy

Push, and it's live.

Every deploy streams its output as it runs and stays in the history, with who or what started it.

Deploying
A deployment log in StackPanel

Domains

Every domain has a home.

Connected, parked or for sale, each with its certificate and expiry date in view.

Domains & SSL
The domains list in StackPanel

Monitor

The whole box, at a glance.

Live usage every three seconds, a 24-hour history and every service with a restart button.

Dashboard
The StackPanel dashboard

Backups

Backups that leave the building.

Separate schedules for databases and files, pushed offsite to SFTP, FTPS, FTP or Dropbox.

Backups
Backup history in StackPanel

PHP

Upgrade PHP without the dread.

See what runs on each version, then move it across, project by project or all at once.

PHP versions
PHP versions and their usages in StackPanel

Memory

Know where the RAM went.

Memory per service and process, with tuning you can copy when something's oversized.

Memory
Memory breakdown and suggestions in StackPanel
A deployment log in StackPanel
The domains list in StackPanel
The StackPanel dashboard
Backup history in StackPanel
PHP versions and their usages in StackPanel
Memory breakdown and suggestions in StackPanel
Projects › Atlas CRM › Deploymentsweb-01 · 2 vCPU · 4 GB

Specification

Everything you did
over SSH.

The full list, without the marketing. Each line links through to the docs if you want the detail.

Group 01

Sites

Projects
Laravel, PHP or static from any git host, through a six-step wizard. One read-only deploy key per project.
Deploys
git pull by default, a Laravel preset in one click, live output, full history, one deploy at a time.
Webhooks
Auto-deploy on push. GitHub HMAC signatures and GitLab tokens checked; other branches ignored.
Environment
Edit a project's .env in the browser. Passwords, keys and tokens stay masked until revealed.
Domains
Sub-domains and www, connected to a project, parked, or listed for sale with an enquiry button.
SSL
Let's Encrypt over the webroot method, a DNS check first, automatic renewal and an nginx reload after.
Databases
MySQL database, user, generated password and grant presets in one wizard. Reveal, rotate, adopt.
Adminer
Built in at /adminer/, only reachable while you're signed in to the panel.

Group 02

Files

File manager
Edit, upload, move, zip download and extract. Locked to the home folder; .ssh hidden.
FTP accounts
Upload access to one folder for a designer or client. TLS required, quotas, live sessions.
Backups
One bundle per project: the files plus a dump of every linked database. Separate schedules for each.
Offsite
Pushed to SFTP, FTPS, FTP or a Dropbox app folder, with retention set per location.

Group 03

Automation

Cron jobs
Visual builder, a plain-English preview and the next three runs. Run now, pause, keep output.
Queue workers
Supervisor programs with templates for queue:work, Horizon, Reverb and Node.

Group 04

Server

Monitoring
CPU, memory, disk and load every three seconds, 24 hours of history, services with restart.
PHP versions
Install and remove versions from the panel. Move projects, cron jobs and workers between them.
Storage
Format and mount DigitalOcean volumes. Move every project onto one, verified, with rollback.
Memory
RAM per service and per process, with MySQL and PHP-FPM tuning suggestions to copy.
Logs
nginx, PHP-FPM, MySQL, Supervisor and Laravel logs, live follow, restart after a config test.
Fail2ban
Jails, bans, unbans and a permanent whitelist, including one click for your own IP.

Group 05

Access

Owner
The main login lives in the server's .env, never in the database. Optional 2FA.
Team
Extra users with mandatory TOTP 2FA, instant disable, and their name on every deploy they start.
Panel domain
The panel on its own domain and port with HTTPS, never on 80 or 443.
Updates
Check and install from Settings. The update runs on the host; your sites stay up.

Security

Security

A control panel holds the keys to the building. So StackPanel behaves like it.

Login

The owner isn't in the database

The main login lives in the server's .env. It can't be edited, disabled or exposed through the UI or API.

2FA

Two factors for everyone else

Team members enrol in TOTP before the panel will answer a single other request.

Secrets

Sealed at rest

Database, FTP and webhook secrets are encrypted, shown once on request and scrubbed from every log.

Web root

Never the project root

nginx only serves a sub-folder such as public, so .env and vendor can't be fetched.

nginx

Changes you can't break

Every config is tested with nginx -t before reload, and the previous file comes back if it fails.

Network

A port only you know

The panel answers on its own port, never 80 or 443, so you can fence it off at the firewall.

Getting started

Ten minutes from
a blank droplet.

  1. Request access

    Email us about your setup. StackPanel is available by request, and approved accounts get access to the private repository.

  2. Provision a fresh server

    One script installs nginx, PHP, MySQL, certbot, Supervisor and Docker, sets up the firewall and starts the panel.

  3. Sign in and deploy

    Open the URL it prints, turn on two-factor authentication and create your first project.

Installation guide

Questions

Before you ask.

Who is StackPanel for?

Developers and small agencies who host Laravel and PHP sites on their own VPS, and want a hosting panel's convenience without giving up control of the server.

How do I get it?

StackPanel is available by request. Email info@endor.digital with a little about your setup. Once you're approved you get access to the private repository and can follow the installation guide.

Which servers does it support?

A fresh Ubuntu 24.04 server with root access. It's developed and run on DigitalOcean droplets; 1 GB of RAM works, 2 GB or more if you build front-end assets on the server. One panel manages one server.

Do my sites run inside Docker?

No. Only the panel runs in a container. Your sites are served by the server's own nginx and PHP-FPM, with MySQL on the host, so you get native performance and can still work by hand when you want to.

What happens to my sites if the panel stops?

They keep running. nginx, PHP-FPM, MySQL, cron and Supervisor are ordinary services on the server. StackPanel writes their config; it isn't in the request path for your sites.

Can my team use it?

Yes. The owner adds users, who must set up two-factor authentication on first sign-in. They can manage sites; only the owner manages users and server settings.

How is it updated?

From Settings: check for updates, then update now. The update runs on the host and rebuilds the panel's container; the page reconnects when it's back. Sites, workers and cron jobs keep running throughout.

Access

By invitation.

StackPanel isn't a sign-up form. Tell us about the servers you run and what you host, and we'll get you set up with access.