Framework Francoforte, Germania
Nodion riconosce Django da manage.py e dalla presenza di Django tra le tue dipendenze. Il buildpack Python le installa, esegue collectstatic e avvia Gunicorn sul modulo WSGI del tuo progetto. Con una riga release: in un Procfile, le migrazioni vengono eseguite prima che ogni nuova versione vada online; l'app e il suo database PostgreSQL girano a Francoforte.
manage.py e Django tra le tue dipendenzegunicorn <progetto>.wsgi, 3 workercollectstatic. Fissa la versione di Python in .python-version, perché un intervallo come requires-python = ">=3.10" sceglie la release più recente. requirements.txt Django>=5.2
gunicorn
whitenoise
dj-database-url
psycopg[binary] collectstatic viene eseguito durante la build, dove esistono solo le variabili contrassegnate con Build, quindi le impostazioni devono poter essere importate senza le variabili segrete di runtime. Django controlla SECRET_KEY solo quando la usa. Aggiungi WhiteNoise subito dopo 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: Django risponderebbe con 400 e la release non andrebbe mai online. Metti un piccolo middleware al primo posto in MIDDLEWARE e imposta /healthz come percorso dell'health check nelle impostazioni dell'app. 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: in un Procfile viene eseguita una volta per ogni build, dopo la build e prima che parta la nuova versione. Se fallisce, il deploy si ferma e la versione in esecuzione resta online. Procfile release: python manage.py migrate --noinput DATABASE_URL. Imposta DJANGO_SECRET_KEY come variabile segreta e DJANGO_ALLOWED_HOSTS con l'hostname della tua app e i tuoi domini, poi fai push. worker: celery -A myproject worker insieme a una riga esplicita web: gunicorn myproject.wsgi --bind 0.0.0.0:$PORT; senza una riga web:, la prima voce del Procfile diversa da release: diventa il comando predefinito. Poi, nella scheda Processes, aggiungi un processo chiamato worker senza porta. Valkey nella stessa regione ti fornisce REDIS_URL come broker.web:, per esempio con worker Uvicorn, e metti il server in ascolto su 0.0.0.0:$PORT.requirements.txt, poetry.lock e Pipfile.lock vengono installati così come sono. Un Pipfile senza il suo lock file non installa nulla.DATABASE_URL, REDIS_URL o CLICKHOUSE_URL. release: del Procfile viene eseguita a ogni nuova build. Le app con Dockerfile, così come i redeploy e i rollback a un'immagine precedente, usano un comando di release impostato sull'app stessa, che ha anche la precedenza sulla riga del Procfile. Nei siti statici, la fase di release gira in un'immagine che contiene solo i file generati dalla build. Solo se glielo chiedi: aggiungi release: python manage.py migrate --noinput a un Procfile. La riga viene eseguita una volta per ogni build, prima che parta la nuova versione, e un errore ferma il deploy.
Di solito l'health check riceve un 400 a causa di ALLOWED_HOSTS o un 404 su /. Rispondi a un percorso come /healthz in un middleware posto prima del controllo dell'host e impostalo come percorso dell'health check dell'app.
Sì. Con un poetry.lock, Nodion installa Poetry ed esegue poetry install --only main. Pipenv funziona con un Pipfile.lock.
Nella regione EU Central a Francoforte, in Germania. La build, il registry, l'app e i suoi database, volumi, bucket, log e metriche restano in quella regione. L'API e il control plane di Nodion sono ospitati in Germania. Nodion GmbH ha sede a Stoccarda.
Nodion offre le basi per farlo: Nodion GmbH ha sede a Stoccarda, in Germania; nella regione di Francoforte l'app, i suoi database e i volumi girano in Germania; puoi sottoscrivere il DPA (accordo sul trattamento dei dati, art. 28 GDPR) in formato elettronico nella dashboard. La conformità del tuo utilizzo dipende anche da come configuri e usi l'app.
Un'istanza dell'app costa da 1 EUR al mese. La configurazione mostrata nel riquadro costa 3.50 EUR al mese: App 2 EUR, PostgreSQL 1.50 EUR. I prezzi sono IVA esclusa e la fatturazione è al secondo. Puoi scegliere dimensioni più grandi o più istanze quando ti servono.
Sì. Ogni app riceve un hostname predefinito con HTTPS. Aggiungi il tuo dominio nella scheda Domains dell'app; il certificato TLS viene emesso e rinnovato automaticamente.
Fino a 15 € di credito quando ti registri.
oppure con l'email
Novità sul prodotto, niente spam. Puoi annullare l'iscrizione quando vuoi.
Iscrizione completata.