Spaces:
Sleeping
Sleeping
| set -e | |
| echo "[boot] Configuring Kaggle credentials..." | |
| if [ -n "$KAGGLE_USERNAME" ] && [ -n "$KAGGLE_KEY" ]; then | |
| mkdir -p ~/.kaggle | |
| printf '{"username":"%s","key":"%s"}' "$KAGGLE_USERNAME" "$KAGGLE_KEY" > ~/.kaggle/kaggle.json | |
| chmod 600 ~/.kaggle/kaggle.json | |
| fi | |
| echo "[boot] Configuring YouTube client secrets..." | |
| if [ -n "$YOUTUBE_CLIENT_ID" ] && [ -n "$YOUTUBE_CLIENT_SECRET" ]; then | |
| python3 -c " | |
| import json,os | |
| d={'installed':{'client_id':os.environ['YOUTUBE_CLIENT_ID'],'project_id':'yt-ai-bot','auth_uri':'https://accounts.google.com/o/oauth2/auth','token_uri':'https://oauth2.googleapis.com/token','auth_provider_x509_cert_url':'https://www.googleapis.com/oauth2/v1/certs','client_secret':os.environ['YOUTUBE_CLIENT_SECRET'],'redirect_uris':['http://localhost']}} | |
| open('/app/client_secrets.json','w').write(json.dumps(d)) | |
| print('[boot] client_secrets.json written')" | |
| fi | |
| echo "[boot] Pulling state + key pool from HF Dataset..." | |
| python3 -c " | |
| import sys; sys.path.insert(0,'/app') | |
| try: | |
| from sync_hub import pull_state | |
| from pathlib import Path | |
| pull_state(Path('/app')) | |
| except Exception as e: | |
| print(f'[boot] Hub pull skipped: {e}') | |
| try: | |
| from key_pool import download_pool | |
| download_pool() | |
| from key_pool import pool | |
| print(f'[boot] Key pool loaded: {sum(len(v) for v in pool.values())} keys') | |
| except Exception as e: | |
| print(f'[boot] Key pool not loaded: {e}') | |
| " | |
| echo "[boot] Starting nginx..." | |
| nginx | |
| echo "[boot] Starting status server on port 8080..." | |
| python3 /app/status_server.py & | |
| echo "[boot] Starting key pool background service..." | |
| python3 -c " | |
| from key_pool import start | |
| start() | |
| " & | |
| echo "[boot] Starting pipeline..." | |
| python3 /app/automation.py >> /app/pipeline.log 2>&1 & | |
| echo "[boot] Pipeline PID: $!" | |
| sleep infinity | |