Centro de Ayuda

Python + FastAPI + PostgreSQL + Redis

FastAPI es un framework moderno para construir APIs en Python. Valida los datos de entrada y salida a partir de las anotaciones de tipo, genera documentación interactiva OpenAPI sola y corre sobre ASGI, así que soporta código asíncrono de forma nativa.

Este Stack lo acompaña con PostgreSQL y Redis: la combinación típica para una API que persiste datos y necesita caché o tareas en segundo plano.

Servicios que incluye

Además de tu aplicación, el Stack levanta PostgreSQL, Redis, un nginx que recibe el tráfico del puerto 80, un servicio de backups automáticos y el administrador de archivos web.

Estructura del proyecto

text
.
├── app
│   ├── main.py
│   └── requirements.txt
├── backup
│   └── backup-runner.sh
├── nginx
│   └── default.conf
├── .env.example
├── app.Dockerfile
└── compose.yaml

Puesta en marcha

Instalá el Stack y levantalo:

bash
docker-deploy-stack --stack python/fastapi-postgres-redis
cd /root/stack/python/fastapi-postgres-redis
docker compose up -d

Después reemplazá la aplicación de ejemplo por la tuya, desde Git, por SFTP o desde el administrador de archivos web, siguiendo como-despliego-una-aplicacion-en-un-stack.md. Tu código va en la carpeta app/.

Cada vez que actualices el código, aplicá los cambios:

bash
docker compose up -d --build

Configuración

Los valores editables están en el archivo .env del Stack:

Variable Por defecto Para qué sirve
APP_PORT 80 Puerto público del Stack.
APP_ENV development Entorno de la aplicación.
DB_NAME fastapi Nombre de la base de datos.
DB_USER fastapi Usuario de la base de datos.
BACKUP_ENABLED 1 Backups automáticos: 1 activados, 0 desactivados.
BACKUP_INTERVAL_SECONDS 86400 Cada cuántos segundos se hace un backup.
BACKUP_RETENTION_DAYS 7 Cuántos días se conservan los backups.
POSTGRES_VERSION 16-alpine Versión de la imagen correspondiente.
REDIS_VERSION 7-alpine Versión de la imagen correspondiente.

Después de cambiarlo, aplicá los cambios con docker compose up -d.

Comandos útiles

bash
docker compose ps          # ver los contenedores que están corriendo
docker compose logs -f     # ver los logs en vivo
docker compose restart     # reiniciar los servicios
docker compose down        # detener y eliminar los contenedores