Introduce weekly summary reports and a cleanup job, enhance dashboard UI, and adjust telemetry/build settings. - Add REPO_SOURCE to misc/api.func and include repo_source in telemetry payloads. - Implement weekly report generation/scheduling in alerts.go: new data types, HTML/plain templates, scheduler, SendWeeklyReport/TestWeeklyReport, and email/HTML helpers. - Add Cleaner (misc/data/cleanup.go) to detect and mark stuck installations as 'unknown' with scheduling and manual trigger APIs. - Enhance dashboard backend/frontend (misc/data/dashboard.go): optional days filter (allow 'All'), increase fetch page size, simplify fetchRecords, add quick filter buttons, detail & health modals, improved styles and chart options, and client-side record detail view. - Update Dockerfile (misc/data/Dockerfile): rename binaries to telemetry-service and build migrate from ./migration/migrate.go; copy adjusted in final image. - Add migration tooling (misc/data/migration/migrate.sh and migration.go) and other small service changes. These changes add operational reporting and cleanup capabilities, improve observability and UX of the dashboard, and align build and telemetry identifiers for the service.
56 lines
1.5 KiB
Bash
56 lines
1.5 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
echo "============================================="
|
|
echo " ProxmoxVED Telemetry Service"
|
|
echo "============================================="
|
|
|
|
# Map Coolify ENV names to migration script names
|
|
# Coolify uses PB_URL, PB_TARGET_COLLECTION
|
|
export POCKETBASE_URL="${POCKETBASE_URL:-$PB_URL}"
|
|
export POCKETBASE_COLLECTION="${POCKETBASE_COLLECTION:-$PB_TARGET_COLLECTION}"
|
|
|
|
# Run migration if enabled
|
|
if [ "$RUN_MIGRATION" = "true" ]; then
|
|
echo ""
|
|
echo "🔄 Migration mode enabled"
|
|
echo " Source: $MIGRATION_SOURCE_URL"
|
|
echo " Target: $POCKETBASE_URL"
|
|
echo " Collection: $POCKETBASE_COLLECTION"
|
|
echo ""
|
|
|
|
# Wait for PocketBase to be ready
|
|
echo "⏳ Waiting for PocketBase to be ready..."
|
|
RETRIES=30
|
|
until wget -q --spider "$POCKETBASE_URL/api/health" 2>/dev/null; do
|
|
RETRIES=$((RETRIES - 1))
|
|
if [ $RETRIES -le 0 ]; then
|
|
echo "❌ PocketBase not reachable after 30 attempts"
|
|
if [ "$MIGRATION_REQUIRED" = "true" ]; then
|
|
exit 1
|
|
fi
|
|
echo "⚠️ Continuing without migration..."
|
|
break
|
|
fi
|
|
echo " Waiting... ($RETRIES attempts left)"
|
|
sleep 2
|
|
done
|
|
|
|
if wget -q --spider "$POCKETBASE_URL/api/health" 2>/dev/null; then
|
|
echo "✅ PocketBase is ready"
|
|
echo ""
|
|
echo "🚀 Starting migration..."
|
|
/app/migrate || {
|
|
if [ "$MIGRATION_REQUIRED" = "true" ]; then
|
|
echo "❌ Migration failed!"
|
|
exit 1
|
|
fi
|
|
echo "⚠️ Migration failed, but continuing..."
|
|
}
|
|
echo ""
|
|
fi
|
|
fi
|
|
|
|
echo "🚀 Starting telemetry service..."
|
|
exec /app/telemetry-service
|