Framework Frankfurt, Duitsland
Nodion herkent Django aan manage.py en Django in je dependencies. Het Python-buildpack installeert ze, voert collectstatic uit en start Gunicorn op de WSGI-module van je project. Met een release:-regel in een Procfile draaien migraties voordat elke nieuwe versie live gaat, en de app en de bijbehorende PostgreSQL-database draaien in Frankfurt.
manage.py en Django in je dependenciesgunicorn <project>.wsgi, 3 workerscollectstatic wegschrijft. Leg de Python-versie vast in .python-version, want een bereik zoals requires-python = ">=3.10" kiest de nieuwste release. requirements.txt Django>=5.2
gunicorn
whitenoise
dj-database-url
psycopg[binary] collectstatic draait tijdens de build, waar alleen variabelen met de vlag Build bestaan, dus je settings moeten zonder runtime-secrets kunnen worden geïmporteerd. Django controleert SECRET_KEY pas wanneer die wordt gebruikt. Voeg WhiteNoise direct na SecurityMiddleware toe. 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. Django zou dan 400 antwoorden en de release zou nooit live gaan. Zet een kleine middleware bovenaan in MIDDLEWARE en stel in de app-instellingen /healthz in als pad van de health check. 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:-regel in een Procfile draait één keer per build, na de build en voordat de nieuwe versie start. Mislukt hij, dan stopt de deployment en blijft de draaiende versie live. Procfile release: python manage.py migrate --noinput DATABASE_URL. Stel DJANGO_SECRET_KEY in als secret en DJANGO_ALLOWED_HOSTS op de hostname van je app en je eigen domeinen, en push dan. worker: celery -A myproject worker toe aan het Procfile, samen met een expliciete regel web: gunicorn myproject.wsgi --bind 0.0.0.0:$PORT; zonder web:-regel wordt de eerste Procfile-regel die geen release: is het standaardcommando. Voeg daarna op het tabblad Processes een proces met de naam worker zonder poort toe. Valkey in dezelfde regio geeft je REDIS_URL als broker.web:-regel in, bijvoorbeeld met Uvicorn-workers, en bind je die aan 0.0.0.0:$PORT.requirements.txt, poetry.lock en Pipfile.lock worden geïnstalleerd zoals ze zijn. Een Pipfile zonder lockbestand installeert niets.DATABASE_URL, REDIS_URL of CLICKHOUSE_URL. release:-regel in het Procfile bij elke nieuwe build. Dockerfile-apps, en redeploys of rollbacks naar een eerdere image, gebruiken een releasecommando dat op de app zelf is ingesteld en dat ook voorrang heeft op de Procfile-regel. Bij statische sites draait een releasestap in een image die alleen de gebouwde bestanden bevat. Alleen als je daarom vraagt: voeg release: python manage.py migrate --noinput toe aan een Procfile. Die regel draait één keer per build voordat de nieuwe versie start, en een fout stopt de deployment.
Meestal krijgt de health check een 400 door ALLOWED_HOSTS of een 404 op /. Beantwoord een pad zoals /healthz in een middleware die vóór de hostcontrole staat, en stel het in als pad van de health check van de app.
Ja. Met een poetry.lock installeert Nodion Poetry en voert het poetry install --only main uit. Pipenv werkt met een Pipfile.lock.
In de regio EU Central in Frankfurt, Duitsland. Build, registry, de app en de bijbehorende databases, volumes, buckets, logs en metrics blijven in die regio, en de API en het control plane van Nodion worden in Duitsland gehost. Nodion GmbH is gevestigd in Stuttgart.
Nodion biedt hiervoor de basis: Nodion GmbH is gevestigd in Stuttgart (Duitsland). Kies je de regio Frankfurt, dan draaien de app, de databases en de volumes in Duitsland. De verwerkersovereenkomst (DPA, art. 28 AVG) sluit je elektronisch af in het dashboard. Of je configuratie aan de AVG voldoet, hangt ook af van hoe je de app instelt en gebruikt.
Een appinstantie kost vanaf 1 EUR per maand. De configuratie in het kostenoverzicht kost 3.50 EUR per maand: App 2 EUR, PostgreSQL 1.50 EUR. Prijzen zijn excl. btw en worden per seconde gefactureerd, en je kiest grotere formaten of meer instanties wanneer je ze nodig hebt.
Ja. Elke app krijgt een standaardhostnaam met HTTPS. Voeg je eigen domein toe op het tabblad Domains van de app; het TLS-certificaat wordt automatisch uitgegeven en vernieuwd.
Ontvang tot € 15 welkomsttegoed bij je registratie.
of met e-mail
Productnieuws, geen spam. Je kunt je altijd weer afmelden.
Je bent aangemeld.