In questa guida vedremo insieme il processo di impostazione e configurazione di una prima applicazione Ruby on Rails versione 7.1 da distribuire e ospitare su Kinsta. Che siate alle prime armi o degli sviluppatori esperti di Ruby on Rails, questo tutorial vi aiuterà a iniziare a distribuire la vostra applicazione su Kinsta.

Prerequisiti

Prima di immergerci in questa guida, partiamo dal presupposto che abbiate una conoscenza di base di Git e Ruby on Rails, compresa l’installazione di Ruby, Rails e delle dipendenze necessarie sulla vostra macchina di sviluppo locale.

Passaggio 1: Configurare un account di hosting Kinsta

Visitate il sito web di Kinsta e create un nuovo account se non ne avete già uno. Configurate il vostro nome di dominio o utilizzate l’URL Kinsta assegnato, che verrà fornito al momento della distribuzione.

Passaggio 2: Creare una nuova applicazione Ruby on Rails

A questo punto, apriamo il terminale e navighiamo nella directory in cui vogliamo creare la nostra nuova applicazione Rails. Eseguiamo il comando qui sotto per crearla:

rails new myapp --database=postgresql --javascript=esbuild --css=tailwind

Questo comando crea una nuova applicazione Rails chiamata myapp con PostgreSQL come adattatore per il database, esbuild per compilare il nostro Javascript e Tailwind CSS come framework.

Potete sostituire myapp con il nome dell’applicazione che desiderate.

Per un elenco completo delle opzioni disponibili da configurare dal comando rails new, eseguiamo:

rails new --help

Passaggio 3: Configurare l’applicazione Rails

Passiamo alla directory dell’applicazione:

cd myapp

Assicuratevi che durante la creazione del bundle dell’applicazione Rails la configurazione aggiunga anche la piattaforma Linux, in quanto è il sistema operativo utilizzato per la distribuzione. Inserite il seguente comando nel terminale:

bundle lock --add-platform x86_64-linux

Script del processo web

Aggiungiamo un file start.sh alla directory bin dell’applicazione. Questo assicura che il server avvii l’applicazione ed esegua i comandi necessari per avviare e aggiornare il database prima dell’esecuzione. Nel terminale, creiamo il file inserendo:

touch bin/start.sh

All’interno di questo file aggiungiamo quanto segue:

#!/bin/bash

bundle exec rails db:prepare
bundle exec rails server

Creare una home

E per avere un Hello Word, creiamo una pagina Home per l’applicazione. Nel terminale, inseriamo:

bin/rails generate controller Home index

Questo darà come risultato:

create  app/controllers/home_controller.rb
route    get 'home/index'
invoke  erb
create  app/views/home
create  app/views/home/index.html.erb
invoke  test_unit
create  test/controllers/home_controller_test.rb
invoke  helper
create  app/helpers/home_helper.rb
invoke  test_unit

Apriamo app/views/home/index.html.erb e sostituiamo il suo contenuto con:

 <h1>Hello, Kinsta!</h1>

Impostazione della pagina iniziale dell’applicazione

Apriamo config/routes.rb e aggiungiamo la seguente route principale all’inizio del blocco Rails.application.routes.draw:

Rails.application.routes.draw do
  root "home#index"

  get "/home", to: "home#index"
end

Ora, quando eseguiamo la nostra applicazione in locale, vediamo la nostra nuova pagina iniziale. Poiché abbiamo generato la nostra nuova applicazione con l’aggiunta di esbuild, abbiamo un comando semplificato che ci aiuta ad avviare la nostra applicazione. Eseguendo il seguente comando, Rails avvia il server e controlla le modifiche CSS e Javascript con il reload in tempo reale:

bin/dev

Creare un database

Poiché abbiamo creato la nostra applicazione Rails con un database PostgreSQL, dobbiamo configurarlo attraverso la dashboard di MyKinsta:

  • Accediamo al nostro account Kinsta.com e, dal Cruscotto, clicchiamo su Aggiungi servizi e selezioniamo Database.
  • Compiliamo i dettagli di base e conferma nella pagina di riepilogo cliccando su Crea database.
Creare un database in MyKinsta
Creare un database

Passaggio 4: Prepararsi alla distribuzione

Iniziamo creando un nuovo repository su GitHub per ospitare la nostra base di codice.

Inizializziamo un repository Git localmente nella directory dell’applicazione Rails a livello di root:

git init

Creiamo un file .gitignore nella root della directory dell’applicazione ed escludiamo i file e le directory non necessarie dal controllo di versione. Un esempio di file .gitignore per un’applicazione Rails si trova sulla pagina ufficiale di GitHub.

Per collegare il repository locale al repo creato su GitHub, aggiungiamo l’origine remota al repo locale, sostituendo username e repository con i nostri:

git remote add origin https://github.com/username/repository.git

Aggiungiamo, eseguiamo il commit e inviamo il codice al repository Git:

git add .
git commit -m "Initial commit"
git push

Notate che, poiché abbiamo impostato Kinsta per eseguire il deploy automatico a ogni push del repository, la nostra prima build fallisce. Questo accade perché non abbiamo ancora collegato il database all’applicazione, cosa che faremo nel prossimo passo.

Passaggio 5: Distribuzione su Kinsta.com

  1. Accediamo all’account Kinsta.com.
  2. Dal cruscotto, clicchiamo su Aggiungi servizi e selezioniamo Applicazione.
  3. Colleghiamoci a un provider Git.
Aggiungere Git
Connetti un provider Git

Impostare i dettagli dell’applicazione

  1. Aggiungiamo il repository e selezioniamo il branch predefinito.
  2. (Opzionale) Scegliamo le distribuzioni automatiche per questo branch predefinito.
  3. Aggiungiamo il nome dell’applicazione. Verrà utilizzato per identificare l’applicazione nel Cruscotto.
  4. Scegliamo la posizione del data center. Scegliamo la sede più vicina al nostro pubblico.
Aggiungere l'applicazione
Aggiungere l’applicazione

In questa fase possiamo aggiungere le variabili d’ambiente (esempi). L’applicazione Rails appena generata viene fornita con una chiave master che decifra e legge i segreti nel file delle credenziali nella cartella config. Non conservate mai la chiave master nel controllo di versione (si trova già nel file .gitignore ).

Per consentire la decrittazione, dobbiamo impostare le variabili utilizzando una chiave speciale. Espandiamo la voce Variabili d’ambiente, copiamo il valore della chiave master locale e incolliamolo nell’input Valore 1 della variabile RAILS_MASTER_KEY:

Variabili d'ambiente
Variabili d’ambiente

Configurare l’ambiente di build

  1. Scegliamo le risorse di build.
  2. Per le applicazioni Rails, selezioniamo Usa Buildpacks.
  3. Clicchiamo su Continua.
Ambiente di build in MyKinsta
Usare i Buildpack

Configurare le risorse dell’applicazione

  1. Lasciamo vuoto il campo del comando Start, poiché questo viene definito tramite il comando del file creato nei passi precedenti bin/start.sh.
  2. Clicchiamo su Continua.
Impostare i processi
Impostare i processi

Creare il database delle applicazioni

Dobbiamo effettuare la configurazione finale della connessione al database.

  1. Dal menu del Cruscotto di MyKinsta a sinistra, clicchiamo su Database e clicchiamo sul nome del database appena creato.
  2. Sotto la voce Info, vedremo una sottovoce Connessioni interne. Clicchiamo su Aggiungi applicazione.
  3. Dal menu a tendina, selezioniamo la nostra applicazione Rails.
  4. Selezioniamo la casella Aggiungi variabili d’ambiente all’applicazione.
  5. Clicchiamo su Aggiungi connessione.
Aggiungere le connessioni interne
Connessioni interne

Configurare il database locale

Apriamo il file config/database.yml e aggiorniamo la configurazione del database in base alle credenziali del nostro database MyKinsta.

Esempio:

production:
  adapter: postgresql  
  encoding: unicode  
  pool: 5
  database: <%= ENV["DB_NAME"] %>
  host: <%= ENV["DB_HOST"] %>
  username: <%= ENV["DB_USER"] %>
  password: <%= ENV["DB_PASSWORD"] %> 

Per maggiori informazioni sulla gestione delle connessioni al database, consultate la nostra documentazione sulle impostazioni.

Confermiamo la configurazione e inseriamo i dettagli del pagamento per completare la configurazione dell’applicazione. Kinsta la distribuirà in pochi minuti.

Riepilogo

Seguendo questa guida, abbiamo impostato e configurato con successo un’applicazione Ruby on Rails versione 7.1 con un database PostgreSQL da distribuire e ospitare su Kinsta.

Ora potete concentrarvi sullo sviluppo dell’applicazione e utilizzare le potenti funzionalità fornite da Kinsta per una distribuzione e un hosting senza problemi. Ricordate, potete sempre consultare la documentazione ufficiale o chiedere ulteriore assistenza al supporto di Kinsta se necessario.

Lee Sheppard

Lee is an Agile certified full stack Ruby on Rails developer. With over six years in the tech industry he enjoys teaching, coaching Agile, and mentoring others. Lee also speaks at tech related events and has a background in design and illustration.