Benvenuto nell'installazione di Glastree
Questo wizard ti guidera nella configurazione dell'applicazione su questo server.
Verifica Requisiti di Sistema
Il sistema controlla che il server soddisfi i requisiti minimi per eseguire Glastree.
= e($check['name']) ?>
= $check['passed'] ? 'OK' : 'ERRORE' ?>
= e($check['message']) ?>
Requisiti critici non soddisfatti. Risolvi gli errori sopra e ricarica la pagina.
Alcuni requisiti non critici non sono soddisfatti. Puoi proseguire, ma alcune funzionalita potrebbero essere limitate.
$appUrl,
'db_host' => $dbHost,
'db_port' => (string) $dbPort,
'db_database' => $dbName,
'db_username' => $dbUser,
'db_password' => $dbPass,
]);
if ($envWritten) {
redirect('setup.php?step=4');
} else {
$errors[] = 'Impossibile scrivere il file .env.';
}
} else {
$errors[] = $result['message'];
}
}
} elseif ($action === 'test_existing') {
// Test existing database connection
$dbName = $_POST['db_name'] ?? '';
$dbUser = $_POST['db_user'] ?? '';
$dbPass = $_POST['db_pass'] ?? '';
$appUrl = $_POST['app_url'] ?? getBaseUrl();
if (empty($dbName) || empty($dbUser)) {
$errors[] = 'Compila tutti i campi obbligatori.';
} else {
$result = testDatabaseConnection($dbHost, $dbPort, $dbName, $dbUser, $dbPass);
if ($result['success']) {
$_SESSION['db_host'] = $dbHost;
$_SESSION['db_port'] = $dbPort;
$_SESSION['db_name'] = $dbName;
$_SESSION['db_user'] = $dbUser;
$_SESSION['db_pass'] = $dbPass;
$_SESSION['app_url'] = $appUrl;
$envWritten = writeEnvFile([
'app_url' => $appUrl,
'db_host' => $dbHost,
'db_port' => (string) $dbPort,
'db_database' => $dbName,
'db_username' => $dbUser,
'db_password' => $dbPass,
]);
if ($envWritten) {
redirect('setup.php?step=4');
} else {
$errors[] = 'Impossibile scrivere il file .env.';
}
} else {
$errors[] = $result['message'];
}
}
} else {
$errors[] = 'Azione non valida.';
}
}
renderHeader('Configurazione Database', '3');
?>
Configurazione Database
Configura la connessione al database MySQL.
= e($success) ?>
['--force' => true],
'migrate' => ['--force' => true],
'db:seed' => ['--force' => true],
'storage:link' => [],
];
$results = runArtisanCommands($kernel, $commands);
$allOk = true;
$log = [];
foreach ($results as $r) {
$log[] = ($r['success'] ? 'OK' : 'ERRORE') . ': ' . $r['command'];
if (!$r['success']) $allOk = false;
}
if ($allOk) {
$_SESSION['install_done'] = true;
$success = 'Installazione completata con successo!';
$log[] = 'Ora puoi creare l\'amministratore.';
} else {
$errors[] = 'Alcuni comandi sono falliti. Verifica i log.';
foreach ($log as $l) $errors[] = $l;
}
} catch (\Exception $e) {
$errors[] = 'Errore: ' . $e->getMessage();
}
} elseif ($mode === 'backup') {
// Handle backup upload
if (!empty($_FILES['backup_file']) && $_FILES['backup_file']['error'] === UPLOAD_ERR_OK) {
$uploadedFile = $_FILES['backup_file']['tmp_name'];
$originalName = $_FILES['backup_file']['name'];
$result = restoreFromBackup(
$uploadedFile,
$_SESSION['db_user'] ?? '',
$_SESSION['db_pass'] ?? '',
$_SESSION['db_name'] ?? ''
);
if ($result['success']) {
$_SESSION['install_done'] = true;
$success = 'Backup ripristinato con successo!';
$log = $result['log'] ?? [];
} else {
$errors[] = $result['message'];
if (!empty($result['log'])) {
foreach ($result['log'] as $l) $errors[] = $l;
}
}
} elseif (!empty($_POST['backup_path'])) {
// Backup file already on server
$serverPath = $_POST['backup_path'];
if (!file_exists($serverPath)) {
$errors[] = 'File non trovato: ' . $serverPath;
} else {
$result = restoreFromBackup(
$serverPath,
$_SESSION['db_user'] ?? '',
$_SESSION['db_pass'] ?? '',
$_SESSION['db_name'] ?? ''
);
if ($result['success']) {
$_SESSION['install_done'] = true;
$success = 'Backup ripristinato con successo!';
} else {
$errors[] = $result['message'];
}
}
} else {
$errors[] = 'Seleziona un file di backup o fornisci il percorso.';
}
}
}
renderHeader($mode === 'fresh' ? 'Installazione' : 'Ripristino Backup', '4');
?>
= $mode === 'fresh' ? 'Installazione Database' : 'Ripristino Backup' ?>
= e($success) ?>
Installazione completata. Procedi al passo successivo.
= $mode === 'fresh' ? 'Crea Amministratore' : 'Verifica Utenti' ?>
= e($success) ?>
Amministratore creato con successo!
Utenti configurati.
Utenti trovati nel database ripristinato:
- = e($u['name']) ?> <= e($u['email']) ?>>
= $u['is_admin'] ? 'Superadmin' : '' ?>
Puoi proseguire senza creare nuovi utenti.
oppure crea un nuovo amministratore:
[],
'route:cache' => [],
'view:cache' => [],
];
$results = runArtisanCommands($kernel, $commands);
$allOk = true;
foreach ($results as $r) {
if (!$r['success']) $allOk = false;
}
if ($allOk) {
// Self-destruct
selfDestruct();
$finalized = true;
} else {
$errors[] = 'Alcune operazioni sono fallite.';
}
}
} catch (\Exception $e) {
$errors[] = 'Errore: ' . $e->getMessage();
}
}
if (!$finalized && empty($errors)) {
// Initial display
renderHeader('Finalizzazione', '6');
?>
Finalizzazione
Completa l'installazione generando la cache e rimuovendo i file di setup.
Installazione Completata!
= $r['success'] ? '' : '' ?>
= e($r['command']) ?>
Glastree e stato installato con successo!
La cartella installer/ e stata eliminata per sicurezza.
Prossimi passi:
- Configura SSL con Let's Encrypt per connessioni sicure
- Accedi con le credenziali amministratore
- Vai su Impostazioni per configurare:
- Nome applicazione e logo
- Email (SMTP e IMAP)
- Repository remoti (Google Drive, Nextcloud)
- Vai su Admin per creare altri utenti
- Configura il cron per backup automatico:
* * * * * cd = e(dirname(__DIR__)) ?> && php artisan schedule:run >> /dev/null 2>&1