06 - CyberPanel-Aligned Build Approach
Why the old approach failed
The previous installer mixed unrelated stack choices (Apache/BIND) while the panel goals require an OpenLiteSpeed-first stack with PowerDNS and service-level orchestration. It also copied files directly into system paths without a reliable local staging layer for required service artifacts.
New approach (service-first)
HostingSignal now follows a CyberPanel-inspired model:
- Install and manage hosting services first.
- Keep panel UI as the control layer.
- Add explicit service adapters around real daemons and package tools.
- Use a local artifact root to stage/download open-source dependencies before install.
This keeps behavior predictable and makes install failures easier to isolate.
Installer pipeline
install.sh now boots the native production installer path for HS-Panel core services:
- Native core stack is installed directly on the OS (OpenLiteSpeed, MariaDB, PowerDNS, Postfix, Dovecot, Rainloop, phpMyAdmin).
- Local Docker sandbox remains optional and is invoked using
scripts/local_installer.py.
Default local bundle root: ./local/services
Required stack mapping
- Web server: OpenLiteSpeed (default) or LiteSpeed Enterprise (manual license path).
- Database: MariaDB or MySQL + phpMyAdmin.
- Cache: LSCache through OpenLiteSpeed stack.
- Email: Rainloop + Postfix + Dovecot.
- DNS: PowerDNS.
- Security: CSF, ModSecurity (OWASP CRS), ImunifyAV.
- File management: panel file manager + Pure-FTPd.
- PHP: multi-version packages (8.1/8.2/8.3 baseline).
- Other: Git, Let’s Encrypt.
CyberPanel reference usage
The installer stages a local clone of CyberPanel (stable) under:
./local/services/source/cyberpanel
Purpose:
- Compare module boundaries and service management flow.
- Reuse architecture ideas (service orchestration, not UI replacement).
- Keep HostingSignal UI and user journey unchanged.
Operations examples
# Native production run
curl -fsSL https://raw.githubusercontent.com/limbanidhairya/hostingsignal/main/install.sh | sudo bash
# Optional local sandbox core-only run
python3 scripts/local_installer.py --non-interactive --profile-set core --web openlitespeed --db mariadb
Notes
- Package names differ by distro and repository availability; installer logs unresolved packages and continues.
- LiteSpeed Enterprise is optional and requires your own license and binary deployment.
- This document describes the installation architecture and not UI changes.