@php $supportUpdateAuthUser = auth()->user(); $supportCanRunUpdate = $supportUpdateAuthUser && method_exists($supportUpdateAuthUser, 'hasAnyRole') && $supportUpdateAuthUser->hasAnyRole(['super-admin', 'admin', 'amministratore']); @endphp
Launcher esterno per update e sync Git
Usa questa pagina per lanciare aggiornamenti senza restare dentro la pagina completa Modifiche mentre Livewire e i file vengono riallineati. Il flusso principale da Gitea ora blocca nuove richieste, crea il backup pre-update, aggiorna DB e ricostruisce l'app prima di riaprire il nodo.
@if(! $supportCanRunUpdate)
I lanci update/sync sono abilitati solo per super-admin, admin e amministratore.
@endif
Refresh nodo da Gitea
Flusso consigliato per staging e nodi interni: backup, finestra protetta, sync Git, dipendenze, migrate e cache rebuild.
@if(! $this->ticketAttachmentMetadataReady)
Il nodo non ha ancora la colonna ticket_attachments.metadata. Finche non applichi le migration da questa pagina, GPS ed EXIF dei ticket non possono essere persistiti correttamente.
@endif
Aggiorna nodo completo da Gitea Aggiorna staging da Gitea Refresh di riserva senza maintenance Solo sync Git avanzata Aggiorna avanzamento refresh
Il pulsante Aggiorna staging da Gitea esegue il refresh completo del nodo: backup pre-update, maintenance mode per bloccare nuove operazioni utente, sync da Gitea, composer install, tentativo di build frontend se disponibile, migrate --force, pulizia cache, rebuild Blade e riapertura automatica del sistema.
Se la macchina remota fallisce su Maintenance mode non attivata, prima allinea il nodo con Solo sync Git avanzata e poi usa Refresh di riserva senza maintenance. E un percorso di recupero per nodi dove il blocco accessi Laravel non parte correttamente.
@if($this->updateInProgress)
@else
@endif
Avanzamento refresh nodo {{ (int) $this->updateProgressPercent }}%
{{ $this->updateProgressMessage }}
@if(filled($this->lastUpdateIssue))
{{ $this->lastUpdateIssue }}
@endif
@if(filled($this->lastUpdateOutput))
Output completo ultimo refresh nodo
{{ $this->lastUpdateOutput }}
@endif
Stato nodo
Repository Git sorgente: {{ $this->gitWorkspacePath ?? '-' }}
Branch locale: {{ $this->gitCurrentBranch ?? '-' }}
Commit deploy/ultimo sync: {{ $this->gitCurrentCommit ?? '-' }}
Data commit deploy: {{ $this->gitCurrentCommitDate ?? '-' }}
@if($this->gitStatusUsesSyncSummary && filled($this->gitSourceCommit) && $this->gitSourceCommit !== $this->gitCurrentCommit)
Commit repository sorgente cache: {{ $this->gitSourceCommit }}
Data commit repository sorgente: {{ $this->gitSourceCommitDate ?? '-' }}
@endif
Commit remoto: {{ $this->gitRemoteCommit ?? '-' }}
Data commit remoto: {{ $this->gitRemoteCommitDate ?? '-' }}
Tracking: {{ $this->gitAheadBehind }}
Aggiornamenti da caricare sul nodo: {{ $this->gitWorkspacePath === null && filled($this->pendingGitPreviewIssue) ? 'n/d' : (int) $this->pendingGitCommitCount }}
Commit locali da inviare: {{ (int) $this->gitAheadCount }}
Working tree: {{ $this->gitWorkingTreeDirty ? 'sporco' : 'pulito' }}
Ultima sync Git: {{ $this->lastGitSyncAt ?? '-' }}
Ultimo update: {{ $this->lastUpdateAt ?? '-' }}
Il flusso consigliato del nodo e: push su Gitea, poi "Aggiorna staging da Gitea" da questa pagina. I dati utente non vengono distribuiti via Git: per questo il launcher esegue prima il backup pre-update e poi una finestra di maintenance per evitare scritture concorrenti durante il riallineamento del nodo.
@if(filled($this->pendingGitPreviewIssue))
{{ $this->pendingGitPreviewIssue }}
@endif
Aggiornamento distribution
Usare solo quando il manifest update sul server distribution e valido.
Applica migration Lancia aggiornamento Lancia aggiornamento (riserva) Check connettivita update optimize:clear Rebuild view
@if($this->updateInProgress)
@else
@endif
Avanzamento aggiornamento {{ (int) $this->updateProgressPercent }}%
{{ $this->updateProgressMessage }}
@if(filled($this->lastUpdateIssue))
{{ $this->lastUpdateIssue }}
@endif
Esito e backup
Exit update: {{ $this->lastUpdateExitCode !== null ? $this->lastUpdateExitCode : '-' }}
Exit sync Git: {{ $this->lastGitSyncExitCode !== null ? $this->lastGitSyncExitCode : '-' }}
Backup snapshot: {{ $this->latestBackupSummary['snapshot_id'] ?? '-' }}
Backup creato il: {{ $this->latestBackupSummary['created_at'] ?? '-' }}
@if(filled($this->lastConnectivityCheckOutput))
Ultimo check connettivita
{{ $this->lastConnectivityCheckOutput }}
@endif