Spaces:
Sleeping
Sleeping
| set -e | |
| echo "=== Claude Code UI Docker Entrypoint ===" | |
| # Initialize database with default user if it doesn't exist | |
| if [ ! -f "$DATABASE_PATH" ]; then | |
| echo "[INIT] Creating database and default user..." | |
| node -e " | |
| const bcrypt = require('bcrypt'); | |
| const Database = require('better-sqlite3'); | |
| const fs = require('fs'); | |
| const path = require('path'); | |
| const dbDir = path.dirname('$DATABASE_PATH'); | |
| if (!fs.existsSync(dbDir)) fs.mkdirSync(dbDir, { recursive: true }); | |
| const db = new Database('$DATABASE_PATH'); | |
| const initSql = fs.readFileSync(path.join('/app/server/database/init.sql'), 'utf8'); | |
| db.exec(initSql); | |
| const username = process.env.DEMO_USERNAME || 'Storyboard'; | |
| const password = process.env.DEMO_PASSWORD || 'Storycoard123456*'; | |
| const hash = bcrypt.hashSync(password, 12); | |
| db.prepare('INSERT OR IGNORE INTO users (username, password_hash, has_completed_onboarding) VALUES (?, ?, 1)').run(username, hash); | |
| console.log('[INIT] User created:', username); | |
| db.close(); | |
| " | |
| else | |
| echo "[INIT] Database already exists, skipping user creation." | |
| fi | |
| # Pre-seed Claude project config so the Storyboard project appears in the UI | |
| CLAUDE_DIR="$HOME/.claude" | |
| PROJECT_CONFIG="$CLAUDE_DIR/project-config.json" | |
| PROJECTS_DIR="$CLAUDE_DIR/projects" | |
| mkdir -p "$PROJECTS_DIR" | |
| # Encode project path: /workspace/Storyboard -> -workspace-Storyboard | |
| ENCODED_NAME=$(echo "/workspace/Storyboard" | sed 's|/|-|g') | |
| mkdir -p "$PROJECTS_DIR/$ENCODED_NAME" | |
| if [ ! -f "$PROJECT_CONFIG" ]; then | |
| echo "[INIT] Creating project config for Storyboard..." | |
| cat > "$PROJECT_CONFIG" << 'PROJEOF' | |
| { | |
| "-workspace-Storyboard": { | |
| "manuallyAdded": true, | |
| "originalPath": "/workspace/Storyboard", | |
| "allowedTools": [] | |
| } | |
| } | |
| PROJEOF | |
| fi | |
| echo "[INIT] Starting Claude Code UI server on port ${SERVER_PORT:-7860}..." | |
| exec node /app/server/index.js | |