Python + Django + PostgreSQL + Redis
Django é um framework web de alto nível escrito em Python que segue o padrão MVT e traz prontas as peças que toda aplicação precisa: ORM, painel de administração, autenticação, migrações e proteção contra os ataques web mais comuns.
Este Stack combina-o com PostgreSQL como banco de dados relacional e Redis como armazenamento em memória, a configuração habitual quando a aplicação precisa de cache, sessões compartilhadas ou uma fila de tarefas com Celery.
Serviços que inclui
Além da sua aplicação, o Stack levanta PostgreSQL, Redis, um nginx que recebe o tráfego na porta 80, um serviço de backups automáticos e o gerenciador de arquivos web.
Estrutura do projeto
.
├── app
│ ├── helloworld
│ │ ├── __init__.py
│ │ ├── settings.py
│ │ ├── urls.py
│ │ ├── views.py
│ │ └── wsgi.py
│ ├── manage.py
│ └── requirements.txt
├── backup
│ └── backup-runner.sh
├── nginx
│ └── default.conf
├── .env.example
├── app.Dockerfile
└── compose.yaml
Início
Instale o Stack e inicie-o:
docker-deploy-stack --stack python/django-postgres-redis
cd /root/stack/python/django-postgres-redis
docker compose up -d
Depois substitua a aplicação de exemplo pela sua, via Git, por SFTP ou pelo gerenciador de arquivos web, seguindo como-implantar-uma-aplicacao-em-um-stack.md. Seu código fica na pasta app/.
Cada vez que atualizar o código, aplique as alterações:
docker compose up -d --build
Configuração
Os valores editáveis estão no arquivo .env do Stack:
| Variable | Por defecto | Para qué sirve |
|---|---|---|
APP_PORT |
80 |
Porta pública do Stack. |
APP_ENV |
development |
Ambiente da aplicação. |
DB_NAME |
django |
Nome do banco de dados. |
DB_USER |
django |
Usuário do banco de dados. |
BACKUP_ENABLED |
1 |
Backups automáticos: 1 ativados, 0 desativados. |
BACKUP_INTERVAL_SECONDS |
86400 |
A cada quantos segundos é feito um backup. |
BACKUP_RETENTION_DAYS |
7 |
Quantos dias os backups são mantidos. |
POSTGRES_VERSION |
16-alpine |
Versão da imagem correspondente. |
REDIS_VERSION |
7-alpine |
Versão da imagem correspondente. |
Depois de alterar, aplique as alterações com docker compose up -d.
Comandos úteis
docker compose ps # ver os contêineres que estão em execução
docker compose logs -f # ver os logs ao vivo
docker compose restart # reiniciar os serviços
docker compose down # parar e remover os contêineres