Framework Fráncfort, Alemania
Rails 7.1 y versiones posteriores generan un Dockerfile, y Nodion construye tu app con él: Ruby, las gemas, el bundling de JavaScript y assets:precompile se ejecutan tal como los ha configurado Rails. Las apps con importmap y sin package.json pueden usar en su lugar el buildpack de Ruby, que precompila los assets y arranca Puma. En ambos casos, la app y su base de datos PostgreSQL se ejecutan en Fráncfort.
config/puma.rb (buildpacks)/up, integrado en Rails 7.1+RAILS_MASTER_KEY con el contenido de config/master.key como variable secreta. En las apps con Dockerfile, Nodion no define PORT: el servidor escucha en el puerto del proceso web, que el formulario toma de EXPOSE. Rails 7.1 y 7.2 exponen el 3000 para Puma. Rails 8 expone el 80 para Thruster, que se ejecuta delante de Puma; la imagen se ejecuta con un usuario sin privilegios de root, así que define HTTP_PORT=8080 y pon 8080 como puerto del proceso web en la pestaña Processes. DATABASE_URL que recibe en el siguiente despliegue. El bin/docker-entrypoint generado ejecuta bin/rails db:prepare antes de que arranque el servidor de Rails, así que las migraciones pendientes se ejecutan cuando arranca la nueva versión. También puedes definir ./bin/rails db:migrate como comando de release de la app (campo release_command de la API, consulta la guía de Docker), que se ejecuta una vez por despliegue antes de que arranque la nueva versión. /up con 200 en cuanto la app ha arrancado; defínela como ruta del health check en los ajustes de la app. Nodion llama a cada instancia con su IP interna como Host, así que, si defines config.hosts, excluye /up de la autorización de hosts; si no, la release nunca llega a activarse. config/environments/production.rb config.hosts << "www.example.com"
config.host_authorization = { exclude: ->(request) { request.path == "/up" } } package.json puede elegir en su lugar Buildpacks en el formulario de creación. En ese caso, Nodion ejecuta bundle install sin las gemas de development y test y assets:precompile con RAILS_ENV=production y SECRET_KEY_BASE_DUMMY=1, arranca Puma con config/puma.rb en PORT y define RAILS_SERVE_STATIC_FILES y RAILS_LOG_TO_STDOUT. Las migraciones se ejecutan desde un Procfile: Procfile release: bin/rails db:migrate worker: bin/jobs (Solid Queue) o worker: bundle exec sidekiq al Procfile junto con una línea web: bundle exec puma -C config/puma.rb explícita; sin una línea web:, la primera entrada del Procfile que no sea release: se convierte en el comando por defecto. Después añade en la pestaña Processes un proceso llamado worker sin puerto. Con el Dockerfile, en cambio, asigna a ese proceso el comando ./bin/jobs o bundle exec sidekiq. Valkey en la misma región le da a Sidekiq su REDIS_URL.config/database.yml las bases de datos cache, queue y cable para producción, y DATABASE_URL solo define la principal. Antes del primer despliegue, asigna una conexión también a las demás o elimina las que tu app no use.RUBY_VERSION en el Dockerfile. Con buildpacks, Nodion lee .ruby-version o la línea ruby del Gemfile y ofrece 3.3, 3.4 (por defecto) y 4.0.DATABASE_URL, REDIS_URL o CLICKHOUSE_URL. release: del Procfile se ejecuta con cada nueva build. Las apps con Dockerfile, así como los redeploys o rollbacks a una imagen anterior, usan un comando de release definido en la propia app, que además tiene prioridad sobre la línea del Procfile. En los sitios estáticos, el paso de release se ejecuta en una imagen que solo contiene los archivos generados por la build. Normalmente no. Define RAILS_MASTER_KEY como variable secreta, comprueba el puerto del proceso web (y HTTP_PORT en Rails 8) y usa /up como ruta del health check.
Con el Dockerfile generado, bin/docker-entrypoint ejecuta db:prepare al arrancar el servidor de Rails. Con buildpacks, añade release: bin/rails db:migrate a un Procfile; se ejecuta una vez por build antes de que arranque la nueva versión, y si falla, el despliegue se detiene.
Normalmente, el health check recibe un 404 en / porque no hay ruta raíz, o un 403 de la autorización de hosts. Define /up como ruta del health check y exclúyela de la autorización de hosts. En Rails 8 con el Dockerfile, comprueba también que el puerto del proceso web coincide con HTTP_PORT.
Sí, con el Dockerfile: la build de JavaScript se ejecuta en tu Dockerfile, como en el que genera Rails para jsbundling y cssbundling. La vía de los buildpacks es para apps con importmap sin package.json.
En la región EU Central, en Fráncfort (Alemania). La build, el registry, la app y sus bases de datos, volúmenes, buckets, logs y métricas permanecen en esa región. La API y el plano de control de Nodion están alojados en Alemania. Nodion GmbH tiene su sede en Stuttgart.
Nodion te ofrece las bases para ello: Nodion GmbH tiene su sede en Stuttgart (Alemania); en la región de Fráncfort, la app, sus bases de datos y sus volúmenes se ejecutan en Alemania. Puedes formalizar electrónicamente el DPA (contrato de encargo del tratamiento, art. 28 del RGPD) en el dashboard. Que tu uso cumpla el RGPD también depende de cómo configures y uses la app.
Una instancia de app cuesta desde 1 EUR al mes. La configuración del recuadro de costes cuesta 5.50 EUR al mes: App 4 EUR, PostgreSQL 1.50 EUR. Los precios no incluyen IVA y la facturación es por segundo. Puedes elegir tamaños mayores o más instancias cuando lo necesites.
Sí. Cada app recibe un nombre de host predeterminado con HTTPS. Añade tu propio dominio en la pestaña Domains de la app; el certificado TLS se emite y se renueva automáticamente.
Hasta 15 € de crédito al registrarte.
o con tu email
Novedades del producto, sin spam. Puedes darte de baja cuando quieras.
Suscripción completada.