Initial commit: Clean DSS implementation
Migrated from design-system-swarm with fresh git history.
Old project history preserved in /home/overbits/apps/design-system-swarm
Core components:
- MCP Server (Python FastAPI with mcp 1.23.1)
- Claude Plugin (agents, commands, skills, strategies, hooks, core)
- DSS Backend (dss-mvp1 - token translation, Figma sync)
- Admin UI (Node.js/React)
- Server (Node.js/Express)
- Storybook integration (dss-mvp1/.storybook)
Self-contained configuration:
- All paths relative or use DSS_BASE_PATH=/home/overbits/dss
- PYTHONPATH configured for dss-mvp1 and dss-claude-plugin
- .env file with all configuration
- Claude plugin uses ${CLAUDE_PLUGIN_ROOT} for portability
Migration completed: $(date)
🤖 Clean migration with full functionality preserved
This commit is contained in:
216
setup.sh
Executable file
216
setup.sh
Executable file
@@ -0,0 +1,216 @@
|
||||
#!/bin/bash
|
||||
# DSS Setup Script
|
||||
# Automated installation and configuration for Design System Server
|
||||
|
||||
set -e # Exit on error
|
||||
|
||||
# Colors for output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Functions
|
||||
print_header() {
|
||||
echo -e "${BLUE}============================================================${NC}"
|
||||
echo -e "${BLUE}$1${NC}"
|
||||
echo -e "${BLUE}============================================================${NC}"
|
||||
}
|
||||
|
||||
print_success() {
|
||||
echo -e "${GREEN}✓${NC} $1"
|
||||
}
|
||||
|
||||
print_warning() {
|
||||
echo -e "${YELLOW}⚠${NC} $1"
|
||||
}
|
||||
|
||||
print_error() {
|
||||
echo -e "${RED}✗${NC} $1"
|
||||
}
|
||||
|
||||
print_info() {
|
||||
echo -e "${BLUE}ℹ${NC} $1"
|
||||
}
|
||||
|
||||
# Check prerequisites
|
||||
check_prerequisites() {
|
||||
print_header "Checking Prerequisites"
|
||||
|
||||
# Check Python version
|
||||
if ! command -v python3 &> /dev/null; then
|
||||
print_error "Python 3 is not installed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PYTHON_VERSION=$(python3 --version | cut -d' ' -f2)
|
||||
print_success "Python $PYTHON_VERSION found"
|
||||
|
||||
# Check Python version >= 3.10
|
||||
if ! python3 -c "import sys; exit(0 if sys.version_info >= (3, 10) else 1)"; then
|
||||
print_error "Python 3.10+ is required (found $PYTHON_VERSION)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check pip
|
||||
if ! command -v pip3 &> /dev/null; then
|
||||
print_error "pip3 is not installed"
|
||||
exit 1
|
||||
fi
|
||||
print_success "pip3 found"
|
||||
|
||||
# Check git (optional but recommended)
|
||||
if command -v git &> /dev/null; then
|
||||
print_success "git found"
|
||||
else
|
||||
print_warning "git not found (optional)"
|
||||
fi
|
||||
}
|
||||
|
||||
# Create virtual environment
|
||||
setup_venv() {
|
||||
print_header "Setting Up Virtual Environment"
|
||||
|
||||
if [ -d ".venv" ]; then
|
||||
print_warning "Virtual environment already exists"
|
||||
read -p "Recreate it? (y/N): " -n 1 -r
|
||||
echo
|
||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
||||
rm -rf .venv
|
||||
print_info "Removed existing virtual environment"
|
||||
else
|
||||
print_info "Using existing virtual environment"
|
||||
return
|
||||
fi
|
||||
fi
|
||||
|
||||
python3 -m venv .venv
|
||||
print_success "Virtual environment created"
|
||||
}
|
||||
|
||||
# Activate virtual environment
|
||||
activate_venv() {
|
||||
print_info "Activating virtual environment..."
|
||||
source .venv/bin/activate
|
||||
print_success "Virtual environment activated"
|
||||
}
|
||||
|
||||
# Install dependencies
|
||||
install_dependencies() {
|
||||
print_header "Installing Dependencies"
|
||||
|
||||
# Upgrade pip
|
||||
print_info "Upgrading pip..."
|
||||
pip install --upgrade pip > /dev/null 2>&1
|
||||
print_success "pip upgraded"
|
||||
|
||||
# Install requirements
|
||||
if [ -f "requirements.txt" ]; then
|
||||
print_info "Installing packages from requirements.txt..."
|
||||
pip install -r requirements.txt
|
||||
print_success "Dependencies installed"
|
||||
else
|
||||
print_error "requirements.txt not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Install Playwright browsers for Chrome DevTools
|
||||
print_info "Installing Playwright browsers (for Chrome DevTools MCP)..."
|
||||
if python3 -c "import playwright" 2>/dev/null; then
|
||||
playwright install chromium > /dev/null 2>&1
|
||||
print_success "Playwright Chromium browser installed"
|
||||
else
|
||||
print_warning "Playwright not available, skipping browser install"
|
||||
fi
|
||||
}
|
||||
|
||||
# Create directories
|
||||
create_directories() {
|
||||
print_header "Creating Project Directories"
|
||||
|
||||
mkdir -p .dss/cache
|
||||
mkdir -p .dss/logs
|
||||
print_success "Directories created"
|
||||
}
|
||||
|
||||
# Setup environment file
|
||||
setup_env() {
|
||||
print_header "Setting Up Environment Variables"
|
||||
|
||||
if [ -f ".env" ]; then
|
||||
print_warning ".env file already exists"
|
||||
return
|
||||
fi
|
||||
|
||||
if [ -f ".env.example" ]; then
|
||||
cp .env.example .env
|
||||
print_success ".env file created from .env.example"
|
||||
print_warning "Please edit .env and add your FIGMA_TOKEN"
|
||||
else
|
||||
print_error ".env.example not found"
|
||||
fi
|
||||
}
|
||||
|
||||
# Run tests
|
||||
run_tests() {
|
||||
print_header "Running Tests"
|
||||
|
||||
print_info "Running test suite..."
|
||||
if python3 test_quick.py; then
|
||||
print_success "All tests passed!"
|
||||
else
|
||||
print_warning "Some tests failed (this is OK for first setup)"
|
||||
fi
|
||||
}
|
||||
|
||||
# Print next steps
|
||||
print_next_steps() {
|
||||
print_header "Setup Complete!"
|
||||
|
||||
echo ""
|
||||
echo -e "${GREEN}✓ DSS is ready to use!${NC}"
|
||||
echo ""
|
||||
echo "Next steps:"
|
||||
echo ""
|
||||
echo "1. Activate the virtual environment:"
|
||||
echo -e " ${BLUE}source .venv/bin/activate${NC}"
|
||||
echo ""
|
||||
echo "2. Add your Figma token to .env:"
|
||||
echo -e " ${BLUE}FIGMA_TOKEN=figd_...${NC}"
|
||||
echo ""
|
||||
echo "3. Start the REST API server:"
|
||||
echo -e " ${BLUE}python -m tools.api.server${NC}"
|
||||
echo ""
|
||||
echo "4. Start the MCP server (in another terminal):"
|
||||
echo -e " ${BLUE}python -m tools.api.mcp_server${NC}"
|
||||
echo ""
|
||||
echo "5. Read the quickstart guide:"
|
||||
echo -e " ${BLUE}cat docs/QUICKSTART.md${NC}"
|
||||
echo ""
|
||||
echo -e "${YELLOW}Documentation:${NC}"
|
||||
echo " - Quickstart: docs/QUICKSTART.md"
|
||||
echo " - Architecture: docs/ARCHITECTURE.md"
|
||||
echo " - API Reference: README.md"
|
||||
echo " - Examples: examples/"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# Main installation flow
|
||||
main() {
|
||||
echo ""
|
||||
print_header "DSS (Design System Server) Setup"
|
||||
echo ""
|
||||
|
||||
check_prerequisites
|
||||
setup_venv
|
||||
activate_venv
|
||||
install_dependencies
|
||||
create_directories
|
||||
setup_env
|
||||
run_tests
|
||||
print_next_steps
|
||||
}
|
||||
|
||||
# Run main function
|
||||
main
|
||||
Reference in New Issue
Block a user