Język Frankfurt nad Menem, Niemcy
Połącz repozytorium z plikiem package.json, a Nodion zbuduje aplikację swoim buildpackiem Node.js: zainstaluje zależności z pliku lockfile, uruchomi Twój skrypt build i uruchomi serwer za pomocą Twojego skryptu start. Tak działają Express, Fastify, Hono i inne serwery Node.js, a także projekty Bun. Aplikacja działa we Frankfurcie nad Menem, obok zarządzanej bazy danych PostgreSQL, jeśli jej potrzebujesz.
package.json bez statycznego frameworka frontendowegostart, w przeciwnym razie node server.js, index.js lub app.jsPORT dla procesu web i kieruje tam ruch. Odczytaj tę zmienną i nasłuchuj na 0.0.0.0. Fastify domyślnie nasłuchuje na localhost, więc przekaż host: '0.0.0.0' do listen. server.js const express = require("express");
const app = express();
app.get("/", (req, res) => res.send("ok"));
const port = process.env.PORT || 3000;
app.listen(port, "0.0.0.0"); package-lock.json, yarn.lock, pnpm-lock.yaml lub bun.lock; bez pliku lockfile build kończy się błędem. Nodion uruchamia skrypt start bezpośrednio, więc hooki npm, takie jak prestart, się nie wykonują. Bez skryptu start znane frameworki, takie jak Nuxt, otrzymują własne polecenie domyślne; wszystko inne uruchamia się przez node server.js, index.js lub app.js, a w ostateczności przez node .. Zależności deweloperskie są usuwane po buildzie, więc narzędzia potrzebne podczas działania aplikacji, takie jak tsx czy CLI do migracji, powinny być w dependencies. package.json "scripts": {
"start": "node server.js"
} build i nie istnieje żaden z plików server.js, app.js, index.js, src/server.js, src/index.js ani src/app.js, Nodion traktuje repozytorium jako stronę statyczną i nie uruchamia Twojego serwera. Dokładnie tak wygląda serwer w TypeScripcie, który tsc kompiluje do dist/. Dodaj obok package.json plik index.js, który ładuje skompilowany serwer (przykład wymaga "type": "module"; w CommonJS napisz require("./dist/server.js")), i skieruj skrypt start na skompilowany plik, na przykład node dist/server.js, a nie na narzędzie deweloperskie. index.js import "./dist/server.js"; DATABASE_URL. Linia release: w Procfile uruchamia się raz na każdy build, po buildzie i przed startem nowej wersji; jeśli się nie powiedzie, działająca wersja pozostaje online. Procfile release: npm run migrate / odpowie statusem 2xx lub 3xx. Jeśli Twoje API odpowiada na / kodem 404, dodaj trasę taką jak /health i ustaw ją w ustawieniach aplikacji jako ścieżkę health checku. vite jest w dependencies lub devDependencies, Nodion buduje repozytorium jako stronę statyczną i publikuje tylko wynik buildu, nawet jeśli istnieje server.js. To samo dotyczy projektów Angular, Gatsby, Create React App i Eleventy. Dla serwera Node.js, który buduje też frontend Vite, użyj Dockerfile.bun.lock, Nodion instaluje zależności i uruchamia build przez Bun. Aplikacja nadal startuje przez skrypt start, więc skrypt musi wywoływać Bun, na przykład "start": "bun run index.ts"; bez skryptu start Nodion uruchamia aplikację przez node. Opisana wyżej zasada pliku wejściowego dotyczy też projektów Bun.web: node server.js i worker: node worker.js do Procfile; bez linii web: pierwszy wpis w Procfile inny niż release: staje się poleceniem domyślnym. Następnie w zakładce Processes dodaj proces o nazwie worker bez portu. Valkey w tym samym regionie daje Twojej kolejce REDIS_URL.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. Nodion znalazł skrypt build, ale żadnego z plików wejściowych server.js, app.js ani index.js (sprawdzanych też w src/), albo znalazł w package.json statyczny framework frontendowy, taki jak Vite. Dodaj obok package.json plik index.js, który ładuje Twój skompilowany serwer; jeśli Vite jest w tym samym package.json, użyj Dockerfile.
Node.js 24, chyba że wybierzesz inną. Nodion odczytuje .node-version, .nvmrc i engines.node, w tej kolejności. Zakres wersji jest rozwiązywany do najnowszego pasującego wydania, więc "node": ">=20" daje Node.js 26; wpisz 24 do .nvmrc, aby zostać przy 24.
Tak. Nodion wybiera menedżer pakietów na podstawie pliku lockfile (pnpm-lock.yaml, yarn.lock, bun.lock lub package-lock.json) i instaluje dokładnie te wersje, które są w nim zapisane. Projekty Bun potrzebują też skryptu start, który wywołuje bun.
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 3.50 EUR miesięcznie: Aplikacja 2 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.