Lenguaje Fráncfort, Alemania
Nodion reconoce Rust por Cargo.toml. El buildpack de Rust ejecuta cargo build --release con la toolchain estable más reciente, copia tus binarios en la imagen de runtime y arranca el que lleva el nombre de tu paquete; la toolchain en sí se queda fuera. La app se ejecuta en Fráncfort, junto a una base de datos PostgreSQL gestionada si la necesitas.
Cargo.tomlserver, api, web o appPORT para el proceso web. Léela y escucha en 0.0.0.0, no en 127.0.0.1, o el health check no podrá llegar a la app. Con Actix Web, convierte el puerto a u16 y pasa ("0.0.0.0", port) a 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, Nodion compila con --locked, así que un lockfile que no coincida con Cargo.toml hace fallar la build. Nodion toma el nombre del paquete de la primera línea name = de Cargo.toml, así que deja la sección [package] al principio. Cargo.toml [package]
name = "myapp"
version = "0.1.0"
edition = "2024"
[dependencies]
axum = "0.8"
tokio = { version = "1", features = ["full"] } target/release van en la imagen, por ejemplo uno de src/bin/worker.rs. El proceso web ejecuta el binario del paquete; cada uno de los demás binarios se convierte en un tipo de proceso con el mismo nombre. Para ejecutar worker, añade en la pestaña Processes un proceso con ese nombre y sin puerto, y deja vacío su comando. DATABASE_URL llega con el siguiente despliegue, nunca durante la build. Con SQLx, ejecuta cargo sqlx prepare y haz commit de la carpeta .sqlx para que las macros query! compilen sin base de datos. Ejecuta las migraciones al arrancar con sqlx::migrate!(), o compila un binario migrate y ejecútalo como paso de release, una vez por build, antes de que arranque la nueva versión. Procfile release: migrate rust-toolchain.toml y rust-version no seleccionan una toolchain más antigua: cada build usa el Rust estable más reciente que Nodion ha compilado. Las toolchains nightly no están disponibles, así que los crates que necesitan funcionalidades nightly requieren un Dockerfile.cargo build --release en el base directory sin --workspace. En un workspace virtual (un Cargo.toml en la raíz con solo [workspace]), eso compila todos los miembros; con un paquete en la raíz, compila solo ese paquete, así que incluye en workspace.default-members todos los miembros que necesites. Un workspace virtual no tiene nombre de paquete, así que llama al binario web server, api, web o app.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. Sí, como Axum o cualquier otro servidor: escucha en 0.0.0.0 en el puerto PORT que define Nodion. Nodion no tiene ajustes específicos por framework para Rust; compila y arranca tu binario.
Tu Cargo.lock no coincide con Cargo.toml y --locked impide que Cargo lo actualice durante la build. Ejecuta cargo build en local y haz commit del lockfile actualizado.
Siempre el Rust estable más reciente que Nodion ha compilado, actualmente la 1.99.x. Las versiones fijadas en rust-toolchain.toml o rust-version no seleccionan una toolchain más antigua.
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 2.50 EUR al mes: App 1 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.