Framework Frankfurt, Alemanha
A Nodion reconhece o Django pelo manage.py e pela presença do Django nas suas dependências. O buildpack de Python instala-as, executa o collectstatic e arranca o Gunicorn no módulo WSGI do seu projeto. Com uma linha release: num Procfile, as migrações são executadas antes de cada nova versão entrar em produção, e a aplicação e a respetiva base de dados PostgreSQL são executadas em Frankfurt.
manage.py e Django nas suas dependênciasgunicorn <projeto>.wsgi, 3 workerscollectstatic escreve. Fixe a versão de Python em .python-version, porque um intervalo como requires-python = ">=3.10" escolhe a versão mais recente. requirements.txt Django>=5.2
gunicorn
whitenoise
dj-database-url
psycopg[binary] collectstatic é executado durante o build, onde só existem as variáveis marcadas com Build, por isso as definições têm de poder ser importadas sem os segredos de runtime. O Django só verifica a SECRET_KEY quando é usada. Adicione o WhiteNoise logo a seguir ao 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, por isso o Django responderia 400 e a release nunca entraria em produção. Coloque um pequeno middleware em primeiro lugar em MIDDLEWARE e defina /healthz como caminho do health check nas definições da aplicação. 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: num Procfile é executada uma vez por build, depois do build e antes de a nova versão arrancar. Se falhar, o deploy é interrompido e a versão em execução continua online. Procfile release: python manage.py migrate --noinput DATABASE_URL no deploy seguinte. Defina DJANGO_SECRET_KEY como segredo e DJANGO_ALLOWED_HOSTS com o hostname da sua aplicação e os seus próprios domínios, e depois faça push. worker: celery -A myproject worker ao Procfile, juntamente com uma linha explícita web: gunicorn myproject.wsgi --bind 0.0.0.0:$PORT; sem uma linha web:, a primeira entrada do Procfile que não seja release: passa a ser o comando por omissão. Depois, no separador Processes, adicione um processo chamado worker sem porta. O Valkey na mesma região fornece-lhe REDIS_URL como broker.web:, por exemplo com workers Uvicorn, e ponha o servidor a escutar em 0.0.0.0:$PORT.requirements.txt, poetry.lock e Pipfile.lock são instalados tal como estão. Um Pipfile sem o respetivo lockfile não instala nada.DATABASE_URL, REDIS_URL ou CLICKHOUSE_URL. release: do Procfile é executada a cada novo build. As aplicações com Dockerfile, bem como os redeploys ou rollbacks para uma imagem anterior, usam um comando de release definido na própria aplicação, que também tem prioridade sobre a linha do Procfile. Nos sites estáticos, a etapa de release é executada numa imagem que contém apenas os ficheiros gerados pelo build. Só se o pedir: adicione release: python manage.py migrate --noinput a um Procfile. Esta linha é executada uma vez por build, antes de a nova versão arrancar, e uma falha interrompe o deploy.
Normalmente, o health check recebe um 400 por causa de ALLOWED_HOSTS ou um 404 em /. Responda a um caminho como /healthz num middleware colocado antes da verificação do host e defina-o como caminho do health check da aplicação.
Sim. Com um poetry.lock, a Nodion instala o Poetry e executa poetry install --only main. O Pipenv funciona com um Pipfile.lock.
Na região EU Central, em Frankfurt (Alemanha). O build, o registry, a aplicação e as respetivas bases de dados, volumes, buckets, logs e métricas ficam nessa região, e a API e o plano de controlo da Nodion estão alojados na Alemanha. A Nodion GmbH tem sede em Stuttgart.
A Nodion cria as condições para isso: a Nodion GmbH tem sede em Stuttgart (Alemanha); na região de Frankfurt, a aplicação, as bases de dados e os volumes são executados na Alemanha. O acordo de tratamento de dados (DPA, art. 28.º do RGPD) é celebrado eletronicamente no dashboard. A conformidade da sua utilização depende também da forma como configura e utiliza a aplicação.
Uma instância da aplicação custa a partir de 1 EUR por mês. A configuração apresentada no quadro de custos custa 3.50 EUR por mês: Aplicação 2 EUR, PostgreSQL 1.50 EUR. Os preços não incluem IVA e a faturação é ao segundo. Pode escolher tamanhos maiores ou mais instâncias sempre que precisar.
Sim. Cada aplicação recebe um hostname atribuído por omissão com HTTPS. Adicione o seu próprio domínio no separador Domains da aplicação; o certificado TLS é emitido e renovado automaticamente.
Ganhe até 15 € de crédito ao registar-se.
ou com e-mail
Novidades do produto, sem spam. Pode cancelar a subscrição a qualquer momento.
Subscrição efetuada com sucesso.