hfflaiTRYnew / start.sh
unknownfriend00007's picture
Update start.sh
16d584e verified
#!/bin/bash
echo "πŸš€ Starting Flowise..."
# Start Flowise in background
npx flowise start --PORT=7860 &
FLOWISE_PID=$!
# Better wait logic - check if Flowise is actually responding
echo "⏳ Waiting for Flowise to be ready..."
MAX_ATTEMPTS=30
ATTEMPT=0
while [ $ATTEMPT -lt $MAX_ATTEMPTS ]; do
if curl -s http://localhost:7860 > /dev/null 2>&1; then
echo "βœ… Flowise is running!"
# Check database connection
if [ ! -z "$DATABASE_URL" ] || [ ! -z "$DATABASE_HOST" ]; then
echo "βœ… Database configured: Using external NEON database."
else
echo "⚠️ Using default SQLite database"
fi
break
fi
ATTEMPT=$((ATTEMPT + 1))
echo "Waiting... attempt $ATTEMPT/$MAX_ATTEMPTS"
sleep 2
done
if [ $ATTEMPT -eq $MAX_ATTEMPTS ]; then
echo "❌ Flowise failed to start in time"
exit 1
fi
# Import chatflows if they exist
if [ -f /data/chatflows/chatflows.json ]; then
echo ""
echo "πŸ“¦ Importing chatflows..."
# Check if file is not empty
if [ -s /data/chatflows/chatflows.json ]; then
CHATFLOW_COUNT=$(jq '. | length' /data/chatflows/chatflows.json 2>/dev/null)
if [ "$CHATFLOW_COUNT" -gt 0 ]; then
echo "Found $CHATFLOW_COUNT chatflow(s) to import"
# Import each chatflow
COUNTER=1
cat /data/chatflows/chatflows.json | jq -c '.[]' | while read chatflow; do
echo " Importing chatflow $COUNTER/$CHATFLOW_COUNT..."
RESPONSE=$(curl -X POST http://localhost:7860/api/v1/chatflows \
-H "Content-Type: application/json" \
-d "$chatflow" \
-s -w "\n%{http_code}")
HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
if [ "$HTTP_CODE" = "201" ] || [ "$HTTP_CODE" = "200" ]; then
echo " βœ… Chatflow $COUNTER imported successfully"
else
echo " ⚠️ Chatflow $COUNTER import returned code $HTTP_CODE"
fi
COUNTER=$((COUNTER + 1))
done
echo ""
echo "βœ… Import complete!"
echo ""
# List imported chatflows
echo "πŸ“‹ Available chatflows:"
CHATFLOWS=$(curl -s http://localhost:7860/api/v1/chatflows)
echo "$CHATFLOWS" | jq -r '.[] | " πŸ€– \(.name) (ID: \(.id))"' 2>/dev/null || echo " (Unable to list chatflows)"
else
echo "⚠️ chatflows.json is empty - no chatflows to import"
fi
else
echo "⚠️ chatflows.json is empty"
fi
else
echo "⚠️ No chatflows.json found"
echo "Create chatflows in the UI and export them to /data/chatflows/chatflows.json"
fi
echo ""
echo "πŸŽ‰ Flowise is ready!"
echo "πŸ”— Access your Space at the URL above"
echo "πŸ”‘ Login: admin / yourpassword123"
echo ""
# Keep container running
wait $FLOWISE_PID