Guia de despliegue¶
1. Objetivo¶
Este documento resume el estado real del despliegue del proyecto y separa con claridad tres planos:
- lo que esta versionado en el repositorio;
- lo que hemos validado localmente con Docker;
- lo que forma parte de la publicacion en
VPSconNGINX.
2. Base de despliegue presente en el repositorio¶
El proyecto incluye una base tecnica completa para despliegue:
Djangocomo backend principalGunicorncomo servidor WSGIWhiteNoisepara estaticosProcfileDockerfiledocker-compose.ymldeploy/entrypoint.shdeploy/nginx/seo-growth-engine.confzensical.tomlydocs/para la presentacion integrada en/docs/
3. Variables de entorno clave¶
DJANGO_DEBUGDJANGO_SECRET_KEYDJANGO_ADMIN_URLDJANGO_ALLOWED_HOSTSDJANGO_CSRF_TRUSTED_ORIGINSDATABASE_URLREDIS_URLDJANGO_TASK_QUEUE_BACKENDDJANGO_USE_X_FORWARDED_HOSTDJANGO_USE_SECURE_PROXY_SSL_HEADEROPENAI_API_KEYDJANGO_DEFAULT_SERVICE_ACCOUNT_JSONDJANGO_DEFAULT_GSC_PROPERTYDJANGO_DEFAULT_GA4_PROPERTY_ID
Archivo base:
4. Docker local¶
Estado validado localmente:
- revision documentada el
2026-05-18 - arranque correcto con
docker-compose up --build -d web,worker,dbyredisen estadoUp- respuesta
200enhttp://127.0.0.1:8000/
Detalle de la validacion:
5. NGINX y publicacion en VPS¶
El repositorio incluye la configuracion de NGINX en:
Y la arquitectura que presentamos contempla NGINX en la VPS como reverse proxy delante de la aplicacion.
El papel de NGINX en esa arquitectura es:
- recibir el trafico;
- servir estaticos;
- servir la documentacion generada en
/docs/; - reenviar peticiones a la aplicacion;
- propagar cabeceras de proxy necesarias.
6. Estado actual del despliegue¶
El estado actual del despliegue queda resumido en tres puntos:
Docker local validadoconfiguracion de despliegue versionada en el repoarquitectura de publicacion en VPS con NGINX como capa de entrada
La parte que sigue siendo mejora futura no es "tener despliegue", sino reforzar:
- automatizacion;
- checklist de hardening final;
- dominio, HTTPS y observabilidad cerrados segun el entorno final.
7. Orden recomendado para una puesta en produccion¶
- Configurar
.envde produccion con claves reales. - Copiar el JSON privado de Google a
secrets/gsc-service-account.jsonen la VPS. - Preparar base de datos persistente y
REDIS_URL. - Generar la documentacion Zensical con
./scripts/build_zensical_site.sh. - Ejecutar migraciones y
collectstatic. - Servir la aplicacion con
Gunicorn. - Colocar
NGINXdelante, ajustarserver_namey validar la configuracion real del proxy. - Comprobar login, runs, worker, estaticos,
/docs/y logs.
Para conectar el sitio inicial con GSC y GA4:
docker compose exec web python manage.py bootstrap_dashboard \
--username admin \
--email admin@example.com \
--service-account-json /app/secrets/gsc-service-account.json \
--gsc-property sc-domain:going.international \
--ga4-property-id 417418090