I wanted a hosting control panel that was small, fast, and took isolation and
hardening seriously by default — not as an afterthought. So I built one:
AdminServer, a control panel for RHEL-family servers (AlmaLinux / Rocky /
RHEL 9–10). One server runs several isolated websites, all managed from the
browser — no SSH needed for everyday work.
Here's a look at it:
What it does
- Real per-account isolation — each account is its own Linux user and systemd slice, with CPU, memory, process and disk limits, enforced by SELinux. One site can't read another's files.
- A Security Center — 28+ hardening checks (firewall, SELinux, SSH, kernel, service isolation…), each explained in plain words and fixable in one click, with a safe rollback.
- Per-account and per-subdomain PHP & Node.js — runtimes are installed once, centrally, read-only; each site (and each sub-domain, as its own mini-site) picks its own version. Node apps run as the account, behind nginx over a private socket.
- Off-server backups — to MEGA or any S3-compatible storage (Backblaze B2, Wasabi, Cloudflare R2).
- The rest — drag-and-drop file manager + Monaco code editor, a web terminal that runs as the account, per-site databases + phpMyAdmin, DNS (PowerDNS), mail (Postfix/Dovecot), and Let's Encrypt.
- Signed self-update — updates are verified by checksum and an Ed25519 signature before install; a tampered package is refused.
- Bilingual — a full English and Arabic UI.
Try it
On a clean, throwaway AlmaLinux / Rocky / RHEL 9–10 VPS (as root):
bash
curl -fsSL https://aamrpr.github.io/adminserver-site/install.sh | sudo bash


Top comments (1)
tr.ee/dev-to