Język Frankfurt nad Menem, Niemcy
Nodion rozpoznaje Rust po Cargo.toml. Buildpack Rust uruchamia cargo build --release z najnowszym stabilnym toolchainem, kopiuje Twoje pliki binarne do obrazu uruchomieniowego (run image) i uruchamia ten, który nosi nazwę Twojego pakietu; sam toolchain zostaje poza obrazem. Aplikacja działa we Frankfurcie nad Menem, obok zarządzanej bazy danych PostgreSQL, jeśli jej potrzebujesz.
Cargo.tomlserver, api, web lub appPORT dla procesu web. Odczytaj ją i nasłuchuj na 0.0.0.0, a nie na 127.0.0.1, bo inaczej health check nie dotrze do aplikacji. W Actix Web sparsuj port jako u16 i przekaż ("0.0.0.0", port) do 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 buduje z --locked, więc plik lock niezgodny z Cargo.toml kończy build błędem. Nazwę pakietu Nodion bierze z pierwszej linii name = w Cargo.toml, więc trzymaj sekcję [package] na początku pliku. Cargo.toml [package]
name = "myapp"
version = "0.1.0"
edition = "2024"
[dependencies]
axum = "0.8"
tokio = { version = "1", features = ["full"] } target/release trafia do obrazu, na przykład ten z src/bin/worker.rs. Proces web uruchamia plik binarny pakietu; każdy inny plik binarny staje się typem procesu o tej samej nazwie. Aby uruchomić worker, dodaj w zakładce Processes proces o tej nazwie bez portu i zostaw jego polecenie puste. DATABASE_URL pojawi się przy następnym wdrożeniu, nigdy podczas buildu. Z SQLx uruchom cargo sqlx prepare i dodaj do repozytorium katalog .sqlx, aby makra query! kompilowały się bez bazy danych. Uruchamiaj migracje przy starcie przez sqlx::migrate!() albo zbuduj plik binarny migrate i uruchamiaj go jako krok release, raz na build, zanim wystartuje nowa wersja. Procfile release: migrate rust-toolchain.toml i rust-version nie wybierają starszego toolchainu: każdy build używa najnowszej stabilnej wersji Rust dostarczonej przez Nodion. Toolchainy nightly nie są dostępne, więc crate'y wymagające funkcji nightly potrzebują Dockerfile.cargo build --release w katalogu Base directory bez --workspace. W wirtualnym workspace (główny Cargo.toml zawierający tylko [workspace]) buduje to wszystkie elementy (members); przy pakiecie w katalogu głównym buduje tylko ten pakiet, więc wpisz wszystkie potrzebne elementy do workspace.default-members. Wirtualny workspace nie ma nazwy pakietu, więc plikowi binarnemu procesu web nadaj nazwę server, api, web lub app.DATABASE_URL, REDIS_URL lub CLICKHOUSE_URL. release: w Procfile uruchamia się przy każdym nowym buildzie. Aplikacje z Dockerfile, a także ponowne wdrożenia i rollbacki do wcześniejszego obrazu, korzystają z polecenia release ustawionego w samej aplikacji, które ma też pierwszeństwo przed linią z Procfile. W przypadku stron statycznych krok release działa w obrazie zawierającym tylko zbudowane pliki. Tak, podobnie jak Axum czy każdy inny serwer: nasłuchuj na 0.0.0.0 na porcie ze zmiennej PORT, którą ustawia Nodion. Nodion nie ma dla Rusta ustawień specyficznych dla frameworków; buduje i uruchamia Twój plik binarny.
Twój Cargo.lock nie zgadza się z Cargo.toml, a --locked nie pozwala Cargo zaktualizować go podczas buildu. Uruchom lokalnie cargo build i zrób commit zaktualizowanego pliku lock.
Zawsze najnowszej stabilnej wersji Rust dostarczonej przez Nodion, obecnie 1.99.x. Wersje przypięte w rust-toolchain.toml lub rust-version nie wybierają starszego toolchainu.
W regionie EU Central we Frankfurcie nad Menem (Niemcy). Build, rejestr, aplikacja oraz jej bazy danych, wolumeny, buckety, logi i metryki pozostają w tym regionie, a API i warstwa sterowania (control plane) Nodion są hostowane w Niemczech. Nodion GmbH ma siedzibę w Stuttgarcie.
Nodion zapewnia do tego podstawy: Nodion GmbH ma siedzibę w Stuttgarcie (Niemcy), w regionie Frankfurt nad Menem aplikacja, jej bazy danych i wolumeny działają w Niemczech, a umowę powierzenia przetwarzania danych (DPA, art. 28 RODO) zawierasz elektronicznie w dashboardzie. To, czy Twoje wdrożenie spełnia wymogi RODO, zależy też od tego, jak skonfigurujesz aplikację i jak z niej korzystasz.
Instancja aplikacji kosztuje od 1 EUR miesięcznie. Konfiguracja z ramki kosztuje 2.50 EUR miesięcznie: Aplikacja 1 EUR, PostgreSQL 1.50 EUR. Ceny są podane netto, a rozliczenie następuje co do sekundy. Większe rozmiary lub więcej instancji możesz wybrać w dowolnym momencie.
Tak. Każda aplikacja dostaje domyślną nazwę hosta z HTTPS. Własną domenę dodasz w zakładce Domains aplikacji, a certyfikat TLS jest wystawiany i odnawiany automatycznie.
Zyskaj do 15 € środków na start przy rejestracji.
lub przez e-mail
Nowości produktowe, bez spamu. Możesz zrezygnować w każdej chwili.
Zapisano pomyślnie.