Playbook — sartUP (sviluppo diretto su VPS cPanel)

Playbook — sartUP (sviluppo diretto su VPS cPanel)

> Sequenza operativa ripetibile per sviluppare l'applicazione Admin direttamente sul VPS con cPanel: login esterno, RBAC (Spatie), menu dinamico e placeholder Industria 4.0. > Usalo in Cursor come lista di task (uno dopo l'altro).

---

0) Requisiti

  • VPS con cPanel configurato
  • PHP 8.2+, Composer 2.7+, Node 20+
  • Dominio sartup.it con SSL/TLS attivo (AutoSSL cPanel)
  • Database MySQL e utente creati in cPanel
  • File MD di riferimento (ordine):
  • 1. sartUP_setup_blade_spatie_native_auth.md (setup iniziale Laravel + auth) 2. sartUP_UI_Spec.md (specifiche UI/UX) 3. sartUP_menu_oriented_container.md (architettura menu) 4. sartUP_agent_env_cursor.md (configurazione ambiente) 5. Setup_VPS.md (guida setup VPS cPanel - LEGGERE PRIMA)

    ---

    1) Bootstrap progetto

  • [ ] Clona repo nella directory pubblica di cPanel (es. public_html/sartup)
  • [ ] Copia .env.example.env
  • [ ] Configura .env (DB_HOST, DB_DATABASE, DB_USERNAME, DB_PASSWORD, APP_URL=https://sartup.it)
  • [ ] composer install
  • [ ] php artisan key:generate
  • Esito atteso: app risponde su https://sartup.it

    ---

    2) Database & ruoli

  • [ ] php artisan migrate
  • [ ] php artisan db:seed --class=RolesSeeder
  • [ ] php artisan db:seed --class=SuperAdminSeeder
  • Esito atteso: utente root@sartup.local con ruolo super-admin creato

    ---

    3) Menu dinamico (seed iniziale)

  • [ ] php artisan db:seed --class=MenuSeeder
  • Esito atteso: topbar con Dashboard, Industria 4.0, Servizio (solo super-admin)

    ---

    4) Autenticazione

  • [ ] Apri /login e accedi come super-admin
  • [ ] Se l’utente ha >1 ruolo → scegli ruolo attivo (pagina select-role)
  • Esito atteso: redirect a /admin con topbar + sidebar attive

    ---

    5) UI vincolanti

  • [ ] Verifica login esterno (layout auth 1/3–2/3)
  • [ ] Verifica admin layout (topbar: logo+L1 a sx, profilo a dx)
  • [ ] Verifica sidebar 3 livelli + breadcrumb + titolo modulo
  • Esito atteso: breadcrumb coerente con il menù; pagina “Elenco macchine collegate” caricata

    ---

    6) Servizi ausiliari

  • [ ] php artisan storage:link
  • [ ] Configura cron job in cPanel per php artisan schedule:run (ogni minuto)
  • [ ] Se usi Redis/Horizon: configura supervisord o usa php artisan queue:work in background
  • [ ] Se usi S3/MinIO: verifica bucket sartup e configurazione .env (AWS_*)
  • Esito atteso: storage collegato; code operative (se configurate)

    ---

    7) Endpoint mock Industria 4.0

  • [ ] Conferma rotta /admin/i40/machines/connected (view placeholder)
  • [ ] (Fac.) Aggiungi rotte mock: /devices/enroll, /devices/heartbeat
  • Esito atteso: viste caricano; mock rispondono 200

    ---

    8) QA rapido

  • [ ] Login / Logout / Forgot funzionano
  • [ ] Servizio → Configurazione menù CRUD ok (solo super-admin)
  • [ ] RBAC: un utente operator non vede “Servizio”
  • Esito atteso: tutti i check verdi

    ---

    9) Ottimizzazione finale e verifica produzione

  • [ ] php artisan config:cache (cache configurazione)
  • [ ] php artisan route:cache (cache rotte)
  • [ ] php artisan view:cache (cache viste)
  • [ ] Verifica permessi: storage/ e bootstrap/cache/ scrivibili (775)
  • [ ] Controlla log: storage/logs/laravel.log per errori
  • Esito atteso: app ottimizzata e funzionante in produzione

    ---

    10) Note per Cursor (consigli)

  • Lavori direttamente sul VPS: niente Docker, niente deploy separato
  • Prima di iniziare: segui Setup_VPS.md per setup iniziale
  • Mantieni ordine dei file MD: 1 → 5
  • Applica gli snippet come file nella struttura cartelle proposta (menu-oriented)
  • Usa commit piccoli e descrittivi (es. feat(auth): native login, feat(menu): seed + crud, feat(rbac): spatie integration)
  • Comandi artisan vanno eseguiti da terminale SSH o tramite "Terminal" di cPanel
  • Testa direttamente su https://sartup.it dopo ogni modifica