Django é um framework maduro para a criação de aplicações web e APIs em Python, com ORM, um sistema de migração e um painel de administrador integrado e pronto a usar. No entanto, uma aplicação Django personalizada precisa de um processo WSGI em execução (normalmente gunicorn) a ser mantido em segundo plano, não apenas de um diretório com ficheiros - tal como o Next.js precisa de um processo Node. Num alojamento partilhado normal, tal processo não pode ser executado. No Saplo, executas o Django como um serviço gerido com reinício automático, e o nginx serve ficheiros estáticos e multimédia ao lado.
Para quem é o Django na Saplo
Antes de começares a instalação, verifica se é uma boa escolha para o teu projeto:
- Tens um projeto Django próprio - A Saplo executa o gunicorn como um serviço gerido, não precisas de escrever a configuração do systemd tu próprio,
- API para uma aplicação móvel ou um frontend SPA separado - Django Rest Framework ou visualizações JSON normais, o frontend (React, Vue) é configurado separadamente a partir do mesmo diretório,
- Projeto que cresceu a partir de um plano gratuito Heroku, Render ou PythonAnywhere - migras o código sem alterações na própria aplicação, adicionando apenas
saplo.yaml, - Queres implementações com
git pushem vez de carregar ficheiros manualmente - conectas o repositório uma vez e a Saplo constrói, migra e reinicia o serviço automaticamente.
Requisitos
Para instalar o Django na Saplo, precisas de:
- Um Box no plano L ou superior, se o projeto usar a sua própria base de dados Postgres e tráfego real - um starter com SQLite caberá num plano inferior, mas uma base de dados de produção e maior tráfego requerem mais RAM,
- Mínimo de 256 MB de RAM livre e 2 GB de espaço em disco para o processo da aplicação (starter),
- Versão Python 3.11 ou 3.12 para instalações do catálogo, 3.13 disponível para implementações via Git,
- Um domínio ou subdomínio
*.saploapp.plincluído em cada plano, - Um repositório Git, se quiseres usar a implementação automática (opcional para começar, também podes carregar a aplicação como um arquivo
.zipatravés do painel).
Instalação passo a passo
- No Painel da Saplo, vai a Catálogo de aplicações e escolhe Django (categoria "Aplicações").
- Indica a Box e o nome da aplicação - a partir dele é criado o subdomínio padrão
<name>.saploapp.pl. - Seleciona a versão do Python (3.11 ou 3.12, por predefinição 3.12) e confirma a instalação.
- O motor cria um novo projeto Django com uma base de dados SQLite (suficiente para iniciar e testar), configura o gunicorn através do supervisor na porta 8000, e o nginx encaminha o tráfego do domínio para esta porta.
- Após a conclusão da instalação, o domínio do passo 2 mostra o esqueleto Django em funcionamento - a partir deste momento, implementas o teu próprio projeto nele.
Implementar o teu próprio código através do Git
- Nos detalhes da aplicação, encontra a secção Git / CI-CD e clica em "Ligar GitHub", confirma a instalação da aplicação "Saplo Deploy" e seleciona o repositório com o projeto Django.
- No diretório raiz do repositório, coloca o ficheiro
saplo.yamlcom o comando de compilação (por exemplo,collectstatic) e os pacotes de sistema necessários (por exemplo,libpq-dev, se te conectares ao Postgres). - As migrações são executadas pelo hook
hooks.post_deploy: python manage.py migrate- executa-se após a compilação, antes do início da aplicação, para que não precises de te ligar via SSH após cada implementação. - A tua própria base de dados Postgres é criada como uma aplicação separada do catálogo (Bases de dados), e ao criar a aplicação Django, seleciona-a na secção Ligar à base de dados - a variável
DATABASE_URLé automaticamente adicionada ao processo da aplicação. - Faz commit e push do
saplo.yamlpara o branch de produção (por predefiniçãomain). Cadagit pushsubsequente compila, migra e reinicia o serviço; podes ver o Estado no separador Deployments.
Exemplo de um ficheiro saplo.yaml mínimo para Django:
name: my-project
stack: django
runtime:
python: "3.13"
build:
install: pip install -r requirements.txt
command: python manage.py collectstatic --noinput
packages:
- libpq-dev
env:
DJANGO_SETTINGS_MODULE: config.settings.production
hooks:
post_deploy: python manage.py migrate
start:
command: gunicorn config.wsgi:application
port: 8000
Tens o teu próprio Dockerfile no projeto e preferes ter controlo total sobre o ambiente de execução? No catálogo, escolhe a stack Docker em vez de Django - assim, o Saplo não fará um build+gunicorn+nginx nativo para /static/, mas sim executará a tua imagem tal como a construíste.
Django na Saplo vs. alternativas
| PythonAnywhere | Heroku / Render | Django na Saplo | |
|---|---|---|---|
| Modelo de faturação | limite de CPU no plano gratuito, planos superiores pagos | consumo de recursos, aumenta com o tráfego | custo fixo da Box |
| Implementações com Git | limitadas, principalmente upload manual | sim, nativo | sim, git push para o ramo de produção |
| Migrações pós-implementação | manualmente via consola | release phase no Procfile | hook post_deploy no saplo.yaml |
| Base de dados Postgres própria | serviço separado, custo adicional | addon separado, faturado à parte | aplicação separada do mesmo catálogo |
Perguntas Frequentes
A base de dados SQLite do starter é adequada para produção? Para tráfego baixo e testes, sim, mas com mais tráfego, liga o Postgres a partir do Catálogo de aplicações (secção Bases de dados) e seleciona-o ao criar a aplicação Django.
As migrações são executadas automaticamente a cada implementação?
Sim, se adicionares o hook hooks.post_deploy: python manage.py migrate em saplo.yaml - executa-se após a construção, antes do início da aplicação.
Posso ter um processo adicional ao lado do Django, por exemplo, um worker Celery?
Sim, o campo processes em saplo.yaml permite definir processos adicionais que são executados juntamente com o principal.
E se o meu projeto se conectar ao Postgres e precisar de libpq?
Insere o pacote de sistema na secção packages do ficheiro saplo.yaml - será instalado antes da construção.
Vou receber SSL e o meu próprio Domínio?
Sim, o certificado SSL é automático e o Domínio ou subdomínio *.saploapp.pl está incluído no preço de qualquer plano.
No Saplo, configuras o Django do zero para um domínio funcional em minutos, e cada git push subsequente constrói, migra e reinicia o serviço sem a tua intervenção. Se o projeto precisar de controlo total sobre o ambiente de execução através do teu próprio Dockerfile, encontrarás a stack Docker no mesmo diretório.
- #Django
- #Git Deploy
- #Guia
- #Python
