Ghassan Yusuf 84cd474bcb Rebuild desktop shell on the real AdminLTE 4 package
Install admin-lte@4.1.0 (+ bootstrap 5.3.8, bootstrap-icons as peer deps) and
rebuild every desktop component against actual AdminLTE markup pulled from
its live docs/demo, rather than a Tailwind approximation:

- Real app-wrapper/app-header/app-sidebar/app-main/app-footer structure
- Working PushMenu (sidebar collapse), Treeview, ColorMode (light/dark/auto)
- Navbar: functional search (wired to Users list ?search=), notifications
  dropdown (MQTT-driven), user menu dropdown
- Sidebar: grouped nav-header sections, active-route highlighting
- Breadcrumbs, footer, Bootstrap card/table/pagination/progress widgets

Tailwind is now imported utilities-only (no preflight) so it coexists with
Bootstrap's reset; mobile shell and modals are untouched and still Tailwind.
2026-08-04 13:47:02 +03:00
2026-08-04 11:26:25 +03:00
2026-08-04 11:26:25 +03:00
2026-08-04 11:26:25 +03:00
2026-08-04 11:26:25 +03:00
2026-08-04 11:26:25 +03:00

webappAIO LXC Bootstrap

Spin up a fully configured development container in one step: SSH, Apache/PHP/SQLite, the Laravel API backend (backend/) + React/Vite frontend (frontend/) from this repo, a self-hosted Mosquitto MQTT broker (Docker), code-server, and Claude Code — all from a single command pasted into a fresh Proxmox LXC.

Quick start

In an empty, freshly created LXC, logged in as root:

curl -fsSL https://git.innovator.bh/ghassan/webappAIO/raw/branch/main/bootstrap.sh -o bootstrap.sh && bash bootstrap.sh

You'll be prompted for:

  • Project name
  • Seeded Super Admin email/username/password

The script always clones this repo (https://git.innovator.bh/ghassan/webappAIO.git) — the full RBAC + 2FA + MQTT-realtime + Users-management app described in claude-project-prompt.md — and always uses SQLite. Neither is prompted for.

When it finishes you'll have a running API, a Mosquitto broker, code-server, and Claude Code installed, plus a Super Admin account ready to log in with.

Fully unattended install

Skip every prompt by exporting variables before running the script (useful for scripted LXC provisioning):

APP_NAME=myapp \
SUPER_ADMIN_EMAIL=admin@myapp.test \
SUPER_ADMIN_USERNAME=admin \
SUPER_ADMIN_PASSWORD='change-me' \
INSTALL_CODE_SERVER=yes \
INSTALL_CLAUDE_CODE=yes \
bash bootstrap.sh
Variable Description Default
APP_NAME Project directory name under /var/www laravel-app
SUPER_ADMIN_EMAIL Seeded Super Admin email superadmin@example.com
SUPER_ADMIN_USERNAME Seeded Super Admin username superadmin
SUPER_ADMIN_PASSWORD Seeded Super Admin password random
INSTALL_CODE_SERVER Install code-server yes
INSTALL_CLAUDE_CODE Install Node.js + Claude Code yes
FIX_SSHD Auto-relax sshd config (TurnKey TCP forwarding / Ubuntu root login) yes

What the script does

  1. Base systemapt update/upgrade, installs sudo curl git wget unzip.
  2. SSH — installs and enables openssh-server; on TurnKey Core containers enables AllowTcpForwarding, on other distros enables PermitRootLogin yes (needed for VS Code Remote-SSH / port tunneling).
  3. Docker + Mosquitto — installs Docker Engine + Compose plugin, generates per-role Mosquitto broker credentials, brings up the mosquitto container (MQTT on 1883, WebSockets on 9001).
  4. Laravel + React stack — Apache, PHP + SQLite extension, Composer, Node.js, clones this repo into backend/ (Laravel) and frontend/ (Vite React-TS), sets permissions, configures an Apache vhost pointing at backend/public, generates .env (DB, MQTT, Super Admin, Sanctum/CORS), runs key:generate, migrate, and db:seed.
  5. Queue worker — installs and starts a systemd unit (<app-name>-queue) running php artisan queue:work, required for MQTT events to actually publish.
  6. code-server — browser-based VS Code, so you can edit the app over SSH without a local editor.
  7. Claude Codenpm install -g @anthropic-ai/claude-code.
  8. Prints a summary with the app path, container IP, Super Admin credentials, and next steps.

After install

  • Edit the app: code-server /var/www/<app-name> then open the tunneled port (8080) in your browser.
  • Use Claude Code: cd /var/www/<app-name> && claude
  • Run the frontend dev server: cd /var/www/<app-name>/frontend && npm run dev -- --host then tunnel port 5173.
  • Log in: the Super Admin credentials printed at the end of setup (also in backend/.env as SUPER_ADMIN_*).

Manual SSH config notes (if you skip FIX_SSHD)

TurnKey Core:

nano /etc/ssh/sshd_config.d/turnkey.conf
# set: AllowTcpForwarding yes

Ubuntu:

nano /etc/ssh/sshd_config
# set: PermitRootLogin yes

Standard Claude Code project prompt

For a consistent architecture baseline (mobile-first React frontend, Laravel API backend, RBAC, MQTT real-time updates, SQLite↔PostgreSQL portability, security-first defaults), start every new Claude Code session in the project with claude-project-prompt.md as the system/instruction prompt.

Description
No description provided
Readme 324 KiB
Languages
PHP 34.9%
TypeScript 33.7%
Blade 23.8%
Shell 4.2%
CSS 3.2%
Other 0.2%