#!/bin/sh set -e cd /app python manage.py migrate --noinput printenv | grep -E '^(PATH|DJANGO_|SECRET_|DB_|KARUNG_|IOT_|CHICKEN_COUNTING_|DASHBOARD_|DEBUG|ALLOWED_|BOOTSTRAP_|API_|CORS_|CSRF_|SESSION_)' \ > /etc/environment || true # Render publish-time cron from DASHBOARD_PUBLISH_* (default 17:00). PUBLISH_HOUR="${DASHBOARD_PUBLISH_HOUR:-17}" PUBLISH_MINUTE="${DASHBOARD_PUBLISH_MINUTE:-0}" CRON_FILE=/etc/cron.d/newdashboard { echo "SHELL=/bin/sh" echo "PATH=/usr/local/bin:/usr/bin:/bin" echo "" echo "# IoT panel: real-time sync every 10 minutes (not gated by publish cutoff)." echo "*/10 * * * * root cd /app && /usr/local/bin/python manage.py sync_iot_from_api >> /var/log/cron.log 2>&1" echo "" echo "# Chicken counting + mortality + weight edge sync every 10 minutes." echo "*/10 * * * * root cd /app && /usr/local/bin/python manage.py sync_chicken_counting_from_edge >> /var/log/cron.log 2>&1" echo "" echo "# Karung-web-admin: every 30s via karung_sync_loop.sh (started below)." echo "# Daily publish — karung sync then KPI rollups at configured cutoff." echo "${PUBLISH_MINUTE} ${PUBLISH_HOUR} * * * root cd /app && /usr/local/bin/python manage.py sync_karung_from_web_admin >> /var/log/cron.log 2>&1 && /usr/local/bin/python manage.py recompute_kpi_rollups >> /var/log/cron.log 2>&1" } > "$CRON_FILE" chmod 0644 "$CRON_FILE" crontab "$CRON_FILE" /app/karung_sync_loop.sh & exec cron -f