Framework Frankfurt nad Menem, Niemcy
Nodion rozpoznaje Django po pliku manage.py i obecności Django w Twoich zależnościach. Buildpack Pythona instaluje je, wykonuje collectstatic i uruchamia Gunicorn dla modułu WSGI Twojego projektu. Dzięki linii release: w pliku Procfile migracje uruchamiają się, zanim każda nowa wersja trafi na produkcję, a aplikacja i jej baza danych PostgreSQL działają we Frankfurcie nad Menem.
manage.py i Django w Twoich zależnościachgunicorn <projekt>.wsgi, 3 workerycollectstatic, serwuje WhiteNoise. Przypnij wersję Pythona w .python-version, bo zakres taki jak requires-python = ">=3.10" wybiera najnowsze wydanie. requirements.txt Django>=5.2
gunicorn
whitenoise
dj-database-url
psycopg[binary] collectstatic działa podczas buildu, w którym istnieją tylko zmienne oznaczone jako Build, więc ustawienia muszą dać się zaimportować bez sekretów potrzebnych dopiero podczas działania aplikacji. Django sprawdza SECRET_KEY dopiero wtedy, gdy jest potrzebny. Dodaj WhiteNoise zaraz po SecurityMiddleware. settings.py import os
import dj_database_url
SECRET_KEY = os.environ.get("DJANGO_SECRET_KEY", "")
DEBUG = os.environ.get("DJANGO_DEBUG") == "1"
ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS", "").split(",")
CSRF_TRUSTED_ORIGINS = [f"https://{h}" for h in ALLOWED_HOSTS if h]
DATABASES = {"default": dj_database_url.config(conn_max_age=600)}
STATIC_ROOT = BASE_DIR / "staticfiles"
# MIDDLEWARE: "whitenoise.middleware.WhiteNoiseMiddleware"
# right after "django.middleware.security.SecurityMiddleware" ALLOWED_HOSTS, więc Django odpowiedziałby kodem 400, a release nigdy nie trafiłby na produkcję. Umieść prosty middleware na pierwszym miejscu w MIDDLEWARE i ustaw w ustawieniach aplikacji /healthz jako ścieżkę health checku. health.py from django.http import HttpResponse
class HealthCheckMiddleware:
def __init__(self, get_response):
self.get_response = get_response
def __call__(self, request):
if request.path == "/healthz":
return HttpResponse("ok")
return self.get_response(request) release: w pliku Procfile uruchamia się raz na każdy build, po buildzie i przed startem nowej wersji. Jeśli zakończy się błędem, wdrożenie zostanie zatrzymane, a działająca wersja nadal obsługuje ruch. Procfile release: python manage.py migrate --noinput DATABASE_URL. Ustaw DJANGO_SECRET_KEY jako sekret i DJANGO_ALLOWED_HOSTS na nazwę hosta aplikacji oraz Twoje własne domeny, a potem zrób push. worker: celery -A myproject worker razem z jawną linią web: gunicorn myproject.wsgi --bind 0.0.0.0:$PORT; bez linii web: domyślnym poleceniem staje się pierwszy wpis w Procfile inny niż release:. Następnie w zakładce Processes dodaj proces o nazwie worker bez portu. Valkey w tym samym regionie daje Ci REDIS_URL jako broker.web:, na przykład z workerami Uvicorn, a serwer powiąż z 0.0.0.0:$PORT.requirements.txt, poetry.lock i Pipfile.lock są instalowane bez zmian. Pipfile bez pliku lock nie instaluje niczego.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. Tylko jeśli tego chcesz: dodaj release: python manage.py migrate --noinput do pliku Procfile. Ta linia uruchamia się raz na każdy build, przed startem nowej wersji, a błąd zatrzymuje wdrożenie.
Zwykle health check dostaje 400 z powodu ALLOWED_HOSTS albo 404 na /. Odpowiadaj na ścieżce takiej jak /healthz w middleware umieszczonym przed sprawdzeniem hosta i ustaw ją jako ścieżkę health checku aplikacji.
Tak. Gdy jest poetry.lock, Nodion instaluje Poetry i uruchamia poetry install --only main. Pipenv działa z Pipfile.lock.
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.