Desplegar Florilegio de la Fe en producción requiere atención cuidadosa a la configuración de seguridad, el servicio de archivos estáticos y la conectividad con servicios externos (Brevo, PayPal, API Bíblica). El archivoDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/alfonsoolavarria/florilegio/llms.txt
Use this file to discover all available pages before exploring further.
settings.py ya incluye lógica condicional para activar automáticamente las protecciones de seguridad de Django cuando DJANGO_DEBUG es False, por lo que el punto de partida es asegurarse de que las variables de entorno de producción estén correctamente configuradas.
Variables de entorno de producción
Configura las siguientes variables en el entorno del servidor (o en el archivo.env del directorio de despliegue):
ALLOWED_HOSTS
Ensettings.py, ALLOWED_HOSTS está definido de forma fija como:
settings.py antes del despliegue, ya que actualmente no se configura a través de una variable de entorno.
Archivos estáticos con WhiteNoise
WhiteNoise ya está integrado en el middleware (whitenoise.middleware.WhiteNoiseMiddleware) y configurado con compresión mediante CompressedStaticFilesStorage. Antes de iniciar el servidor en producción, recolecta todos los archivos estáticos:
staticfiles/ en la raíz del proyecto, que es donde WhiteNoise los sirve. No se requiere un servidor web adicional (como Nginx) únicamente para servir estáticos.
Servidor WSGI con Gunicorn
Django incluye un servidor de desarrollo (runserver) que no es apto para producción. Usa Gunicorn como servidor WSGI:
florilegiofe.wsgi:application, definido en florilegiofe/wsgi.py. Ajusta --workers según los núcleos disponibles (regla general: 2 × núcleos + 1).
Para un despliegue más robusto, configura Gunicorn como servicio systemd o usa un gestor de procesos como Supervisor. Complementa con Nginx como proxy inverso para gestionar conexiones SSL y cabeceras de reenvío.
HTTPS y seguridad
CuandoDJANGO_DEBUG=False, settings.py activa automáticamente las siguientes protecciones:
CSRF_TRUSTED_ORIGINS está configurado para el dominio de producción:
settings.py.
Adicionalmente, el middleware main_florife.middleware.SecurityHeadersMiddleware (middleware personalizado del proyecto) agrega cabeceras de seguridad HTTP adicionales a todas las respuestas.
Configuración de allauth en producción
Florilegio usadjango-allauth para autenticación, incluyendo inicio de sesión con Google. En producción:
SITE_ID = 1ya está definido ensettings.py.- Accede al panel de administración → Sites y actualiza el objeto
Sitecon ID 1 para que el dominio seaflorilegiodelafe.com(o tu dominio de producción). Allauth usa este valor para construir los enlaces en correos de verificación y callbacks OAuth. - En el panel de administración → Social Applications, configura las credenciales de Google OAuth (
Client IDySecret Key) obtenidas en Google Cloud Console.
Antes de lanzar en producción, asegúrate de tener configuradas todas las credenciales de servicios externos: Brevo (para verificación de correo), PayPal (para suscripciones y donaciones), BIBLE_API_KEY (para sincronización de versiones bíblicas) y YVP_APP_KEY (para integración con YouVersion Platform). Sin estas credenciales, las funcionalidades de registro, pagos y el lector bíblico con versiones API no estarán operativas.
Sitemap
El sitemap XML está disponible en/sitemap.xml y es generado dinámicamente por django.contrib.sitemaps. Incluye las siguientes secciones:
- Artículos (
ArticleSitemap) — todas las entradas de artículos publicados. - Ensayos (
EssaySitemap) — todos los ensayos publicados. - Páginas estáticas (
StaticSitemap) — páginas principales del sitio.
robots.txt
El archivorobots.txt se sirve dinámicamente en /robots.txt e incluye las siguientes directivas: