Saltar a contenido

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 (Slack/Teams) que aplicaras cambios y comparte un ETA.
  • Respaldos
  • Ejecuta pg_dump -h <host> -U postgres signaldashpro > backups/<fecha>.sql.
  • Copia storage/models/ y storage/bi_exports/ si entrenaste modelos o exportaste datasets recientes.
  • Infra y configuracion
  • Revisa las variables en tu .env o 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, FMP_API_KEY) y los webhooks de alertas.
  • 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#

  1. Congela automatizaciones
  2. Deten systemd services, Task Scheduler o cron jobs que invoquen scripts run_*.py.
  3. Si hace falta, pon *_AUTO_RUN=false temporalmente en el .env.

  4. Actualizar codigo

  5. git pull --ff-only
  6. Backend: cd backend && pip install -r requirements.txt
  7. Frontend: actualizar dependencias segun el proyecto (Next.js/React cuando este disponible).

  8. Migraciones y seeds

  9. Crea o actualiza tablas: bash python - <<'PY' from backend.database import create_db_and_tables create_db_and_tables() PY
  10. Verifica cambios en Postgres (\d <tabla>).
  11. Seeds / ingestas utiles (orden recomendado):

    1. 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. |
    2. Velas derivadas y volatilidad | Dato | Script | Nota | | ---- | ------ | ---- | | H1/H4 + stats | python scripts/build_higher_timeframes.py --timeframes H1 H4 --symbol EURUSD | Deriva H1/H4 desde M15 y recalcula estadisticas VolatilityStat. | | Market windows | python scripts/build_market_windows.py --timeframe H1 --symbols EURUSD XAUUSD | Fusiona velas + volatilidad + noticias en market_windows. |
    3. Indicadores tecnicos | Dato | Script | Nota | | ---- | ------ | ---- | | SMA/EMA/RSI/ATR | python scripts/build_candle_indicators.py --symbol EURUSD --timeframe M15 | Precalcula indicadores sobre las velas almacenadas. |
    4. News, IA y pipeline | Dato | Script | Nota | | ---- | ------ | ---- | | Noticias + resumen IA | python scripts/import_market_news.py --symbols EURUSD XAUUSD --brainstorm | Reanuda news + brainstorming inicial. | | Pipeline completo | python scripts/run_data_pipeline.py --symbols EURUSD XAUUSD --timeframe H1 | Ejecuta news -> summaries -> windows -> brainstorming/backtests segun configuracion. |
    5. 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-short | Verifica que existan velas suficientes y que se generan backtest_jobs/backtest_trades. |
  12. Variables y servicios

  13. Actualiza .env en el host y reinicia FastAPI (scripts/run_backend.ps1, systemctl restart signaldashpro.service, etc.).
  14. Vigila storage/logs/signaldashpro.log hasta que no aparezcan errores de arranque.

  15. Jobs recurrentes

  16. Programa cron/Task Scheduler usando esta referencia:

    Job Variable *_AUTO_RUN Script Frecuencia sugerida
    Import news NEWS_AUTO_RUN python scripts/import_market_news.py --symbols ... Cada 15 min
    News summary NEWS_SUMMARY_AUTO_RUN python scripts/import_market_news.py --summary-only Cada 30 min
    Data pipeline DATA_PIPELINE_AUTO_RUN python scripts/run_data_pipeline.py Cada 60 min
    BI export BI_EXPORT_AUTO_RUN python scripts/export_bi_datasets.py ... Cada 4 h
    Training TRAINING_AUTO_RUN python scripts/run_training_pipeline.py ... Diario
    Goal monitor META_GOAL_AUTO_RUN Endpoint /analytics/goals/run o job dedicado Cada 60 min
  17. 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/status responde 200.
  • GET /analytics/summary y /analytics/diary responden en menos de 1 s.
  • GET /jobs/status muestra market_sync en verde (si MARKET_SYNC_AUTO_RUN=true).
  • Desde el frontend revisa que /binance, /jobs, /market carguen sin errores.
  • Automatizaciones
  • Lanza manualmente cada cron (systemctl start signaldashpro-news.service, schtasks /run /tn "SignalDashPro_BI_Export", etc.) y valida en storage/logs/signaldashpro.log.
  • Devuelve *_AUTO_RUN=true si lo habias deshabilitado.
  • Alertas externas
  • Envia un ping de prueba al webhook de Slack/Teams antes de cerrar la ventana.
  • Cierre
  • Actualiza TODO.md o 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.md y ajustalo cuando se agreguen servicios o jobs nuevos.