#!/bin/bash set -e # Exit on error echo "===== Starting FBMC Chronos-2 JupyterLab Space =====" echo "Timestamp: $(date)" echo "User: $(whoami)" echo "Working directory: $(pwd)" # Set environment JUPYTER_TOKEN="${JUPYTER_TOKEN:=huggingface}" NOTEBOOK_DIR="/data" echo "JUPYTER_TOKEN: ${JUPYTER_TOKEN:0:10}..." echo "NOTEBOOK_DIR: $NOTEBOOK_DIR" # Check if jupyter-lab is installed echo "Checking jupyter-lab installation..." which jupyter-lab || echo "WARNING: jupyter-lab not found in PATH" jupyter-lab --version || echo "WARNING: Cannot get jupyter-lab version" # Check Python environment echo "Python version: $(python --version)" echo "Python path: $(which python)" # List /data directory echo "Contents of /data directory:" ls -lah /data || echo "WARNING: Cannot list /data" # Copy notebooks from /home/user/app to /data if they don't exist echo "Ensuring notebooks are in /data..." if [ -f /home/user/app/inference_smoke_test.ipynb ]; then echo "Copying notebooks from /home/user/app to /data..." cp -v /home/user/app/*.ipynb /data/ 2>/dev/null || true if [ -d /home/user/app/src ]; then cp -rv /home/user/app/src /data/ 2>/dev/null || true fi fi echo "Final /data contents:" ls -lah /data # Disable announcements echo "Disabling JupyterLab announcements..." jupyter labextension disable "@jupyterlab/apputils-extension:announcements" || echo "WARNING: Could not disable announcements" # Start JupyterLab echo "Starting JupyterLab on port 7860..." exec jupyter-lab \ --ip 0.0.0.0 \ --port 7860 \ --no-browser \ --allow-root \ --ServerApp.token="$JUPYTER_TOKEN" \ --ServerApp.tornado_settings="{'headers': {'Content-Security-Policy': 'frame-ancestors *'}}" \ --ServerApp.cookie_options="{'SameSite': 'None', 'Secure': True}" \ --ServerApp.disable_check_xsrf=True \ --LabApp.news_url=None \ --LabApp.check_for_updates_class="jupyterlab.NeverCheckForUpdate" \ --notebook-dir=$NOTEBOOK_DIR