Framework Francfort, Allemagne
Rails 7.1 et les versions suivantes génèrent un Dockerfile, et Nodion construit votre app avec ce fichier : Ruby, les gems, le bundling JavaScript et assets:precompile s'exécutent comme Rails les a configurés. Les apps avec importmap et sans package.json peuvent utiliser à la place le buildpack Ruby, qui précompile les assets et démarre Puma. Dans les deux cas, l'app et sa base de données PostgreSQL tournent à Francfort.
config/puma.rb (buildpacks)/up, intégré à Rails 7.1+RAILS_MASTER_KEY comme secret, avec le contenu de config/master.key. Nodion ne définit pas de PORT pour les apps avec Dockerfile : le serveur écoute sur le port du processus web, que le formulaire reprend de EXPOSE. Rails 7.1 et 7.2 exposent le port 3000 pour Puma. Rails 8 expose le port 80 pour Thruster, qui tourne devant Puma ; l'image s'exécute avec un utilisateur non root, définissez donc HTTP_PORT=8080 et indiquez 8080 comme port du processus web dans l'onglet Processes. DATABASE_URL qu'il reçoit au déploiement suivant. Le bin/docker-entrypoint généré exécute bin/rails db:prepare avant le démarrage du serveur Rails : les migrations en attente s'exécutent donc au démarrage de la nouvelle version. Vous pouvez aussi définir ./bin/rails db:migrate comme commande de release de l'app (champ d'API release_command, voir le guide Docker), qui s'exécute une fois par déploiement avant le démarrage de la nouvelle version. /up dès que l'app a démarré ; définissez ce chemin comme chemin du health check dans les paramètres de l'app. Nodion appelle chaque instance avec son IP interne comme Host : si vous définissez config.hosts, excluez donc /up de l'autorisation des hôtes, sinon la release n'est jamais mise en ligne. config/environments/production.rb config.hosts << "www.example.com"
config.host_authorization = { exclude: ->(request) { request.path == "/up" } } package.json peut choisir à la place Buildpacks dans le formulaire de création. Nodion exécute alors bundle install sans les gems de development et de test, puis assets:precompile avec RAILS_ENV=production et SECRET_KEY_BASE_DUMMY=1, démarre Puma avec config/puma.rb sur PORT et définit RAILS_SERVE_STATIC_FILES et RAILS_LOG_TO_STDOUT. Les migrations s'exécutent depuis un Procfile : Procfile release: bin/rails db:migrate worker: bin/jobs (Solid Queue) ou worker: bundle exec sidekiq au Procfile ainsi qu'une ligne explicite web: bundle exec puma -C config/puma.rb ; sans ligne web:, la première entrée du Procfile autre que release: devient la commande par défaut. Ajoutez ensuite dans l'onglet Processes un processus nommé worker sans port. Avec le Dockerfile, donnez plutôt à ce processus la commande ./bin/jobs ou bundle exec sidekiq. Valkey dans la même région fournit à Sidekiq sa REDIS_URL.config/database.yml, les bases cache, queue et cable pour la production, et DATABASE_URL ne définit que la base principale. Avant le premier déploiement, donnez aussi une connexion aux autres, ou supprimez celles que votre app n'utilise pas.RUBY_VERSION dans le Dockerfile. Avec les buildpacks, Nodion lit .ruby-version ou la ligne ruby du Gemfile et propose 3.3, 3.4 (par défaut) et 4.0.DATABASE_URL, REDIS_URL ou CLICKHOUSE_URL. release: du Procfile s'exécute à chaque nouveau build. Les apps Dockerfile, ainsi que les redéploiements ou les rollbacks vers une image antérieure, utilisent une commande de release définie sur l'app elle-même, qui prime aussi sur la ligne du Procfile. Sur les sites statiques, l'étape de release s'exécute dans une image qui ne contient que les fichiers générés par le build. En général, non. Définissez RAILS_MASTER_KEY comme secret, vérifiez le port du processus web (et HTTP_PORT sous Rails 8) et utilisez /up comme chemin du health check.
Avec le Dockerfile généré, bin/docker-entrypoint exécute db:prepare au démarrage du serveur Rails. Avec les buildpacks, ajoutez release: bin/rails db:migrate à un Procfile ; la ligne s'exécute une fois par build avant le démarrage de la nouvelle version, et un échec arrête le déploiement.
En général, le health check reçoit un 404 sur / parce qu'il n'y a pas de route racine, ou un 403 de l'autorisation des hôtes. Définissez /up comme chemin du health check et excluez-le de l'autorisation des hôtes. Sous Rails 8 avec le Dockerfile, vérifiez aussi que le port du processus web correspond à HTTP_PORT.
Oui, avec le Dockerfile : le build JavaScript s'exécute dans votre Dockerfile, comme dans celui que Rails génère pour jsbundling et cssbundling. La voie des buildpacks est destinée aux apps importmap sans package.json.
Dans la région EU Central, à Francfort (Allemagne). Le build, le registry, l'app et ses bases de données, volumes, buckets, logs et métriques restent dans cette région. L'API et le plan de contrôle de Nodion sont hébergés en Allemagne. Nodion GmbH a son siège à Stuttgart.
Nodion en pose les bases : Nodion GmbH a son siège à Stuttgart (Allemagne). Dans la région de Francfort, l'app, ses bases de données et ses volumes fonctionnent en Allemagne. Vous concluez le DPA (accord de traitement des données, art. 28 RGPD) par voie électronique dans le dashboard. La conformité de votre déploiement dépend aussi de la façon dont vous configurez et utilisez l'app.
Une instance d'app coûte à partir de 1 EUR par mois. La configuration présentée dans l'encadré des coûts revient à 5.50 EUR par mois : App 4 EUR, PostgreSQL 1.50 EUR. Les prix sont HT, avec une facturation à la seconde. Vous pouvez choisir des tailles plus grandes ou davantage d'instances dès que vous en avez besoin.
Oui. Chaque app reçoit un nom d'hôte par défaut avec HTTPS. Ajoutez votre propre domaine dans l'onglet Domains de l'app. Le certificat TLS est émis et renouvelé automatiquement.
Jusqu'à 15 € de crédit de bienvenue à l'inscription.
ou par e-mail
Les nouveautés du produit, sans spam. Désabonnez-vous à tout moment.
Inscription confirmée.