Język Frankfurt nad Menem, Niemcy

Wdróż Elixir and Phoenix na Nodion

Nodion rozpoznaje aplikację Elixir po pliku mix.exs. Buildpack Elixir pobiera Twoje zależności, uruchamia mix assets.deploy, jeśli Twój projekt go definiuje, i buduje release Mix, który startuje z PHX_SERVER=true. Erlang i Elixir nie trafiają do obrazu uruchomieniowego (run image), a aplikacja i jej baza danych PostgreSQL działają we Frankfurcie nad Menem.

Wdróż na Nodion ›

od 1 EUR / mies.

Do 15 € środków na start przy rejestracji

Wykrywane po
mix.exs
Start
bin/<app> start z release'u
Elixir / OTP
Elixir od 1.16 do 1.20 (domyślnie 1.20), OTP od 27 do 29 (domyślnie 28)
Region
EU Central (Frankfurt)

Wdróż Elixir and Phoenix krok po kroku

  1. Wygeneruj pliki release'u Nodion buduje Twoją aplikację przez mix release. W projekcie Phoenix mix phx.gen.release dodaje to, czego do tego potrzebujesz: moduł Release z funkcją migrate oraz skrypty bin/server i bin/migrate. Dodaj wygenerowane pliki do repozytorium.
    mix phx.gen.release
  2. Odczytuj konfigurację podczas działania i nasłuchuj na IPv4 Projekt utworzony przez mix phx.new ma już config/runtime.exs, który na produkcji odczytuje PORT, SECRET_KEY_BASE, DATABASE_URL i PHX_HOST. Instancje aplikacji w Nodion używają IPv4, więc ustaw ip endpointu na {0, 0, 0, 0}: config/runtime.exs
    config :my_app, MyAppWeb.Endpoint,
      url: [host: host, port: 443, scheme: "https"],
      http: [ip: {0, 0, 0, 0}, port: port],
      secret_key_base: secret_key_base
  3. Buduj zasoby bez Node.js W buildzie Elixir nie ma Node.js. Phoenix 1.7 i nowsze używają samodzielnych plików binarnych esbuild i Tailwind, a Nodion uruchamia podczas buildu Twój alias assets.deploy. Jeśli Twój proces budowania zasobów wywołuje npm, przestaw go na te narzędzia albo wdrażaj przez Dockerfile. mix.exs
    "assets.deploy": [
      "tailwind my_app --minify",
      "esbuild my_app --minify",
      "phx.digest"
    ]
  4. Uruchamiaj migracje z release'u Mix nie znajduje się w obrazie uruchomieniowym, więc migracje uruchamiasz przez release, który Nodion buduje w /layers/nodion_elixir/release/release. Jego skrypt bin/migrate z kroku 1 wywołuje Release.migrate. Linia release: w Procfile jest wykonywana raz na build, przed startem nowej wersji; jeśli się nie powiedzie, działająca wersja pozostaje online. Procfile
    release: /layers/nodion_elixir/release/release/bin/migrate
  5. Utwórz aplikację, bazę danych i sekrety Utwórz aplikację ze swojego repozytorium GitHub, GitLab, Bitbucket lub Gitea w regionie EU Central, a strategię buildu zostaw na Buildpacks. Utwórz bazę danych PostgreSQL w tym samym regionie i podłącz ją w zakładce Environment: przy następnym wdrożeniu trafi do aplikacji jako DATABASE_URL. Dodaj jako sekret SECRET_KEY_BASE wygenerowany przez mix phx.gen.secret i ustaw PHX_HOST na domenę, którą otwierają Twoi użytkownicy. PORT ustawia Nodion.

Warto wiedzieć

  • Przypnij wersje Elixir i ErlangNodion odczytuje elixir i erlang z .tool-versions, a Elixir także z .elixir-version. Wymaganie elixir: w mix.exs to zakres i niczego nie przypina. Bez przypięcia dostajesz Elixir 1.20 na OTP 28.
  • Polecenie startowe i health checkNodion uruchamia bin/<app> start z release'u, z nazwą aplikacji z mix.exs, i ustawia PHX_SERVER=true, aby endpoint serwował HTTP. Ruch przechodzi na nową wersję, gdy / odpowie kodem 2xx lub 3xx; jeśli / wymaga logowania, ustaw w ustawieniach aplikacji inną ścieżkę health checku.

Czym Nodion zajmuje się za Ciebie

  • Wdrożenia bez przestojów Wypchnij zmiany do swojej gałęzi, a Nodion zbuduje nowy release. Ruch przełącza się, gdy nowe instancje przejdą health check; nieudany release nie wpływa na działającą wersję. Aplikacje z lokalnym wolumenem są natomiast uruchamiane ponownie, bo dysk należy do jednej instancji.
  • Bazy danych obok aplikacji Zarządzane PostgreSQL, pgvector, MySQL, Valkey i ClickHouse w tym samym regionie. Podłączone bazy danych trafiają do aplikacji jako DATABASE_URL, REDIS_URL lub CLICKHOUSE_URL.
  • Środowiska podglądu dla pull requestów Włącz środowiska podglądu, a każdy pull request z Twojego repozytorium dostanie własną aplikację z własnym adresem URL i nowymi, pustymi bazami danych, tworzoną automatycznie lub ręcznie. Forki i pull requesty od botów są pomijane.
  • Workery, zadania cron i skalowanie Uruchamiaj workery jako dodatkowe procesy tej samej aplikacji, planuj zadania w zakładce Cron i skaluj każdy proces do 16 instancji.
  • Etap release W przypadku buildpacków linia 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.
  • Logi i metryki W dashboardzie znajdziesz logi z builda, release'u i działania aplikacji oraz metryki CPU, pamięci, dysku i sieci dla każdej instancji.
  • Domeny i HTTPS Domyślna nazwa hosta z HTTPS od pierwszego wdrożenia; Twoje własne domeny automatycznie dostają certyfikaty.

Warto przeczytać

Elixir and Phoenix na Nodion: pytania i odpowiedzi

Czy potrzebuję Dockerfile dla Phoenix?

Nie. Buildpack Elixir buduje release Mix z mix.exs, o ile Twoje zasoby budują się bez Node.js. Jeśli w Twoim repozytorium jest Dockerfile, formularz tworzenia aplikacji wybiera tę strategię i Nodion buduje wtedy obraz z Dockerfile.

Jak uruchomić migracje Ecto?

Przez release: wygeneruj moduł Release poleceniem mix phx.gen.release i dodaj release: /layers/nodion_elixir/release/release/bin/migrate do Procfile. Ta linia jest wykonywana raz na build, przed startem nowej wersji, a błąd zatrzymuje wdrożenie.

Jakie wersje Elixir i Erlang/OTP są dostępne?

Elixir od 1.16 do 1.20 i Erlang/OTP od 27 do 29. Bez przypięcia Nodion buduje z Elixir 1.20 na OTP 28; przypnij obie wersje w .tool-versions. Erlanga i Elixira używa tylko build, bo release ma własny runtime.

Gdzie działa moja aplikacja Elixir and Phoenix?

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.

Czy mogę wykorzystywać Elixir and Phoenix zgodnie z RODO?

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.

Ile kosztuje uruchomienie Elixir and Phoenix na Nodion?

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.

Czy mogę użyć własnej domeny dla mojej aplikacji Elixir and Phoenix?

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.

Daj swojemu agentowi chmurę.

Zyskaj do 15 € środków na start przy rejestracji.

Kontynuuj z GitHub

lub przez e-mail

Bądź na bieżąco.

Nowości produktowe, bez spamu. Możesz zrezygnować w każdej chwili.