Laravel è un framework open-source per la creazione di applicazioni web PHP scalabili. È uno dei preferiti da molti sviluppatori grazie ai moduli utili per l’autenticazione, la gestione delle dipendenze, l’archiviazione di sessioni e cache, il routing e molto altro.

Laravel Forge rende più semplice la distribuzione e la configurazione delle applicazioni Laravel automatizzando il provisioning del server, l’installazione e la manutenzione del software e la distribuzione. Inoltre, dispone di funzioni di sicurezza avanzate come firewall e autenticazioni Secure Socket Shell (SSH).

Questo articolo illustrerà come funziona Laravel Forge, le sue caratteristiche principali e le opzioni di distribuzione e le differenze rispetto a Kinsta.

Come e Perché Usare Laravel Forge

Laravel Forge funge da server manager e permette di installare PHP, server Nginx, database MySQL e qualsiasi altra dipendenza senza doverli installare manualmente. Questo permette di inviare il codice molto più velocemente, semplificando le modifiche al server cloud.

Altri utilizzi sono:

  • Gestione di processi in background (daemon)
  • Esecuzione di applicazioni tramite script bash
  • Installazione di certificati SSL (Secure Socket Layer)
  • Pianificazione di attività cron

Come Funziona Laravel Forge?

Il nuovo ed efficiente design di Laravel Forge privilegia la semplicità e la facilità d’uso. Permette di scegliere un provider di hosting, come Digital Ocean, Linode o Rackspace, che fornisce un server in pochi minuti.

Ogni server contiene uno stack completo delle ultime versioni di PHP, Nginx, MySQL, PostgreSQL e librerie di caching come Redis. Una volta creato, il server permette di collegare la propria applicazione agli strumenti di versioning, come GitHub, GitLab o Bitbucket.

Laravel Forge aggiunge alla vostra applicazione uno script di distribuzione che può essere eseguito sui server con un solo clic. Questo garantisce una maggiore flessibilità ed efficienza nella distribuzione di applicazioni PHP e Laravel. Laravel Forge può anche gestire applicazioni in altri stack tecnologici, come Node.js.

Durante la distribuzione, Laravel Forge utilizza chiavi SSH per accedere ai server, eseguendo e installando tutte le ultime dipendenze software di cui l’applicazione ha bisogno. In questo modo è più facile cambiare provider di hosting in qualsiasi momento per aumentare o ridurre i server in base alla domanda.

Altre opzioni di distribuzione di Laravel Forge sono:

  • Script di distribuzione – Vengono utilizzati per eseguire i comandi del server. Questa opzione di deployment può essere modificata tramite l’interfaccia utente di Forge.
  • Distribuzione dallo strumento di Integrazione Continua (CI) – Gli utenti possono scegliere tra Forge CLI o Deployment Trigger per distribuire le loro applicazioni con Forge.

Come Distribuire con Laravel Forge

Per distribuire un’applicazione con Forge, create un account e scegliete uno dei tanti provider di server disponibili. Una volta che il server è stato configurato con la giusta posizione e il giusto piano di droplet, create un nome di dominio. Forge crea automaticamente tutte le dipendenze e le librerie necessarie installando le ultime versioni di PHP sul vostro server.

Nota: per connettervi a un provider cloud non fornito da Laravel Forge è necessaria una chiave API.

Successivamente, autenticatevi al controllo di versione di vostra scelta. In questo modo sarà facile migrare il codice del repository in Laravel Forge. Gli sviluppatori possono quindi contribuire al repository in modo collaborativo e le modifiche vengono distribuite automaticamente sul server.

Dopo aver collegato il repository, cliccate su Deploy Now per consentire al software Forge di eseguire lo script di deploy e configurare l’applicazione.

Un modo per distribuire un’applicazione utilizzando Laravel Forge è quello di utilizzare uno strumento CI. Una volta installato Forge CLI, potete utilizzare il comando deploy nel vostro ambiente CI. Avrete bisogno del token API di Forge per autenticarvi alla Forge CLI.

L’esempio che segue illustra come farlo in pochi passi utilizzando GitHub. Nella cartella del vostro progetto, create una cartella your-project/.github/workflows. Al suo interno, create un file forge.yml con il seguente contenuto:

name: Deploy

on:
  push:
    branches: [ main ]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      checkout@v2
      - name: Setup SSH
        uses: webfactory/[email protected]
        with:
          ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: 8.0
          tools: composer:v2
          coverage: none
      - name: Require Forge CLI
        run: composer global require laravel/forge-cli
      - name: Deploy Site
        run: |
          forge server:switch your-server-name
          forge deploy your-site-name.com
        env:
          FORGE_API_TOKEN: ${{ secrets.FORGE_API_TOKEN }}

Nota: è possibile consultare il codice di esempio qui. A questo punto, basta apportare le modifiche al ramo principale e lasciare che GitHub Actions esegua gli script di distribuzione.

Le variabili d’ambiente come le password del database e le chiavi segrete possono essere difficili da mantenere in un ambiente di produzione. Per proteggere i file del progetto, configurate le variabili d’ambiente del database e dell’applicazione in ogni file d’ambiente (.env) del progetto.

Vantaggi di Laravel Forge

I vantaggi per gli utenti di Laravel Forge includono:

  • Non limita gli utenti a una sola piattaforma di hosting. In questo modo è possibile distribuire facilmente molti progetti su diversi provider di hosting, a seconda delle proprie esigenze.
  • Utilizza lo script di deployment per eseguire automaticamente i requisiti dell’applicazione con le librerie più recenti senza doverle installare manualmente.
  • È coerente nelle impostazioni di configurazione e nei permessi e riduzione dei costi e degli errori di distribuzione. Questo permette agli sviluppatori di concentrarsi maggiormente sullo sviluppo dell’applicazione piuttosto che sulla manutenzione degli script e dei processi di distribuzione.
  • Fornisce sicurezza avanzata e innata del server dell’applicazione attraverso un firewall, chiavi SSH e isolamento dei dati per evitare fughe di informazioni.

Laravel Forge e Kinsta

Mentre Laravel Forge è responsabile della gestione dei server delle applicazioni, Kinsta è una piattaforma di gestione dell’hosting che permette di portare le richieste di hosting di applicazioni e database a un livello superiore. Se avete un sito WordPress gestito dal software Forge, è semplice migrare a Kinsta gratuitamente.

Kinsta offre diversi vantaggi ai suoi utenti, come ad esempio migliori strumenti di ottimizzazione delle attività di amministrazione, supporto DevOps per l’hosting di applicazioni e funzionalità Cloudflare per l’hosting di WordPress.

Kinsta offre tutto questo con strumenti enterprise e funzionalità premium per ogni piano senza costi nascosti.

Riepilogo

La distribuzione può essere complessa per le organizzazioni grandi e piccole. Ogni applicazione presenta delle difficoltà, come problemi di scalabilità, dipendenze ridondanti e complessità dei processi.

Laravel Forge rende l’hosting delle applicazioni semplice ed efficiente, agendo da intermediario tra gli sviluppatori e i server. Grazie alle varie opzioni di distribuzione, gli sviluppatori possono scegliere gli script di distribuzione o lo strumento CI per gestire i propri siti e server.

Come con Laravel Forge, la distribuzione delle app web con Kinsta è un gioco da ragazzi, ma in più avrete maggiore flessibilità, funzioni e piani tariffari. E la prova è gratuita!