final stage
This commit is contained in:
@@ -6,12 +6,22 @@ Laravel 13 / PHP 8.4 project for parish management (Glastree). Full codebase exi
|
||||
---
|
||||
|
||||
## Issues Open
|
||||
1. **Drive-Segreteria-ADIM (#3)**: Root ha 0 elementi. Verificare root_folder_id nelle impostazioni repository.
|
||||
2. **Nextcloud_MB (#4)**: Connessione "Unauthorized" dopo fix authType — credenziali da verificare (username con @).
|
||||
3. **Nextcloud username**: L'utente ha `@` nel nome utente. Sabre DAV Client usa `CURLOPT_USERPWD` → `user:password` in Basic Auth, il `@` non causa problemi in questo contesto (non è in una URL).
|
||||
*Nessuna issue aperta.*
|
||||
|
||||
---
|
||||
|
||||
### 01 Giugno 2026 - Guida Docker in Help Page
|
||||
- **Aggiunto**: Nuovo tab "Docker" nella pagina `/help` con guida completa per creare un'immagine Docker
|
||||
- **Contenuto**:
|
||||
- Due opzioni affiancate: SQLite (leggero/demo) e MySQL (standard/produzione)
|
||||
- Dockerfile basato su `php:8.4-apache` con pdo_mysql + pdo_sqlite, composer, asset compilati
|
||||
- Entrypoint script `docker-entrypoint.sh` che rileva automaticamente `DB_CONNECTION` e configura .env di conseguenza; attende MySQL via PDO poll se necessario
|
||||
- Seeder `DockerBaseDataSeeder` con tipologie documenti (7), tipologie eventi (8) e ruoli (8)
|
||||
- Docker Compose in due varianti (Opzione A — SQLite, Opzione B — MySQL con healthcheck e volume separato)
|
||||
- Istruzioni build, avvio con `-f` per scegliere il compose, e creazione primo utente amministratore via CLI
|
||||
- **Files modificati**:
|
||||
- `resources/views/help/index.blade.php`: tab-pane `#help-docker` riscritto con doppia opzione SQLite/MySQL
|
||||
|
||||
|
||||
|
||||
## System Status
|
||||
@@ -223,8 +233,7 @@ php artisan route:list --name=email
|
||||
---
|
||||
|
||||
## Known Issues / TODO
|
||||
1. SMTP authentication con Infomaniak - verificare credenziali corrette
|
||||
2. Invio email richiede password SMTP corretta nel form impostazioni
|
||||
*Nessuna issue nota.*
|
||||
|
||||
---
|
||||
|
||||
@@ -1002,4 +1011,79 @@ php artisan route:list --name=email
|
||||
- `routes/web.php`: aggiunta route `storage-repositories.import`
|
||||
- `resources/views/documenti/index.blade.php`: pulsanti Salva in grid+list, funzione `importRepoFile()`, variabile JS `cartelle`
|
||||
|
||||
(Last updated: 29 Maggio 2026 - Import file remoto come documento locale)
|
||||
(Last updated: 01 Giugno 2026 - Sistema Backup Completo + Help Header + Script Migrazione)
|
||||
|
||||
### 01 Giugno 2026 - Sistema Backup Completo per Migrazione
|
||||
|
||||
- **Header navbar**: Aggiunta icona `fa-question-circle` che linka a `route('help')` — posizionata nella navbar superiore prima della campanella notifiche
|
||||
- **Sidebar**: Aggiunto link "Backup" sotto Admin (protetto da `canManage('settings')`)
|
||||
- **BackupController** (`app/Http/Controllers/Admin/BackupController.php`): 8 metodi:
|
||||
- `index()` — lista backup + form config
|
||||
- `run()` — esegue backup manuale
|
||||
- `download(filename)` — scarica ZIP
|
||||
- `destroy(filename)` — elimina backup
|
||||
- `updateConfig()` — salva impostazioni backup
|
||||
- `toggleAuto()` — abilita/disabilita backup automatico
|
||||
- `saveAutoConfig()` — salva frequenza e ora backup automatico
|
||||
- `downloadMigrationScript()` — (JSON) restituisce script di migrazione
|
||||
- **Backup view** (`resources/views/admin/backup/index.blade.php`):
|
||||
- Tabella backup con file, data, dimensione, contenuto, azioni (scarica/elimina)
|
||||
- Card configurazione: percorso, ritenzione, toggle files/.env
|
||||
- Card backup automatico: toggle on/off, frequenza (daily/weekly/monthly), ora
|
||||
- Card migrazione: link alla guida
|
||||
- Alert informativo sul cron necessario
|
||||
- **BackupRunCommand** (`app/Console/Commands/BackupRunCommand.php`): `php artisan backup:run` con opzioni `--filename=`, `--no-files`, `--no-env`
|
||||
- **Console scheduler** (`routes/console.php`): backup automatico con `dailyAt()` e `withoutOverlapping()`, controlla `backup_auto_enabled`
|
||||
- **Route backup** (7 rotte sotto `admin/`):
|
||||
- `GET /admin/backup` → backup.index
|
||||
- `POST /admin/backup/run` → backup.run
|
||||
- `GET /admin/backup/download/{filename}` → backup.download
|
||||
- `DELETE /admin/backup/{filename}` → backup.destroy
|
||||
- `POST /admin/backup/config` → backup.updateConfig
|
||||
- `POST /admin/backup/toggle-auto` → backup.toggleAuto
|
||||
- `POST /admin/backup/save-auto` → backup.saveAutoConfig
|
||||
- **Guida help**: Nuovo tab "Backup e Migrazione" con:
|
||||
- Spiegazione contenuto backup (tabella)
|
||||
- Backup via UI e via CLI
|
||||
- Backup automatico e requisiti cron
|
||||
- **⚠️ Avviso APP_KEY**: blocco informativo su rigenerazione
|
||||
- **Procedura migrazione completa** in 12 passi (LAMP)
|
||||
- Riferimento a `installa-glastree.sh`
|
||||
- **PHP Web Installer** (`installer/`):
|
||||
- Sostituisce il vecchio script bash, ora rimosso
|
||||
- **index.php**: entry point — se .env esiste, redirect a login; altrimenti avvia wizard
|
||||
- **setup.php**: wizard multi-step con sessione PHP, routing via `?step=N`
|
||||
- **functions.php**: 15 helper functions
|
||||
- **assets/style.css**: stile AdminLTE-like, responsive
|
||||
- **Step 1 — Benvenuto**: scegli Fresh Install o Restore da Backup (option cards)
|
||||
- **Step 2 — Requisiti**: verifica PHP 8.2+, estensioni (pdo_mysql, mbstring, xml, curl, zip, gd, fileinfo), permessi storage e bootstrap/cache
|
||||
- **Step 3 — Database**: due modalita:
|
||||
- A: Crea nuovo (root MySQL → crea DB + utente)
|
||||
- B: Usa esistente (test PDO → salva .env)
|
||||
- **Step 4 — Installazione**:
|
||||
- Fresh: `key:generate`, `migrate`, `db:seed`, `storage:link` via bootstrap Laravel
|
||||
- Backup: upload ZIP o percorso server → extract, import SQL, copy files, merge .env
|
||||
- **Step 5 — Amministratore**:
|
||||
- Fresh: form creazione super-admin (nome, email, password con validazione)
|
||||
- Backup: mostra utenti esistenti dal DB, opzione salta o crea nuovo
|
||||
- **Step 6 — Finalizzazione**: `config:cache`, `route:cache`, `view:cache`, **self-destruct** (elimina installer/)
|
||||
- **Sicurezza**: self-destruct dopo installazione, blocco re-install se .env esiste, CSRF token, HTTPS warning, password mai esposte in HTML dopo invio
|
||||
- **Migration backup**: `2026_06_01_100155_add_backup_settings_to_app_settings` estesa con `backup_auto_enabled`, `backup_auto_frequency`, `backup_auto_hour`
|
||||
- **.env.example**: aggiornato — default MySQL invece di SQLite, locale it, righe minime essenziali
|
||||
- **Guida Installazione**: nuovo tab nella help page con:
|
||||
- Requisiti server (tabella)
|
||||
- Installazione passo-passo (LAMP, clone, composer, Apache, wizard)
|
||||
- Spiegazione delle due modalita (fresh/backup)
|
||||
- Cosa fare dopo (SSL, configurazione, cron)
|
||||
- Risoluzione problemi comuni (500 error, APP_KEY, mod_rewrite)
|
||||
- **Files creati** (installer/):
|
||||
- `installer/index.php`
|
||||
- `installer/setup.php`
|
||||
- `installer/functions.php`
|
||||
- `installer/assets/style.css`
|
||||
- **Files rimossi**: `installa-glastree.sh`
|
||||
- **Files modificati**:
|
||||
- `.env.example`: default MySQL, pulizia righe superflue
|
||||
- `database/migrations/2026_06_01_100155_add_backup_settings_to_app_settings.php`: +3 colonne auto-backup
|
||||
- `resources/views/help/index.blade.php`: nuovo tab Installazione
|
||||
- **Stato**: ✅ PHP syntax OK su tutti i file. ✅ view:cache OK. ✅ 7 route backup registrate. ✅ `php artisan backup:run` registrato. ✅ installer/ struttura completa.
|
||||
|
||||
Reference in New Issue
Block a user