Saltar al contenido
Proyectos

Plataforma de blog full stack: Django REST + Next.js

destacado

Blog multiusuario en producción con autenticación JWT + OTP, editor enriquecido, perfiles públicos, analíticas e imágenes en MinIO.

Django RESTNext.jsReduxTailwindCeleryRedisPostgreSQLMinIODocker

## Contexto Plataforma de publicación completa desplegada en blog.edqs.online. La API está construida con Django REST Framework y el frontend con Next.js 15 (pages router, Redux Toolkit, Tailwind y editor TipTap). ## Funcionalidades - Registro con activación por correo, login con JWT, recuperación de contraseña y segundo factor por OTP (djoser + SimpleJWT, django-axes contra fuerza bruta). - Posts con editor enriquecido, categorías, encabezados navegables, likes y búsqueda. - Analíticas de vistas e interacciones por post y por categoría. - Perfiles públicos (`/@usuario`) con foto, banner, biografía y redes. - Subida directa de imágenes a MinIO con URLs firmadas. - Newsletter, contacto y tareas programadas con Celery Beat.

Problema

Construir una plataforma de contenido real, no un CRUD de ejemplo: cuentas seguras, contenido enriquecido con imágenes y métricas de uso, conviviendo en un único VPS con otros proyectos que comparten base de datos y almacenamiento.

Solución

API REST en Django servida con Uvicorn, frontend Next.js con SSR y API routes que actúan de BFF, Celery worker + beat sobre Redis para tareas asíncronas y un Nginx propio que reparte frontend, API y bucket. Las imágenes se suben desde el navegador directo a MinIO con URLs firmadas, sin pasar por Django. PostgreSQL y MinIO son compartidos, pero el blog solo ve su base y su bucket con usuarios dedicados.

Resultado

En producción en blog.edqs.online y api.blog.edqs.online: seis contenedores con límites de memoria y health checks, TLS terminado en el Nginx del host y despliegue reproducible con un solo docker compose.