Linguaggio Francoforte, Germania

Fai il deploy di Ruby su Nodion

Nodion riconosce un'app Ruby dal suo Gemfile. Il buildpack Ruby installa le gem con la versione di Bundler indicata in Gemfile.lock e avvia Puma, un'app Rack tramite rackup oppure il tuo app.rb. Sinatra e le altre app Rack girano così a Francoforte; per Rails, consulta la guida Rails.

Fai il deploy su Nodion ›

da 1 EUR / mese

Fino a 15 € di credito di benvenuto alla registrazione

Riconosciuto da
Gemfile
Avvio
Puma con config/puma.rb, altrimenti rackup con config.ru, altrimenti ruby app.rb
Ruby
3.3, 3.4 (predefinita), 4.0
Regione
EU Central (Francoforte)

Deploy di Ruby passo dopo passo

  1. Fai il commit di Gemfile e Gemfile.lock La build esegue bundle install senza i gruppi development e test, con la versione di Bundler indicata in BUNDLED WITH nel Gemfile.lock. Con Rack 3, un'app config.ru ha bisogno anche della gem rackup e di un server come Puma. Gemfile
    source "https://rubygems.org"
    
    gem "sinatra"
    gem "rackup"
    gem "puma"
  2. Aggiungi un config.ru Con un config.ru e senza config/puma.rb, Nodion avvia bundle exec rackup config.ru -p $PORT e imposta RACK_ENV=production. Una piccola app Sinatra sta direttamente nel file: config.ru
    require "sinatra/base"
    
    class App < Sinatra::Base
      get "/" do
        "Hello from Frankfurt"
      end
    end
    
    run App
  3. Crea l'app Nella dashboard, crea un'applicazione dal tuo repository GitHub, GitLab, Bitbucket o Gitea, scegli il branch e la regione EU Central e lascia la strategia di build su Buildpacks. Durante la build esistono solo le variabili con il flag Build; tutte le altre vengono impostate in fase di esecuzione. Contrassegna chiavi API e password come segrete.
  4. Collega un database ed esegui le migrazioni Crea un database PostgreSQL o MySQL nella stessa regione e collegalo nella scheda Environment; l'app riceve DATABASE_URL al deploy successivo. Una riga release: in un Procfile viene eseguita una volta per ogni build prima che parta la nuova versione, per esempio per le migrazioni di sinatra-activerecord. Se fallisce, la versione in esecuzione resta online. Procfile
    release: bundle exec rake db:migrate

Da sapere

  • Fissa la versione di RubyNodion legge .ruby-version, poi una riga ruby con la versione completa nel Gemfile; senza nessuna delle due ottieni Ruby 3.4. Sono disponibili anche Ruby 3.3 e 4.0. Senza BUNDLED WITH, su Ruby 3 gira Bundler 2 e su Ruby 4 gira Bundler 4.
  • Configurazione di Puma o un semplice app.rbSe esiste config/puma.rb, Nodion esegue bundle exec puma -C config/puma.rb, quindi configura lì la porta di Puma con port ENV.fetch("PORT", 3000). Se non ci sono né quel file né config.ru, Nodion esegue bundle exec ruby app.rb e lo script deve ascoltare su 0.0.0.0 e sulla porta PORT impostata da Nodion.
  • Sidekiq e altri workerAggiungi al Procfile worker: bundle exec sidekiq insieme a una riga esplicita web: bundle exec rackup config.ru -p $PORT; senza una riga web:, la prima voce del Procfile diversa da release: diventa il comando predefinito. Poi aggiungi un processo chiamato worker senza porta nella scheda Processes. Valkey nella stessa regione fornisce a Sidekiq la sua REDIS_URL.

Cosa gestisce Nodion per te

  • Deploy senza downtime Fai push sul tuo branch e Nodion crea una nuova release. Il traffico passa alle nuove istanze solo quando superano l'health check; una release fallita lascia attiva quella in esecuzione. Le app con un volume locale invece si riavviano, perché il disco appartiene a una sola istanza.
  • Database accanto all'app PostgreSQL, pgvector, MySQL, Valkey e ClickHouse gestiti, nella stessa regione. I database collegati arrivano come DATABASE_URL, REDIS_URL o CLICKHOUSE_URL.
  • Anteprime per ogni pull request Attiva le anteprime: ogni pull request del tuo repository riceve un'app dedicata, con un proprio URL e database nuovi e vuoti, creata automaticamente o manualmente. Le pull request dai fork e quelle dei bot vengono ignorate.
  • Worker, cron job e scalabilità Esegui i worker come processi aggiuntivi della stessa app, pianifica i job nella scheda Cron e scala ogni processo fino a 16 istanze.
  • Fase di release Con i buildpack, la riga release: del Procfile viene eseguita a ogni nuova build. Le app con Dockerfile, così come i redeploy e i rollback a un'immagine precedente, usano un comando di release impostato sull'app stessa, che ha anche la precedenza sulla riga del Procfile. Nei siti statici, la fase di release gira in un'immagine che contiene solo i file generati dalla build.
  • Log e metriche Nella dashboard trovi log di build, release e runtime, oltre alle metriche di CPU, memoria, disco e rete per ogni istanza.
  • Domini e HTTPS Un hostname predefinito con HTTPS dal primo deploy; i tuoi domini ricevono i certificati in automatico.

Per approfondire

Ruby su Nodion: domande e risposte

Sinatra funziona senza Dockerfile?

Sì. Con un Gemfile e un config.ru, il buildpack Ruby installa le gem e avvia l'app con rackup sulla porta impostata da Nodion. Per Rack 3, aggiungi le gem rackup e puma.

Quali versioni di Ruby posso usare?

Ruby 3.3, 3.4 e 4.0, con 3.4 come predefinita. Fissane una in .ruby-version o nel Gemfile; Bundler gira nella versione indicata nel tuo Gemfile.lock.

Posso fare la build di asset JavaScript accanto al Gemfile?

Per questo usa un Dockerfile: se il repository ne ha uno, il modulo di creazione sceglie la strategia Dockerfile e il tuo Dockerfile esegue tutta la build. Per Rails, consulta la guida Rails.

Dove gira la mia app Ruby?

Nella regione EU Central a Francoforte, in Germania. La build, il registry, l'app e i suoi database, volumi, bucket, log e metriche restano in quella regione. L'API e il control plane di Nodion sono ospitati in Germania. Nodion GmbH ha sede a Stoccarda.

Posso usare Ruby in modo conforme al GDPR?

Nodion offre le basi per farlo: Nodion GmbH ha sede a Stoccarda, in Germania; nella regione di Francoforte l'app, i suoi database e i volumi girano in Germania; puoi sottoscrivere il DPA (accordo sul trattamento dei dati, art. 28 GDPR) in formato elettronico nella dashboard. La conformità del tuo utilizzo dipende anche da come configuri e usi l'app.

Quanto costa l'hosting di Ruby su Nodion?

Un'istanza dell'app costa da 1 EUR al mese. La configurazione mostrata nel riquadro costa 2 EUR al mese: App 2 EUR. I prezzi sono IVA esclusa e la fatturazione è al secondo. Puoi scegliere dimensioni più grandi o più istanze quando ti servono.

Posso usare un mio dominio per la mia app Ruby?

Sì. Ogni app riceve un hostname predefinito con HTTPS. Aggiungi il tuo dominio nella scheda Domains dell'app; il certificato TLS viene emesso e rinnovato automaticamente.

Dai al tuo agente un cloud tutto suo.

Fino a 15 € di credito quando ti registri.

Continua con GitHub

oppure con l'email

Resta aggiornato.

Novità sul prodotto, niente spam. Puoi annullare l'iscrizione quando vuoi.