Files
dss/setup.sh
Digital Production Factory 276ed71f31 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
2025-12-09 18:45:48 -03:00

217 lines
5.3 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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