Framework Frankfurt nad Menem, Niemcy
Rails 7.1 i nowsze generują Dockerfile, a Nodion buduje z niego Twoją aplikację: Ruby, gemy, bundling JavaScriptu i assets:precompile działają tak, jak skonfigurował je Rails. Aplikacje z importmap i bez package.json mogą zamiast tego użyć buildpacka Ruby, który prekompiluje zasoby i uruchamia serwer Puma. W obu przypadkach aplikacja i jej baza danych PostgreSQL działają we Frankfurcie nad Menem.
config/puma.rb (buildpacki)/up, wbudowany w Rails 7.1+RAILS_MASTER_KEY z zawartością config/master.key jako sekret. Dla aplikacji z Dockerfile Nodion nie ustawia PORT: serwer nasłuchuje na porcie procesu web, który formularz uzupełnia na podstawie EXPOSE. Rails 7.1 i 7.2 wystawiają port 3000 dla serwera Puma. Rails 8 wystawia port 80 dla Thrustera, który działa przed serwerem Puma; obraz działa jako użytkownik bez uprawnień roota, więc ustaw HTTP_PORT=8080 i w zakładce Processes podaj 8080 jako port procesu web. DATABASE_URL, które otrzyma przy następnym wdrożeniu. Wygenerowany bin/docker-entrypoint uruchamia bin/rails db:prepare przed startem serwera Rails, więc oczekujące migracje wykonują się podczas uruchamiania nowej wersji. Możesz też ustawić ./bin/rails db:migrate jako polecenie release aplikacji (pole API release_command, zobacz przewodnik po Dockerze), które jest wykonywane raz na wdrożenie, przed startem nowej wersji. /up kodem 200, gdy tylko aplikacja się uruchomi; ustaw tę ścieżkę jako ścieżkę health checku w ustawieniach aplikacji. Nodion odpytuje każdą instancję z jej wewnętrznym adresem IP jako Host, więc jeśli ustawiasz config.hosts, wyklucz /up ze sprawdzania hostów (host authorization), bo inaczej release nigdy nie trafi na produkcję. config/environments/production.rb config.hosts << "www.example.com"
config.host_authorization = { exclude: ->(request) { request.path == "/up" } } package.json może zamiast tego wybrać Buildpacks w formularzu tworzenia aplikacji. Nodion uruchamia wtedy bundle install bez gemów development i test oraz assets:precompile z RAILS_ENV=production i SECRET_KEY_BASE_DUMMY=1, startuje serwer Puma z config/puma.rb na porcie PORT i ustawia RAILS_SERVE_STATIC_FILES oraz RAILS_LOG_TO_STDOUT. Migracje uruchamiasz z Procfile: Procfile release: bin/rails db:migrate worker: bin/jobs (Solid Queue) lub worker: bundle exec sidekiq razem z jawną linią web: bundle exec puma -C config/puma.rb; bez linii web: pierwszy wpis w Procfile inny niż release: staje się domyślnym poleceniem. Następnie dodaj w zakładce Processes proces o nazwie worker bez portu. Przy Dockerfile nadaj temu procesowi zamiast tego polecenie ./bin/jobs lub bundle exec sidekiq. Valkey w tym samym regionie zapewnia Sidekiq zmienną REDIS_URL.config/database.yml dla produkcji także bazy cache, queue i cable, a DATABASE_URL ustawia tylko główną. Przed pierwszym wdrożeniem skonfiguruj połączenie także dla pozostałych albo usuń te, których Twoja aplikacja nie używa.RUBY_VERSION w Dockerfile. Przy buildpackach Nodion odczytuje .ruby-version lub linię ruby w Gemfile i oferuje 3.3, 3.4 (domyślnie) i 4.0.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. Zwykle nie. Ustaw RAILS_MASTER_KEY jako sekret, sprawdź port procesu web (oraz HTTP_PORT w Rails 8) i użyj /up jako ścieżki health checku.
Przy wygenerowanym Dockerfile bin/docker-entrypoint uruchamia db:prepare przy starcie serwera Rails. Przy buildpackach dodaj release: bin/rails db:migrate do Procfile; ta linia jest wykonywana raz na build, przed startem nowej wersji, a błąd zatrzymuje wdrożenie.
Zwykle health check dostaje 404 na /, bo nie ma trasy głównej (root route), albo 403 ze sprawdzania hostów. Ustaw /up jako ścieżkę health checku i wyklucz ją ze sprawdzania hostów. W Rails 8 z Dockerfile sprawdź też, czy port procesu web zgadza się z HTTP_PORT.
Tak, przez Dockerfile: build JavaScriptu działa w Twoim Dockerfile, tak jak w tym, który Rails generuje dla jsbundling i cssbundling. Ścieżka z buildpackami jest przeznaczona dla aplikacji z importmap bez package.json.
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 5.50 EUR miesięcznie: Aplikacja 4 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.