#!/bin/bash set -euo pipefail echo "=========================================" echo " Platform - Boot Sequence" echo "=========================================" mkdir -p /data/logs /data/uploads /data/sessions /data/triggers /data/composio_cache export COMPOSIO_CACHE_DIR=/data/composio_cache echo "[Boot] COMPOSIO_CACHE_DIR=$COMPOSIO_CACHE_DIR" cd /app echo "[Boot] Working dir: $(pwd)" echo "[Boot] User: $(whoami)" echo "[Boot] DATA_DIR=$DATA_DIR" echo "[DB] Initializing database..." python3 -c "from backend.database import init_db; init_db()" 2>&1 echo "[DB] Done" echo "[Tools] Starting background sync..." nohup python3 -c " import asyncio, os print(f'[Sync] COMPOSIO_CACHE_DIR={os.environ.get(\"COMPOSIO_CACHE_DIR\", \"NOT SET\")}') from backend.integrations.registry import sync_from_composio result = asyncio.run(sync_from_composio()) print(f'[Sync] Done: {result}') " > /data/logs/sync.log 2>&1 & echo "[Boot] Background sync PID: $!" echo "=========================================" echo " Starting Platform on port 7860" echo "=========================================" python3 -c "from backend.main import app; print('[Boot] App imported OK')" 2>&1 exec uvicorn backend.main:app \ --host 0.0.0.0 \ --port 7860 \ --workers 2 \ --log-level debug \ --access-log