W / setup.sh
Ac66's picture
Upload folder using huggingface_hub
2b64d42 verified
#!/usr/bin/env bash
set -e
echo "=== WindsurfAPI Setup ==="
OS="$(uname -s)"
ARCH="$(uname -m)"
case "$OS:$ARCH" in
Darwin:arm64) LS_PATH="$HOME/.windsurf/language_server_macos_arm"; LS_DATA_DIR="$HOME/.windsurf/data" ;;
Darwin:x86_64) LS_PATH="$HOME/.windsurf/language_server_macos_x64"; LS_DATA_DIR="$HOME/.windsurf/data" ;;
Linux:x86_64|Linux:amd64)
LS_PATH="/opt/windsurf/language_server_linux_x64"; LS_DATA_DIR="/opt/windsurf/data" ;;
Linux:aarch64|Linux:arm64)
LS_PATH="/opt/windsurf/language_server_linux_arm"; LS_DATA_DIR="/opt/windsurf/data" ;;
*) LS_PATH="/opt/windsurf/language_server_linux_x64"; LS_DATA_DIR="/opt/windsurf/data" ;;
esac
# Create directories
echo "[1/4] Creating directories..."
mkdir -p "$(dirname "$LS_PATH")"
mkdir -p "$LS_DATA_DIR/db"
mkdir -p /tmp/windsurf-workspace
# Check LS binary
if [ -f "$LS_PATH" ]; then
chmod +x "$LS_PATH"
echo "[2/4] Language Server found at $LS_PATH"
else
echo "[2/4] WARNING: Language Server not found at $LS_PATH"
echo " Download it and place it there before starting the server"
echo " chmod +x $LS_PATH"
fi
# Generate .env if not exists
if [ ! -f .env ]; then
echo "[3/4] Generating .env..."
cat > .env << ENVEOF
PORT=3003
API_KEY=
DATA_DIR=
DEFAULT_MODEL=claude-4.5-sonnet-thinking
MAX_TOKENS=8192
LOG_LEVEL=info
LS_BINARY_PATH=$LS_PATH
LS_DATA_DIR=$LS_DATA_DIR
LS_PORT=42100
DASHBOARD_PASSWORD=
ALLOW_PRIVATE_PROXY_HOSTS=
ENVEOF
echo " Edit .env to set your API_KEY and DASHBOARD_PASSWORD"
else
echo "[3/4] .env already exists, skipping"
fi
# Check Node.js version
NODE_VER=$(node -v 2>/dev/null | sed 's/v//' | cut -d. -f1)
if [ -z "$NODE_VER" ]; then
echo "[4/4] WARNING: Node.js not found. Install Node.js >= 20"
elif [ "$NODE_VER" -lt 20 ]; then
echo "[4/4] WARNING: Node.js v$NODE_VER detected, need >= 20"
else
echo "[4/4] Node.js v$(node -v) OK"
fi
echo ""
echo "=== Done ==="
echo "Start: node src/index.js"
echo "Dev: node --watch src/index.js"
echo "Dashboard: http://localhost:3003/dashboard"