Guia de deploy · Django
Implante Django em minutos.
Conecte o repositório, o Railpack faz o build e o serviço recebe um domínio com TLS. Bancos de dados a partir de templates, uso descontado por minuto de um saldo pré-pago, tudo em nós na UE.
$ npm i -g skiffly && skiffly login
$ cd mysite && skiffly init
$ skiffly deploy --template postgres
$ skiffly variables set 'DATABASE_URL=${{Postgres.DATABASE_URL}}'
$ skiffly upO que o Railpack detecta
O Railpack inspeciona o repositório e escolhe o build para Django; a maioria dos projetos não precisa de configuração. Um Dockerfile no repositório sempre tem prioridade.
- requirements.txt / pyproject.toml / Pipfile
- manage.py
- .python-version / runtime.txt
- Builder
- Railpack (padrão)
- Comando de inicialização
- python manage.py migrate && python manage.py collectstatic --noinput && gunicorn mysite.wsgi --bind 0.0.0.0:$PORT
Derivado pelo Railpack; substitua em Configurações → Deploy → Comando de inicialização.
Porta e $PORT
A Skiffly injeta PORT em todos os serviços e roteia o domínio público para ela. Defina a porta nas configurações do serviço quando seu app escutar em uma porta fixa; o padrão é 8000 para Django, 8080 quando nada é definido.
gunicorn mysite.wsgi --bind 0.0.0.0:$PORT- PORT
- 8000
- SKIFFLY_PUBLIC_DOMAIN
- <service>.skiffly.cloud
A partir de um terminal
Instale a CLI, vincule o diretório, implante. skiffly up faz o build do HEAD enviado da branch atual e transmite os logs do build; skiffly domain dá ao serviço um endereço *.skiffly.cloud.
Ou descreva uma vez só
.skiffly/skiffly.ts declara o serviço, seus bancos de dados e as referências entre eles. skiffly config plan mostra o diff, skiffly config apply aplica. A API espelha railway/iac.
// .skiffly/skiffly.ts
import { defineSkiffly, generate, github, postgres, project, service } from "@skiffly/config";
export default defineSkiffly(() => {
const db = postgres("db");
const web = service("web", {
source: github("acme/web"),
start: "python manage.py migrate && gunicorn mysite.wsgi --bind 0.0.0.0:$PORT",
port: 8000,
healthcheck: "/",
env: {
DATABASE_URL: db.env.DATABASE_URL,
SECRET_KEY: generate("hex64"),
},
});
return project("web", { resources: [web, db] });
});Funciona com os templates de que você precisa
Implante um banco de dados ao lado do serviço Django e referencie suas variáveis: ${{Postgres.DATABASE_URL}} é conectada na rede privada, sem porta pública.
Django na Skiffly: perguntas frequentes
Como defino variáveis de ambiente para Django?
skiffly variables set KEY=value ou em .skiffly/skiffly.ts. Referencie outros serviços com ${{Postgres.DATABASE_URL}} e valores de todo o ambiente com ${{shared.NAME}}. Os segredos são criptografados em repouso.Posso alterar o comando de build ou de inicialização?
Como adiciono Postgres ou Redis?
skiffly connect postgres.Tenho ambientes de pré-visualização por pull request?
Quanto custa um app Django pequeno?
O serviço Django pode entrar em repouso quando ocioso?
Implante seu app Django hoje
Plano Free sem cartão. Hobby a partir de $5 com $5 de uso incluídos.