Saltar a contenido

Apéndice F — Runbook operativo

F.1. Tareas diarias

Hora Tarea Dónde
08:30 Revisar dashboard DGII /contabilidad/dgii/dashboard/
08:35 Verificar facturas en contingencia /contabilidad/dgii/contingencia/
08:40 Confirmar backup nocturno tail /var/log/backup.log
09:00 Revisar cola Celery celery -A tienda inspect active
Continuo Aprobar ACR e-CF recibidos /contabilidad/ecf/recibidos/?estado=PENDIENTE_ACR
17:30 Cierre de caja /contabilidad/cash_close/
18:00 Reporte diario python manage.py reporte_diario --enviar

F.2. Tareas semanales

  • Lunes: grep -i error /opt/tienda/logs/app.log | tail -200
  • Miércoles: python manage.py importar_padron_dgii --force
  • Viernes: revisar uso de secuencias y archivos .bak_*

F.3. Tareas mensuales

Día Tarea
1 Generar reportes DGII (606/607/608/IT-1/IR-17)
1-15 Presentar IT-1 (vence día 20)
1-15 Presentar 606/607 (vence día 15)
5 Probar restore en staging
10 Auditoría de roles: python manage.py audit_permissions
15 Conciliar 606/607 vs IT-1
28 Verificar vigencia cert: openssl pkcs12 -in /opt/tienda/secrets/*.p12 -nokeys -info

F.4. Procedimientos de emergencia

DGII caída

  1. curl -v https://ecf.dgii.gov.do/eCF/Autenticacion/api/Autenticacion/Semilla
  2. Sistema entra automáticamente en contingencia
  3. Cuando DGII vuelva: python manage.py ecf_retry_failed --solo-contingencia

Certificado vencido

  • Sistema bloquea emisión de e-CF nuevos
  • Acumular facturas en BORRADOR hasta renovar

Postgres OOM / disco lleno

df -h
sudo -u postgres psql -c "SELECT pg_size_pretty(pg_database_size('tienda_db'));"
journalctl --vacuum-time=7d
find /opt/tienda/media/pdf_cache -atime +30 -delete
sudo -u postgres vacuumdb -a -z

Worker Celery atascado

celery -A tienda inspect active
celery -A tienda control revoke <task_id>
systemctl restart tienda-celery