Langage Francfort, Allemagne
Nodion reconnaît Rust à son Cargo.toml. Le buildpack Rust exécute cargo build --release avec la chaîne d'outils stable la plus récente, copie vos binaires dans l'image d'exécution et lance celui qui porte le nom de votre package ; la chaîne d'outils elle-même n'y entre pas. L'app tourne à Francfort, à côté d'une base de données PostgreSQL managée si vous en avez besoin.
Cargo.tomlserver, api, web ou appPORT pour le processus web. Lisez-la et écoutez sur 0.0.0.0, pas sur 127.0.0.1, sinon le health check ne peut pas joindre l'app. Avec Actix Web, convertissez le port en u16 et passez ("0.0.0.0", port) à HttpServer::bind. src/main.rs use axum::{routing::get, Router};
#[tokio::main]
async fn main() {
let port = std::env::var("PORT").unwrap_or_else(|_| "8080".to_string());
let app = Router::new().route("/", get(|| async { "ok" }));
let listener = tokio::net::TcpListener::bind(format!("0.0.0.0:{port}"))
.await
.unwrap();
axum::serve(listener, app).await.unwrap();
} Cargo.lock est présent, Nodion compile avec --locked : un lockfile qui ne correspond pas à Cargo.toml fait donc échouer le build. Nodion lit le nom du package sur la première ligne name = de Cargo.toml : gardez donc la section [package] en tête du fichier. Cargo.toml [package]
name = "myapp"
version = "0.1.0"
edition = "2024"
[dependencies]
axum = "0.8"
tokio = { version = "1", features = ["full"] } target/release est livré dans l'image, par exemple celui issu de src/bin/worker.rs. Le processus web lance le binaire du package ; chaque autre binaire devient un type de processus du même nom. Pour lancer worker, ajoutez dans l'onglet Processes un processus de ce nom, sans port, et laissez sa commande vide. DATABASE_URL arrive au prochain déploiement, jamais pendant le build. Avec SQLx, exécutez cargo sqlx prepare et commitez le dossier .sqlx pour que les macros query! compilent sans base de données. Lancez les migrations au démarrage avec sqlx::migrate!(), ou compilez un binaire migrate et exécutez-le comme étape de release, une fois par build, avant le démarrage de la nouvelle version. Procfile release: migrate rust-toolchain.toml et rust-version ne sélectionnent pas une chaîne d'outils plus ancienne : chaque build utilise la version stable de Rust la plus récente préparée par Nodion. Les chaînes d'outils nightly ne sont pas disponibles, donc les crates qui ont besoin de fonctionnalités nightly demandent un Dockerfile.cargo build --release dans le répertoire indiqué dans le champ Base directory, sans --workspace. Dans un workspace virtuel (un Cargo.toml racine avec uniquement [workspace]), cela compile tous les membres ; avec un package racine, seul ce package est compilé, donc listez dans workspace.default-members tous les membres dont vous avez besoin. Un workspace virtuel n'a pas de nom de package : nommez donc le binaire web server, api, web ou app.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. Oui, comme Axum ou tout autre serveur : écoutez sur 0.0.0.0, sur le PORT défini par Nodion. Nodion n'a pas de réglages spécifiques aux frameworks pour Rust ; il compile et lance votre binaire.
Votre Cargo.lock ne correspond pas à Cargo.toml, et --locked empêche Cargo de le mettre à jour pendant le build. Exécutez cargo build en local et commitez le lockfile mis à jour.
Toujours la version stable de Rust la plus récente préparée par Nodion, actuellement en version 1.99.x. Les versions fixées dans rust-toolchain.toml ou rust-version ne sélectionnent pas une chaîne d'outils plus ancienne.
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 à 2.50 EUR par mois : App 1 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.