27 lines
895 B
Bash
27 lines
895 B
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
INTERVAL=${CHECK_INTERVAL_HOURS:-3}
|
|
CRON_ENV=/run/arena-dashboard.env
|
|
|
|
# cron starts jobs with a minimal environment, so persist the variables that
|
|
# probe.py needs instead of relying on the daemon inheriting container env.
|
|
umask 077
|
|
{
|
|
printf 'DB_PATH=%s\n' "${DB_PATH:-/data/arena.db}"
|
|
printf 'OMNIROUTE_URL=%s\n' "${OMNIROUTE_URL:-http://192.168.1.101:20128}"
|
|
printf 'OMNIROUTE_API_KEY=%s\n' "${OMNIROUTE_API_KEY:-}"
|
|
printf 'CHECK_TIMEOUT=%s\n' "${CHECK_TIMEOUT:-30}"
|
|
printf 'CHECK_CONCURRENCY=%s\n' "${CHECK_CONCURRENCY:-5}"
|
|
} > "$CRON_ENV"
|
|
|
|
cat <<EOF | crontab -
|
|
0 */$INTERVAL * * * set -a; . $CRON_ENV; set +a; /usr/local/bin/python3 /app/app/probe.py >> /proc/1/fd/1 2>&1
|
|
15 3 * * * set -a; . $CRON_ENV; set +a; /usr/local/bin/python3 /app/app/cleanup.py >> /proc/1/fd/1 2>&1
|
|
EOF
|
|
cron
|
|
|
|
cd /app/app
|
|
exec uvicorn main:app --host 0.0.0.0 --port 8000 --workers 1
|
|
|