Taal Frankfurt, Duitsland

Deploy Ruby op Nodion

Nodion herkent een Ruby-app aan de Gemfile. Het Ruby-buildpack installeert je gems met de Bundler-versie uit Gemfile.lock en start Puma, een Rack-app via rackup, of je app.rb. Zo draaien Sinatra en andere Rack-apps in Frankfurt; voor Rails is er de Rails-handleiding.

Op Nodion deployen ›

vanaf 1 EUR / maand

Tot € 15 welkomsttegoed bij registratie

Herkend aan
Gemfile
Start
Puma met config/puma.rb, anders rackup met config.ru, anders ruby app.rb
Ruby
3.3, 3.4 (standaard), 4.0
Regio
EU Central (Frankfurt)

Ruby stap voor stap deployen

  1. Commit Gemfile en Gemfile.lock De build voert bundle install uit zonder de groepen development en test, met de Bundler-versie uit BUNDLED WITH in Gemfile.lock. Met Rack 3 heeft een config.ru-app ook de gem rackup en een server zoals Puma nodig. Gemfile
    source "https://rubygems.org"
    
    gem "sinatra"
    gem "rackup"
    gem "puma"
  2. Voeg een config.ru toe Met een config.ru en zonder config/puma.rb start Nodion bundle exec rackup config.ru -p $PORT en zet RACK_ENV=production. Een kleine Sinatra-app past in het bestand zelf: config.ru
    require "sinatra/base"
    
    class App < Sinatra::Base
      get "/" do
        "Hello from Frankfurt"
      end
    end
    
    run App
  3. Maak de app aan Maak in het dashboard een applicatie aan vanuit je GitHub-, GitLab-, Bitbucket- of Gitea-repository, kies de branch en de regio EU Central, en laat de buildstrategie op Buildpacks staan. Tijdens de build bestaan alleen variabelen met de vlag Build; alle andere worden tijdens runtime ingesteld. Markeer API-sleutels en wachtwoorden als secret.
  4. Koppel een database en voer migraties uit Maak een PostgreSQL- of MySQL-database aan in dezelfde regio en koppel die op het tabblad Environment; de app krijgt DATABASE_URL bij de volgende deployment. Een release:-regel in een Procfile draait één keer per build voordat de nieuwe versie start, bijvoorbeeld voor de migraties van sinatra-activerecord. Mislukt die, dan blijft de draaiende versie live. Procfile
    release: bundle exec rake db:migrate

Goed om te weten

  • Zet de Ruby-versie vastNodion leest .ruby-version, daarna een ruby-regel met een volledige versie in de Gemfile; zonder een van beide krijg je Ruby 3.4. Ruby 3.3 en 4.0 zijn ook beschikbaar. Zonder BUNDLED WITH draait Bundler 2 op Ruby 3 en Bundler 4 op Ruby 4.
  • Puma-config of een eenvoudige app.rbBestaat config/puma.rb, dan voert Nodion bundle exec puma -C config/puma.rb uit; stel daar dus de poort van Puma in met port ENV.fetch("PORT", 3000). Ontbreken dat bestand en config.ru allebei, dan voert Nodion bundle exec ruby app.rb uit en moet het script luisteren op 0.0.0.0 en op de PORT die Nodion instelt.
  • Sidekiq en andere workersVoeg worker: bundle exec sidekiq toe aan het Procfile, samen met een expliciete regel web: bundle exec rackup config.ru -p $PORT; zonder web:-regel wordt de eerste Procfile-regel die geen release: is het standaardcommando. Voeg daarna op het tabblad Processes een proces met de naam worker zonder poort toe. Valkey in dezelfde regio geeft Sidekiq zijn REDIS_URL.

Wat Nodion voor je regelt

  • Deploys zonder downtime Push naar je branch en Nodion bouwt een nieuwe release. Het verkeer schakelt over zodra de nieuwe instanties hun health check doorstaan; een mislukte release laat de draaiende versie staan. Apps met een lokaal volume herstarten in plaats daarvan, omdat de schijf bij één instantie hoort.
  • Databases naast de app Managed PostgreSQL, pgvector, MySQL, Valkey en ClickHouse in dezelfde regio. Gekoppelde databases komen binnen als DATABASE_URL, REDIS_URL of CLICKHOUSE_URL.
  • Previews per pull request Zet previews aan en pull requests uit je repository krijgen een eigen app met een eigen URL en nieuwe, lege databases, automatisch of handmatig aangemaakt. Forks en pull requests van bots worden overgeslagen.
  • Workers, cronjobs en schalen Draai workers als extra processen van dezelfde app, plan jobs op het tabblad Cron en schaal elk proces naar maximaal 16 instanties.
  • Releasestap Met buildpacks draait een release:-regel in het Procfile bij elke nieuwe build. Dockerfile-apps, en redeploys of rollbacks naar een eerdere image, gebruiken een releasecommando dat op de app zelf is ingesteld en dat ook voorrang heeft op de Procfile-regel. Bij statische sites draait een releasestap in een image die alleen de gebouwde bestanden bevat.
  • Logs en metrics Build-, release- en runtimelogs plus metrics voor CPU, geheugen, schijf en netwerk van elke instantie in het dashboard.
  • Domeinen en HTTPS Een standaardhostnaam met HTTPS vanaf de eerste deploy; je eigen domeinen krijgen automatisch certificaten.

Verder lezen

Ruby op Nodion: vragen en antwoorden

Draait Sinatra zonder Dockerfile?

Ja. Met een Gemfile en een config.ru installeert het Ruby-buildpack je gems en start het de app met rackup op de poort die Nodion instelt. Voeg voor Rack 3 de gems rackup en puma toe.

Welke Ruby-versies kan ik gebruiken?

Ruby 3.3, 3.4 en 4.0, met 3.4 als standaard. Zet er een vast in .ruby-version of de Gemfile; Bundler draait in de versie uit je Gemfile.lock.

Kan ik JavaScript-assets naast de Gemfile bouwen?

Gebruik daarvoor een Dockerfile: staat er een in de repository, dan kiest het aanmaakformulier de Dockerfile-strategie en voert je Dockerfile de hele build uit. Voor Rails is er de Rails-handleiding.

Waar draait mijn Ruby-app?

In de regio EU Central in Frankfurt, Duitsland. Build, registry, de app en de bijbehorende databases, volumes, buckets, logs en metrics blijven in die regio, en de API en het control plane van Nodion worden in Duitsland gehost. Nodion GmbH is gevestigd in Stuttgart.

Kan ik Ruby gebruiken volgens de AVG (GDPR)?

Nodion biedt hiervoor de basis: Nodion GmbH is gevestigd in Stuttgart (Duitsland). Kies je de regio Frankfurt, dan draaien de app, de databases en de volumes in Duitsland. De verwerkersovereenkomst (DPA, art. 28 AVG) sluit je elektronisch af in het dashboard. Of je configuratie aan de AVG voldoet, hangt ook af van hoe je de app instelt en gebruikt.

Wat kost het om Ruby op Nodion te draaien?

Een appinstantie kost vanaf 1 EUR per maand. De configuratie in het kostenoverzicht kost 2 EUR per maand: App 2 EUR. Prijzen zijn excl. btw en worden per seconde gefactureerd, en je kiest grotere formaten of meer instanties wanneer je ze nodig hebt.

Kan ik een eigen domein gebruiken voor mijn Ruby-app?

Ja. Elke app krijgt een standaardhostnaam met HTTPS. Voeg je eigen domein toe op het tabblad Domains van de app; het TLS-certificaat wordt automatisch uitgegeven en vernieuwd.

Geef je agent een cloud.

Ontvang tot € 15 welkomsttegoed bij je registratie.

Doorgaan met GitHub

of met e-mail

Blijf op de hoogte.

Productnieuws, geen spam. Je kunt je altijd weer afmelden.