| import os | |
| import subprocess | |
| import threading | |
| import time | |
| from mcp_server import gradio_ui | |
| import backup | |
| # Restore on startup | |
| BACKUP_REPO = os.environ.get("BACKUP_REPO") | |
| HF_TOKEN = os.environ.get("HF_TOKEN") | |
| if BACKUP_REPO and HF_TOKEN: | |
| print("Restoring from backup...") | |
| try: | |
| subprocess.run(["python", "restore.py"], check=True) | |
| print("Restore completed.") | |
| except Exception as e: | |
| print(f"Restore failed: {e}") | |
| else: | |
| print("No backup repo/token set, skipping restore.") | |
| # Start backup thread | |
| def backup_thread(): | |
| while True: | |
| time.sleep(45 * 60) # 45 minutes | |
| if BACKUP_REPO and HF_TOKEN: | |
| print("Starting backup...") | |
| try: | |
| backup.run_backup() | |
| except Exception as e: | |
| print(f"Backup failed: {e}") | |
| threading.Thread(target=backup_thread, daemon=True).start() | |
| # Launch Gradio app | |
| demo = gradio_ui() | |
| demo.launch(server_name="0.0.0.0", server_port=int(os.environ.get("PORT", 7860))) |