Linux‑only interactive installer for the M12 Labs panel.
Handles the full lifecycle of a panel install: system dependencies, panel files, database setup, Laravel configuration, cron jobs, and workers. Future releases will extend support to additional panels.
bash <(curl -fsSL https://raw.githubusercontent.com/macery12/M12Labs-installer/main/setup.sh)Non‑interactive (skip confirmation prompt):
curl -fsSL https://raw.githubusercontent.com/macery12/M12Labs-installer/main/setup.sh | sudo bash -s -- -y- Verifies
gitandpython3are available. - Clones or updates this repo under
/opt/m12labs-installer. - Asks for confirmation before performing any privileged work.
- Re‑executes itself with
sudoif not already root. - Launches the interactive Python installer (
python3 -m installer.main).
- System dependencies – installs PHP 8.3, MariaDB, NGINX, Redis, Composer, and base tools.
- Panel files – downloads the M12 Labs panel release from
macery12/M12Labsand extracts it. - Database – creates the MySQL/MariaDB database and user.
- Laravel config – writes
.env, runscomposer install,key:generate, migrations, seeds, and admin user creation. - Cron + workers – adds a
www-datacron entry and installs ajxctl.servicesystemd worker.
Note:
setup.shperforms privileged operations (apt packages, system users, cron, systemd) and is intended for server‑style installs.
M12Labs-installer/
├── installer/ ← Active panel installer (Python, menu-driven)
│ ├── main.py ← Entry point / interactive menu
│ ├── config.py ← Config management (TOML)
│ ├── log.py ← File logger
│ ├── system.py ← Command execution and privilege helpers
│ ├── steps/ ← Install steps (deps, files, database, laravel, workers, nginx)
│ └── backup/ ← Backup helpers
├── archive/
│ └── installer/ ← Legacy TUI extension installer (archived, not active)
└── setup.sh ← Bootstrap: clones repo and runs installer/main.py
The installer is structured to support additional panels in future releases. New panel targets can be added as step modules under installer/steps/ or as separate top‑level installer modules.