Deployment Checklist - SignalDashPro#
Playbook para mover cambios a demo/live sin pasar por alto migraciones, seeds y trabajos automatizados. Sigue el orden antes / durante / despues y marca cada paso en tu runbook.
1. Antes del despliegue#
- Ventana y comunicacion
- Confirma la ventana con trading/operaciones y silencia automatizaciones sensibles (ej. ejecucion real de senales).
- Notifica al canal operativo interno que aplicaras cambios y comparte un ETA.
- Respaldos
- Ejecuta
pg_dump -h <host> -U postgres signaldashpro > backups/<fecha>.sql. - Copia
storage/models/ystorage/bi_exports/si entrenaste modelos o exportaste datasets recientes. - Infra y configuracion
- Revisa las variables en tu
.envo secret store. Claves:DATABASE_URL,BINANCE_*,AUTH_*,CORS_ALLOW_ORIGINS,NEWS*_,DATA_PIPELINE_*,BI_EXPORT_*,TRAINING_*,META_GOAL_*. - Verifica credenciales de APIs externas (
NEWSAPI_KEY,PRIXE_API_KEY,TRADINGECONOMICS_API_KEYoFMP_API_KEY). - Salud del codigo
python -m pytest backend/tests -q- Ejecutar linters/tests del frontend segun el stack vigente (Next.js/React cuando este disponible).
- Corrige cualquier error antes de continuar.
2. Durante el despliegue#
- Congela automatizaciones
- Deten systemd services, Task Scheduler o cron jobs que invoquen scripts
run_*.py. -
Si hace falta, pon
*_AUTO_RUN=falsetemporalmente en el.env. -
Actualizar codigo
git pull --ff-only- Backend:
cd backend && pip install -r requirements.txt -
Frontend: actualizar dependencias segun el proyecto (Next.js/React cuando este disponible).
-
Migraciones y seeds
-
Crea o actualiza tablas:
python - <<'PY' from backend.database import create_db_and_tables create_db_and_tables() PY -
Verifica cambios en Postgres (
\d <tabla>). -
Seeds / ingestas utiles (orden recomendado):
-
Histórico de velas M15 (backfill diario desde Binance)
Dato Script Nota M15 1-año histórico python scripts/backfill_paxg_m15_history.py --symbol PAXGUSDT --interval 15m --days 365Sincroniza datos históricos M15 desde Binance a la BD. Ejecutar diariamente (cron @midnight UTC) para mantener actualizados los últimos 30-365 días. Es idempotente (no duplica). -
Velas base (M1/M15) desde ticks (opcional)
Dato Script Nota Candles M1/M15 python scripts/build_candles_from_ticks.py --symbol EURUSD --timeframe M15 --start ... --end ...Agrega velas intradia a partir de la tabla ticks. -
Velas derivadas y volatilidad
Dato Script Nota H1/H4 + stats python scripts/build_higher_timeframes.py --timeframes H1 H4 --symbol EURUSDDeriva H1/H4 desde M15 y recalcula estadisticas VolatilityStat.Market windows python scripts/build_market_windows.py --timeframe H1 --symbols EURUSD XAUUSDFusiona velas + volatilidad + noticias en market_windows. -
Indicadores tecnicos
Dato Script Nota SMA/EMA/RSI/ATR python scripts/build_candle_indicators.py --symbol EURUSD --timeframe M15Precalcula indicadores sobre las velas almacenadas. -
News, IA y pipeline
Dato Script Nota Noticias + resumen IA python scripts/import_market_news.py --symbols EURUSD XAUUSD --brainstormReanuda news + brainstorming inicial. Pipeline completo python scripts/run_data_pipeline.py --symbols EURUSD XAUUSD --timeframe H1Ejecuta news -> summaries -> windows -> brainstorming/backtests segun configuracion. -
Backtest de humo
Dato Script Nota Backtest baseline python scripts/run_backtest.py --strategy-name DeploymentSmoke --symbol EURUSD --timeframe H1 --start ... --end ... --fast-ma 10 --slow-ma 30 --allow-shortVerifica que existan velas suficientes y que se generan backtest_jobs/backtest_trades.
-
-
Variables y servicios
- Actualiza
.enven el host y reinicia FastAPI (scripts/run_backend.ps1,systemctl restart signaldashpro.service, etc.). -
Vigila
storage/logs/signaldashpro.loghasta que no aparezcan errores de arranque. -
Jobs recurrentes
-
Programa cron/Task Scheduler usando esta referencia:
Job Variable *_AUTO_RUNScript Frecuencia sugerida Import news NEWS_AUTO_RUNpython scripts/import_market_news.py --symbols ...Cada 15 min News summary NEWS_SUMMARY_AUTO_RUNpython scripts/import_market_news.py --summary-onlyCada 30 min Backfill histórico M15 N/A (manual) python scripts/backfill_paxg_m15_history.py --symbol PAXGUSDT --interval 15m --days 30Cada medianoche UTC Data pipeline DATA_PIPELINE_AUTO_RUNpython scripts/run_data_pipeline.pyCada 60 min BI export BI_EXPORT_AUTO_RUNpython scripts/export_bi_datasets.py ...Cada 4 h Training TRAINING_AUTO_RUNpython scripts/run_training_pipeline.py ...Diario Goal monitor META_GOAL_AUTO_RUNEndpoint /analytics/goals/runo job dedicadoCada 60 min -
Documenta en el host (
/etc/cron.d/signaldashpro, Task Scheduler, etc.) quien ejecuta cada job y con que usuario.
3. Despues del despliegue#
- Smoke tests
curl http://<host>:8096/binance/statusresponde 200.GET /analytics/summaryy/analytics/diaryresponden en menos de 1 s.GET /jobs/statusmuestramarket_syncen verde (siMARKET_SYNC_AUTO_RUN=true).- Docs:
GET /docs/CHANGELOG/responde 200 y contiene la etiquetaChangelog(fallback permitido:/docs/changelog/). - Desde el frontend revisa que
/binance,/jobs,/marketcarguen sin errores. - Automatizaciones
- Lanza manualmente cada cron (
systemctl start signaldashpro-news.service,schtasks /run /tn "SignalDashPro_BI_Export", etc.) y valida enstorage/logs/signaldashpro.log. - Devuelve
*_AUTO_RUN=truesi lo habias deshabilitado. - Alertas externas/locales
- Ejecuta
systemctl start signaldashpro-alerts.servicey valida artefactostorage/logs/ops/alerts-*.logantes de cerrar la ventana. - Cierre
- Actualiza
TODO.mdo el issue correspondiente con hora/resultado. - Informa al canal operativo que el despliegue termino y adjunta los resultados de smoke tests.
Manten este checklist en
docs/deploy_checklist.mdy ajustalo cuando se agreguen servicios o jobs nuevos.
Nota operativa: scripts/ct110_deploy_release.sh valida automaticamente rutas de changelog del servicio docs (/docs/CHANGELOG/ y fallback /docs/changelog/; puede desactivarse con --verify-docs-changelog=false).
Atajo recomendado para docs solamente:
scripts/ct110_deploy_docs.sh
Este atajo reutiliza ct110_deploy_retry.sh y ejecuta deploy del servicio docs con verificacion de changelog habilitada.
Para el monitor semanal (docs_changelog_check.sh), el chequeo publico viene desactivado por defecto para evitar falsos negativos por routing/edge desde CT110.
Si quieres exigir endpoint publico, define DOCS_CHANGELOG_CHECK_PUBLIC=true en el entorno del host.